diff --git a/CHANGELOG.md b/CHANGELOG.md index 50e4b5b8d6d5976a079f7c27446b858db2887d45..198686f9b98c1bef0d5f2134d68db1ec896c0776 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,26 +4,67 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] - 2023-? +## [0.11.0] - 2023-05-31 ### Added +* `caosdb-v-property-linkified` css class to denote properties that have been + linkified already. +* `caosdb-f-property-datetime-value` css class for special handling of datetime properties. Also + there is now very basic customization (via variable `BUILD_MODULE_EXT_COSMETICS_CUSTOMDATETIME`) + for how datetime values can be displayed, which comes along with the new css classes + `caosdb-v-property-datetime-customized` and `caosdb-v-property-datetime-customized-newvalue`. +* `form_elements.make_form_modal` and + `form_elements.make_scripting_submission_button` functions to create a form + modal and an SSS submission button, respectively. +* Allow to supply a function that creates the form instead of a config to + create_show_form_callback +* `BUILD_MODULE_EXT_ENTITY_ACL_USER_MANAGEMENT_BUTTON` build variable with which + a button to the user management is added to the navbar for users with role + administration if `BUILD_MODULE_EXT_ENTITY_ACL=ENABLED`. +* [#202](https://gitlab.com/caosdb/caosdb-webui/-/issues/202) - handle long + text properties. Introcution of the + `BUILD_LONG_TEXT_PROPERTY_THRESHOLD_SINGLE` and + `BUILD_LONG_TEXT_PROPERTY_THRESHOLD_LIST` build variables. Any numeric + value>0 will cause text properties with values longer than the threshold to + be put into a `details` tag with a shortened summary. `DISABLED` will disable + this feature. Defaults: 140 characters for single values, 40 for list values. +* Query filters that can be configured via a `query-form-tabs.json` (see [CaosDB + WebUI Legacy Adapter](https://gitlab.com/caosdb/caosdb-webui-legacy-adapter)) + when the new query panel is used. + ### Changed (for changes in existing functionality) +* The new query panel from the [CaosDB WebUI Legacy + Adapter](https://gitlab.com/caosdb/caosdb-webui-legacy-adapter) is now the + default. Change to the old query panel by setting + `BUILD_MODULE_LEGACY_QUERY_FORM=ENABLED` (see below). + ### Deprecated -### Removed +* `query_form` module. Enable/disable via build property + `BUILD_MODULE_LEGACY_QUERY_FORM={ENABLED,DISABLED}`. To be removed when + caosdb-webui-core-components are included into this webui permanently. ### Fixed -* [#194](https://gitlab.com/caosdb/caosdb-webui/-/issues/194) - Properties - remain hidden in previews of referenced entities - -### Security +* [#207](https://gitlab.com/caosdb/caosdb-webui/-/issues/207) - Error message + is present but invisible. +* [#212](https://gitlab.com/caosdb/caosdb-webui/-/issues/212) - Searching for + double values in scientific notation fails +* [#199](https://gitlab.com/caosdb/caosdb-webui/-/issues/199) - Linkify creates + additional links after showing previews of referenced entities ### Documentation -- [#315](https://gitlab.indiscale.com/caosdb/src/caosdb-webui/-/issues/315) Made it clear that the demo tour is the best starting point for new users. +* DOC: Extended documentation for Edit Mode. + +## [0.10.1] - 2023-02-14 + +### Fixed + +* [#194](https://gitlab.com/caosdb/caosdb-webui/-/issues/194) - Properties + remain hidden in previews of referenced entities ## [0.10.0] - 2022-12-19 (Florian Spreckelsen) diff --git a/CITATION.cff b/CITATION.cff index 154773a55f4d9e070e81505287ccaf4669ecc2d9..07187347c3d7b020b270abe3e08bd91dda33fe08 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -20,6 +20,6 @@ authors: given-names: Stefan orcid: https://orcid.org/0000-0001-7214-8125 title: CaosDB - WebUI -version: 0.10.1 +version: 0.11.0 doi: 10.3390/data4020083 -date-released: 2023-02-14 +date-released: 2023-05-31 diff --git a/build.properties.d/00_default.properties b/build.properties.d/00_default.properties index 9b8f8095befc01f3f9fba610ee61efbaa8c24fc5..0a370664344017060df14390de16859b03b657c5 100644 --- a/build.properties.d/00_default.properties +++ b/build.properties.d/00_default.properties @@ -54,6 +54,7 @@ BUILD_MODULE_EXT_ANNOTATION=ENABLED BUILD_MODULE_EXT_COSMETICS_LINKIFY=DISABLED BUILD_MODULE_EXT_QRCODE=ENABLED BUILD_MODULE_SHOW_ID_IN_LABEL=DISABLED +BUILD_MODULE_LEGACY_QUERY_FORM=DISABLED BUILD_MODULE_USER_MANAGEMENT=ENABLED BUILD_MODULE_USER_MANAGEMENT_CHANGE_OWN_PASSWORD_REALM=CaosDB @@ -64,6 +65,10 @@ BUILD_EXT_REFERENCES_CUSTOM_RESOLVER=caosdb_default_person_reference BUILD_MODULE_EXT_EDITMODE_WYSIWYG_TEXT=DISABLED BUILD_MODULE_EXT_PROPERTY_DISPLAY=DISABLED +### Put long text property values into a details tag. "DISABLED" means disabled. +BUILD_LONG_TEXT_PROPERTY_THRESHOLD_LIST=40 +BUILD_LONG_TEXT_PROPERTY_THRESHOLD_SINGLE=140 + ############################################################################## # Navbar properties ############################################################################## @@ -205,4 +210,5 @@ MODULE_DEPENDENCIES=( ext_editmode_wysiwyg_text.js reference_resolver/caosdb_default_person.js ext_prop_display.js + query-form.bundle.js ) diff --git a/conf/core/json/query-form-tabs.json b/conf/core/json/query-form-tabs.json new file mode 100644 index 0000000000000000000000000000000000000000..33b89f33f91e7a8b5863e1b7c6e81c1d5d795d1b --- /dev/null +++ b/conf/core/json/query-form-tabs.json @@ -0,0 +1,12 @@ +{ + "defaultTab": "records", + "prependAllTab": false, + "tabs": [{ + "id": "records", + "label": "Records", + "filterDefinitions": [{ + "property": "Name", + "datatype": "text" + }] + }] +} diff --git a/src/core/css/tour.css b/src/core/css/tour.css index d772c79e8e9684690796b8acbd35b2116adf6f9b..d398cd813b95a070821f52481347f4a23980547c 100644 --- a/src/core/css/tour.css +++ b/src/core/css/tour.css @@ -86,23 +86,6 @@ .dropdown > .caosdb-f-tour-menu-dropdown { margin: 0px; } -/*.caosdb-v-tour-overview > li {*/ - /*[>float: left;<]*/ - /*display: inline;*/ -/*}*/ -.caosdb-f-tour-overview-entry.caosdb-v-tour-overview-entry-pageset { -} -/* -.caosdb-f-tour-overview-entry.caosdb-v-tour-overview-entry-page { - display: none; -} -*/ -li.list-group-item > ul.list-group { - margin-bottom: 0px; -} -li.list-group-item > .btn { - padding: 0px; -} /* Taken from https://stackoverflow.com/a/32587571/232888, cc-by-sa 4.0 by ryachza */ diff --git a/src/core/css/webcaosdb.css b/src/core/css/webcaosdb.css index 248f3444962a839193016a42dc4e9f730ba7d448..cc7622d450a4648c1d748aaab83bb694c3d32839 100644 --- a/src/core/css/webcaosdb.css +++ b/src/core/css/webcaosdb.css @@ -51,6 +51,11 @@ footer { margin-right: 8px; } +.caosdb-v-message-badge { + background-color: var(--bs-alert-bg); + color: var(--bs-alert-color); +} + div.export-data { display: none; } @@ -446,6 +451,11 @@ body[data-hidden-properties="true"] .caosdb-v-entity-being-edited .caosdb-v-hidd border: 1px solid #C92E86; } +.caosdb-label-entity { + background-color: #666; + border: 1px solid #666; +} + .caosdb-parents-heading { padding-top: 2px; padding-bottom: 2px; @@ -819,3 +829,96 @@ details p { margin-right: 4px; font-size: 11px; } + +/* handle long text properties (single value) */ + +.caosdb-f-property-value details summary { + display: inline; +} + +.caosdb-f-property-value .spacer::after { + margin: 0; + content: "(show less)"; + visibility: hidden; +} + +.caosdb-f-property-value details[open] summary * { + display: none; +} + +.caosdb-f-property-value details[open] summary { + float: right; +} + +.caosdb-f-property-value details summary::after { + content: "... (show more)"; + color: blue; +} + +.caosdb-f-property-value details[open] summary::after { + content: "(show less)"; + + padding-right: calc(var(--bs-gutter-x) * .5); + position: absolute; + bottom: 0; + right: 0; +} + +/* handle long text properties (list) */ + +.caosdb-f-property-value .caosdb-value-list .spacer::after { + display: block; +} + +.caosdb-f-property-value .caosdb-value-list details summary::after { + content: "..."; +} + + +.caosdb-f-property-value .caosdb-value-list details[open] summary { + float: none; +} + +.caosdb-f-property-value .caosdb-value-list details[open] summary::after { + content: "(show less)"; + padding-right: calc(var(--bs-gutter-x) * .5); + position: absolute; + bottom: 0; + left: 0; + right: unset; +} + +.caosdb-f-property-value .caosdb-value-list details[open] { + position: relative; + max-width: 80vw; +} + +@media (min-width: 576px) { + .caosdb-f-property-value .caosdb-value-list details[open] { + max-width: 200px; + } +} + +@media (min-width: 768px) { + .caosdb-f-property-value .caosdb-value-list details[open] { + max-width: 400px; + } +} + +@media (min-width: 992px) { + .caosdb-f-property-value .caosdb-value-list details[open] { + max-width: 530px; + } +} + +@media (min-width: 1200px) { + .caosdb-f-property-value .caosdb-value-list details[open] { + max-width: 670px; + } +} + +@media (min-width: 1400px) { + .caosdb-f-property-value .caosdb-value-list details[open] { + max-width: 800px; + } +} diff --git a/src/core/js/ext_map.js b/src/core/js/ext_map.js index 6dd9b963d4caa2887f4e680285e7b61a47e97b20..9d2e1d5d362fb4d24853fd99b81053b0198d8c27 100644 --- a/src/core/js/ext_map.js +++ b/src/core/js/ext_map.js @@ -1524,7 +1524,7 @@ var caosdb_map = new function () { const href = entity_on_page ? `#${id}` : connection.getBasePath() + `Entity/${id}` const link_title = entity_on_page ? "Jump to this entity." : "Browse to this entity."; const link = $(`<a title="${link_title}" href="${href}"/>`) - .addClass("pull-right") + .addClass("float-end") .append(`<i class="bi bi-box-arrow-up-right"></i></a>`); const name_label = $('<div/>') diff --git a/src/core/js/form_elements.js b/src/core/js/form_elements.js index 6815acd791213c6b239a693c3c64667965c369ed..9ae616daaf8ee79ab4b2a3600565ae540ae33f39 100644 --- a/src/core/js/form_elements.js +++ b/src/core/js/form_elements.js @@ -830,7 +830,7 @@ var form_elements = new function () { this.add_help = function (field, config) { - var help_button = $('<a tabindex="0" role="button" data-bs-trigger="focus" data-bs-toggle="popover"><i class="caosdb-f-form-help pull-right bi-info-circle-fill"></i></a>') + var help_button = $('<a tabindex="0" role="button" data-bs-trigger="focus" data-bs-toggle="popover"><i class="caosdb-f-form-help float-end bi-info-circle-fill"></i></a>') .css({ "cursor": "pointer" }); diff --git a/src/core/js/query-form.bundle.js b/src/core/js/query-form.bundle.js new file mode 100644 index 0000000000000000000000000000000000000000..94f330373f746536160cd8edae3e01876475f9ce --- /dev/null +++ b/src/core/js/query-form.bundle.js @@ -0,0 +1 @@ +(()=>{var __webpack_modules__={445:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(470);\n/* harmony import */ var _indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(787);\n/* harmony import */ var _indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\nfunction _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a \'" + methodName + "\' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }\n\n\n\nfunction queryPanel(submitCallback, tabs, getSuggestionsCallback, restore, defaultTab) {\n var element = document.createElement("DIV");\n document.getElementById("top-navbar").querySelector(".caosdb-navbar").after(element);\n element.classList.add("navbar-nav", "caosdb-f-query-panel");\n var scrollHandler = function scrollHandler() {\n (0,_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.toggleQueryPanel)(element);\n };\n var root = react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot(element);\n root.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.QueryPanel, {\n scrollHandler: scrollHandler,\n submitCallback: submitCallback,\n tabs: tabs,\n defaultTab: defaultTab,\n getSuggestionsCallback: getSuggestionsCallback,\n restore: restore\n }));\n}\nfunction removeOldQueryPanel() {\n document.getElementById("caosdb-navbar-query").remove();\n document.getElementById("caosdb-query-panel").remove();\n}\nfunction resolveDefaultTab(tabs, defaultTab) {\n var result = 0;\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].id === defaultTab) {\n result = i;\n }\n }\n return result;\n}\n\n/**\n * Loads the config file and initializes the query panel.\n *\n * The config file must validate against the tabs-config.schema.json.\n */\nfunction initQueryPanel() {\n return _initQueryPanel.apply(this, arguments);\n}\nfunction _initQueryPanel() {\n _initQueryPanel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n var retrieveNames, autoCompletion, getSuggestionsCallback, tabs_config, defaultTab, prependAllTab, submitCallback, restore;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (document.getElementById("caosdb-navbar-query")) {\n _context2.next = 3;\n break;\n }\n // document not ready, retrigger when ready\n document.addEventListener(\'DOMContentLoaded\', function () {\n initQueryPanel();\n }, false);\n return _context2.abrupt("return");\n case 3:\n removeOldQueryPanel();\n\n // for auto completion\n retrieveNames = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var response;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.t0 = $;\n _context.next = 3;\n return connection.get(transaction.generateEntitiesUri(["names"]));\n case 3:\n _context.t1 = _context.sent;\n response = (0, _context.t0)(_context.t1).find("Property[name],RecordType[name],Record[name]");\n response = response.toArray().map(function (x) {\n return $(x).attr("name");\n });\n return _context.abrupt("return", response);\n case 7:\n case "end":\n return _context.stop();\n }\n }, _callee);\n }));\n return function retrieveNames() {\n return _ref.apply(this, arguments);\n };\n }(); // give function -> lazy, give results -> eager initialization\n autoCompletion = new _indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.QueryForm.AutoCompletion(retrieveNames);\n getSuggestionsCallback = function getSuggestionsCallback(isCql, value, word) {\n return autoCompletion.getSuggestions(isCql, value, word);\n }; // configure tabs\n _context2.next = 9;\n return load_config("json/query-form-tabs.json");\n case 9:\n tabs_config = _context2.sent;\n defaultTab = undefined;\n prependAllTab = true;\n if (Array.isArray(tabs_config.tabs)) {\n // tabs_config is object { tabs: [...], defaultTab: "...", prependAllTab: false }...\n prependAllTab = typeof tabs_config.prependAllTab !== "undefined" ? tabs_config.prependAllTab : prependAllTab;\n defaultTab = tabs_config.defaultTab;\n tabs_config = tabs_config.tabs;\n } // else { // tabs_config is an array }\n\n if (tabs_config.map) {\n tabs_config = tabs_config.map(function (conf) {\n return (0,_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.createTab)(conf.id, conf.recordType, conf.label, conf.description, undefined, conf.filterDefinitions);\n });\n if (prependAllTab && tabs_config.length > 0) {\n tabs_config = [(0,_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.createTab)("all", undefined, "All", "Show all matching results", (0,_indiscale_caosdb_webui_core_components__WEBPACK_IMPORTED_MODULE_2__.makeQueryTemplate)())].concat(tabs_config);\n }\n defaultTab = resolveDefaultTab(tabs_config, defaultTab);\n } else {\n tabs_config = undefined;\n }\n\n // the submit callback is responsible for actually executing the query\n submitCallback = function submitCallback(queryString, pageSize) {\n var paging = pageSize < 1 ? "" : "&P=0L".concat(pageSize || 10);\n var newHref = connection.getEntityUri([]) + "?query=".concat(encodeURIComponent(queryString)).concat(paging);\n window.location.href = newHref;\n };\n restore = true;\n queryPanel(submitCallback, tabs_config, getSuggestionsCallback, restore, defaultTab);\n case 17:\n case "end":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _initQueryPanel.apply(this, arguments);\n}\ninitQueryPanel();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LENBQUEvQixLQUFBLE9BQUFELFNBQUE7QUFBQTtBQUVEK0IsY0FBYyxFQUFFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyLy4vc3JjL3F1ZXJ5LWZvcm0uanM/ODJkNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIjtcbmltcG9ydCB7XG4gIFF1ZXJ5Rm9ybSxcbiAgUXVlcnlQYW5lbCxcbiAgdG9nZ2xlUXVlcnlQYW5lbCxcbiAgbWFrZVF1ZXJ5VGVtcGxhdGUsXG4gIGNyZWF0ZVRhYixcbn0gZnJvbSBcIkBpbmRpc2NhbGUvY2Fvc2RiLXdlYnVpLWNvcmUtY29tcG9uZW50c1wiO1xuXG5mdW5jdGlvbiBxdWVyeVBhbmVsKFxuICBzdWJtaXRDYWxsYmFjayxcbiAgdGFicyxcbiAgZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjayxcbiAgcmVzdG9yZSxcbiAgZGVmYXVsdFRhYlxuKSB7XG4gIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpO1xuICBkb2N1bWVudFxuICAgIC5nZXRFbGVtZW50QnlJZChcInRvcC1uYXZiYXJcIilcbiAgICAucXVlcnlTZWxlY3RvcihcIi5jYW9zZGItbmF2YmFyXCIpXG4gICAgLmFmdGVyKGVsZW1lbnQpO1xuICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJuYXZiYXItbmF2XCIsIFwiY2Fvc2RiLWYtcXVlcnktcGFuZWxcIik7XG5cbiAgY29uc3Qgc2Nyb2xsSGFuZGxlciA9ICgpID0+IHtcbiAgICB0b2dnbGVRdWVyeVBhbmVsKGVsZW1lbnQpO1xuICB9O1xuXG4gIGNvbnN0IHJvb3QgPSBSZWFjdERPTS5jcmVhdGVSb290KGVsZW1lbnQpO1xuICByb290LnJlbmRlcihcbiAgICA8UXVlcnlQYW5lbFxuICAgICAgc2Nyb2xsSGFuZGxlcj17c2Nyb2xsSGFuZGxlcn1cbiAgICAgIHN1Ym1pdENhbGxiYWNrPXtzdWJtaXRDYWxsYmFja31cbiAgICAgIHRhYnM9e3RhYnN9XG4gICAgICBkZWZhdWx0VGFiPXtkZWZhdWx0VGFifVxuICAgICAgZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjaz17Z2V0U3VnZ2VzdGlvbnNDYWxsYmFja31cbiAgICAgIHJlc3RvcmU9e3Jlc3RvcmV9XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlT2xkUXVlcnlQYW5lbCgpIHtcbiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYW9zZGItbmF2YmFyLXF1ZXJ5XCIpLnJlbW92ZSgpO1xuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNhb3NkYi1xdWVyeS1wYW5lbFwiKS5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlZmF1bHRUYWIodGFicywgZGVmYXVsdFRhYikge1xuICB2YXIgcmVzdWx0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHRhYnNbaV0uaWQgPT09IGRlZmF1bHRUYWIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIGNvbmZpZyBmaWxlIGFuZCBpbml0aWFsaXplcyB0aGUgcXVlcnkgcGFuZWwuXG4gKlxuICogVGhlIGNvbmZpZyBmaWxlIG11c3QgdmFsaWRhdGUgYWdhaW5zdCB0aGUgdGFicy1jb25maWcuc2NoZW1hLmpzb24uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRRdWVyeVBhbmVsKCkge1xuICBpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYW9zZGItbmF2YmFyLXF1ZXJ5XCIpKSB7XG4gICAgLy8gZG9jdW1lbnQgbm90IHJlYWR5LCByZXRyaWdnZXIgd2hlbiByZWFkeVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpbml0UXVlcnlQYW5lbCgpO1xuICAgIH0sIGZhbHNlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICByZW1vdmVPbGRRdWVyeVBhbmVsKCk7XG5cbiAgLy8gZm9yIGF1dG8gY29tcGxldGlvblxuICBjb25zdCByZXRyaWV2ZU5hbWVzID0gYXN5bmMgKCkgPT4ge1xuICAgIHZhciByZXNwb25zZSA9ICQoXG4gICAgICBhd2FpdCBjb25uZWN0aW9uLmdldCh0cmFuc2FjdGlvbi5nZW5lcmF0ZUVudGl0aWVzVXJpKFtcIm5hbWVzXCJdKSlcbiAgICApLmZpbmQoXCJQcm9wZXJ0eVtuYW1lXSxSZWNvcmRUeXBlW25hbWVdLFJlY29yZFtuYW1lXVwiKTtcblxuICAgIHJlc3BvbnNlID0gcmVzcG9uc2UudG9BcnJheSgpLm1hcCgoeCkgPT4gJCh4KS5hdHRyKFwibmFtZVwiKSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH07XG5cbiAgLy8gZ2l2ZSBmdW5jdGlvbiAtPiBsYXp5LCBnaXZlIHJlc3VsdHMgLT4gZWFnZXIgaW5pdGlhbGl6YXRpb25cbiAgY29uc3QgYXV0b0NvbXBsZXRpb24gPSBuZXcgUXVlcnlGb3JtLkF1dG9Db21wbGV0aW9uKHJldHJpZXZlTmFtZXMpO1xuICBjb25zdCBnZXRTdWdnZXN0aW9uc0NhbGxiYWNrID0gKGlzQ3FsLCB2YWx1ZSwgd29yZCkgPT5cbiAgICBhdXRvQ29tcGxldGlvbi5nZXRTdWdnZXN0aW9ucyhpc0NxbCwgdmFsdWUsIHdvcmQpO1xuXG4gIC8vIGNvbmZpZ3VyZSB0YWJzXG4gIHZhciB0YWJzX2NvbmZpZyA9IGF3YWl0IGxvYWRfY29uZmlnKFwianNvbi9xdWVyeS1mb3JtLXRhYnMuanNvblwiKTtcbiAgdmFyIGRlZmF1bHRUYWIgPSB1bmRlZmluZWQ7XG4gIHZhciBwcmVwZW5kQWxsVGFiID0gdHJ1ZTtcblxuICBpZiAoQXJyYXkuaXNBcnJheSh0YWJzX2NvbmZpZy50YWJzKSkge1xuICAgIC8vIHRhYnNfY29uZmlnIGlzIG9iamVjdCB7IHRhYnM6IFsuLi5dLCBkZWZhdWx0VGFiOiBcIi4uLlwiLCBwcmVwZW5kQWxsVGFiOiBmYWxzZSB9Li4uXG4gICAgcHJlcGVuZEFsbFRhYiA9XG4gICAgICB0eXBlb2YgdGFic19jb25maWcucHJlcGVuZEFsbFRhYiAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IHRhYnNfY29uZmlnLnByZXBlbmRBbGxUYWJcbiAgICAgICAgOiBwcmVwZW5kQWxsVGFiO1xuICAgIGRlZmF1bHRUYWIgPSB0YWJzX2NvbmZpZy5kZWZhdWx0VGFiO1xuICAgIHRhYnNfY29uZmlnID0gdGFic19jb25maWcudGFicztcbiAgfSAvLyBlbHNlIHsgLy8gdGFic19jb25maWcgaXMgYW4gYXJyYXkgfVxuXG4gIGlmICh0YWJzX2NvbmZpZy5tYXApIHtcbiAgICB0YWJzX2NvbmZpZyA9IHRhYnNfY29uZmlnLm1hcCgoY29uZikgPT5cbiAgICAgIGNyZWF0ZVRhYihcbiAgICAgICAgY29uZi5pZCxcbiAgICAgICAgY29uZi5yZWNvcmRUeXBlLFxuICAgICAgICBjb25mLmxhYmVsLFxuICAgICAgICBjb25mLmRlc2NyaXB0aW9uLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGNvbmYuZmlsdGVyRGVmaW5pdGlvbnNcbiAgICAgIClcbiAgICApO1xuICAgIGlmIChwcmVwZW5kQWxsVGFiICYmIHRhYnNfY29uZmlnLmxlbmd0aCA+IDApIHtcbiAgICAgIHRhYnNfY29uZmlnID0gW1xuICAgICAgICBjcmVhdGVUYWIoXG4gICAgICAgICAgXCJhbGxcIixcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgXCJBbGxcIixcbiAgICAgICAgICBcIlNob3cgYWxsIG1hdGNoaW5nIHJlc3VsdHNcIixcbiAgICAgICAgICBtYWtlUXVlcnlUZW1wbGF0ZSgpXG4gICAgICAgICksXG4gICAgICBdLmNvbmNhdCh0YWJzX2NvbmZpZyk7XG4gICAgfVxuICAgIGRlZmF1bHRUYWIgPSByZXNvbHZlRGVmYXVsdFRhYih0YWJzX2NvbmZpZywgZGVmYXVsdFRhYik7XG4gIH0gZWxzZSB7XG4gICAgdGFic19jb25maWcgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyB0aGUgc3VibWl0IGNhbGxiYWNrIGlzIHJlc3BvbnNpYmxlIGZvciBhY3R1YWxseSBleGVjdXRpbmcgdGhlIHF1ZXJ5XG4gIGNvbnN0IHN1Ym1pdENhbGxiYWNrID0gKHF1ZXJ5U3RyaW5nLCBwYWdlU2l6ZSkgPT4ge1xuICAgIGNvbnN0IHBhZ2luZyA9IHBhZ2VTaXplIDwgMSA/IFwiXCIgOiBgJlA9MEwke3BhZ2VTaXplIHx8IDEwfWA7XG4gICAgY29uc3QgbmV3SHJlZiA9IGNvbm5lY3Rpb24uZ2V0RW50aXR5VXJpKFtdKSArIGA/cXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQocXVlcnlTdHJpbmcpfSR7cGFnaW5nfWA7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBuZXdIcmVmO1xuICB9O1xuICBjb25zdCByZXN0b3JlID0gdHJ1ZTtcblxuICBxdWVyeVBhbmVsKFxuICAgIHN1Ym1pdENhbGxiYWNrLFxuICAgIHRhYnNfY29uZmlnLFxuICAgIGdldFN1Z2dlc3Rpb25zQ2FsbGJhY2ssXG4gICAgcmVzdG9yZSxcbiAgICBkZWZhdWx0VGFiXG4gICk7XG59XG5cbmluaXRRdWVyeVBhbmVsKCk7XG4iXSwibmFtZXMiOlsiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJpdGVyYXRvciIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX3R5cGVvZiIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiUmVhY3QiLCJSZWFjdERPTSIsIlF1ZXJ5Rm9ybSIsIlF1ZXJ5UGFuZWwiLCJ0b2dnbGVRdWVyeVBhbmVsIiwibWFrZVF1ZXJ5VGVtcGxhdGUiLCJjcmVhdGVUYWIiLCJxdWVyeVBhbmVsIiwic3VibWl0Q2FsbGJhY2siLCJ0YWJzIiwiZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjayIsInJlc3RvcmUiLCJkZWZhdWx0VGFiIiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwicXVlcnlTZWxlY3RvciIsImFmdGVyIiwiY2xhc3NMaXN0IiwiYWRkIiwic2Nyb2xsSGFuZGxlciIsInJvb3QiLCJjcmVhdGVSb290IiwicmVuZGVyIiwicmVtb3ZlT2xkUXVlcnlQYW5lbCIsInJlbW92ZSIsInJlc29sdmVEZWZhdWx0VGFiIiwiaWQiLCJpbml0UXVlcnlQYW5lbCIsIl9pbml0UXVlcnlQYW5lbCIsIl9jYWxsZWUyIiwicmV0cmlldmVOYW1lcyIsImF1dG9Db21wbGV0aW9uIiwidGFic19jb25maWciLCJwcmVwZW5kQWxsVGFiIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9yZWYiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwidDAiLCIkIiwiY29ubmVjdGlvbiIsImdldCIsInRyYW5zYWN0aW9uIiwiZ2VuZXJhdGVFbnRpdGllc1VyaSIsInQxIiwiZmluZCIsInRvQXJyYXkiLCJtYXAiLCJ4IiwiYXR0ciIsIkF1dG9Db21wbGV0aW9uIiwiaXNDcWwiLCJ3b3JkIiwiZ2V0U3VnZ2VzdGlvbnMiLCJsb2FkX2NvbmZpZyIsIkFycmF5IiwiaXNBcnJheSIsImNvbmYiLCJyZWNvcmRUeXBlIiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsImZpbHRlckRlZmluaXRpb25zIiwiY29uY2F0IiwicXVlcnlTdHJpbmciLCJwYWdlU2l6ZSIsInBhZ2luZyIsIm5ld0hyZWYiLCJnZXRFbnRpdHlVcmkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///445\n')},787:(module,__unused_webpack_exports,__webpack_require__)=>{eval('/*! For license information please see caosdb-webui-core-components.js.LICENSE.txt */\n!function(e,t){ true?module.exports=t(__webpack_require__(526),function(){try{return __webpack_require__(818)}catch(e){}}()):0}(self,(function(e,t){return function(){var n={184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=o.apply(null,n);i&&e.push(i)}}else if("object"===a){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var l in n)r.call(n,l)&&n[l]&&e.push(l)}}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},550:function(e,t,n){"use strict";var r=n(537),o=n.n(r),a=n(645),i=n.n(a)()(o());i.push([e.id,".caosdb-f-query-cql-hint{border-radius:2rem;background-color:#d9d9d9;color:#262626;padding:.1rem .4rem}.caosdb-f-query-form-sug{display:none}nav .navbar-collapse{align-items:start;flex-wrap:wrap}nav .navbar-collapse form{display:flex;flex-direction:column}.caosdb-f-query-panel.condensed:focus-within,.caosdb-f-query-panel{margin-top:.5rem;width:100%;order:1}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form,.caosdb-f-query-panel .caosdb-f-query-form{order:unset;height:44px;padding-left:2rem;padding-top:.5rem;padding-right:2rem;padding-bottom:.5rem;border:1px solid #ddd;background-color:#fff;border-radius:2rem}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form:hover,.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus,.caosdb-f-query-panel .caosdb-f-query-form:hover,.caosdb-f-query-panel .caosdb-f-query-form.focus{box-shadow:0 1px 6px rgba(32,33,36,.28)}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug,.caosdb-f-query-panel .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug{margin-top:.5rem;background-color:#fff;display:inline-block;max-height:200px;position:absolute;overflow-y:auto;box-shadow:0 4px 6px rgba(32,33,36,.28);padding:0px}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li,.caosdb-f-query-panel .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li{padding-left:.5rem;padding-right:.5rem;height:24px;list-style-type:none}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li.highlight,.caosdb-f-query-panel .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li.highlight{background-color:#d9d9d9}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li:hover,.caosdb-f-query-panel .caosdb-f-query-form.focus.open ol.caosdb-f-query-form-sug li:hover{background-color:#d9d9d9}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form.focus.submit.open .caosdb-f-query-form-sug,.caosdb-f-query-panel .caosdb-f-query-form.focus.submit.open .caosdb-f-query-form-sug{display:none}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form button,.caosdb-f-query-panel .caosdb-f-query-form button{background-color:inherit;border:none}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form input,.caosdb-f-query-panel .caosdb-f-query-form input{border:none}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form input:focus,.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-form input:focus-visible,.caosdb-f-query-panel .caosdb-f-query-form input:focus,.caosdb-f-query-panel .caosdb-f-query-form input:focus-visible{outline:none}.caosdb-f-query-panel.condensed:focus-within form,.caosdb-f-query-panel form{flex-direction:column}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-tab-list,.caosdb-f-query-panel .caosdb-f-query-tab-list{margin-top:.5rem;padding-left:1rem;padding-right:1rem}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-tab-filters,.caosdb-f-query-panel .caosdb-f-query-tab-filters{display:flex;flex-direction:row;flex-wrap:wrap}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-tab-filters input.form-control,.caosdb-f-query-panel .caosdb-f-query-tab-filters input.form-control{display:unset;width:unset}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-tab,.caosdb-f-query-panel .caosdb-f-query-tab{height:44px;margin-right:1rem;padding:6px;background-color:unset;border:none;border-bottom:.2rem solid rgba(0,0,0,0)}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-tab.active,.caosdb-f-query-panel .caosdb-f-query-tab.active{border-bottom:.2rem solid gray}.caosdb-f-query-panel.condensed:focus-within .caosdb-f-query-filter-property-selector,.caosdb-f-query-panel .caosdb-f-query-filter-property-selector{flex-basis:100%}@media(min-width: 992px){.caosdb-f-query-panel .caosdb-f-query-tab-filters{display:grid;grid-template-columns:max-content max-content auto max-content;grid-column-gap:.5rem;padding:.2rem 0rem}.caosdb-f-query-panel .caosdb-f-query-tab-filters input.form-control{display:unset;width:unset}.caosdb-f-query-panel.condensed{margin-top:0;width:unset;order:unset}.caosdb-f-query-panel.condensed form{flex-direction:row}.caosdb-f-query-panel.condensed .caosdb-f-query-filters-toggle{display:none}.caosdb-f-query-panel.condensed .caosdb-f-query-tab-list{margin-top:0rem}.caosdb-f-query-panel.condensed .caosdb-f-query-tab{height:38px}.caosdb-f-query-panel.condensed .caosdb-f-query-tab-filters{display:none}.caosdb-f-query-panel.condensed .caosdb-f-query-form{height:38px;order:1;padding-left:1rem;padding-top:.3rem;padding-right:1rem;padding-bottom:.3rem}.caosdb-f-query-panel.condensed .caosdb-f-query-form .caosdb-f-query-form-sug{display:none}}.user-component .alert{padding-top:.375rem;padding-bottom:.375rem;font-size:1rem;margin:0}header{border-bottom:1px solid rgba(0,0,0,.15);border-radius:0}footer{color:#878787}footer .nav{border-bottom:1px solid #a0a0a0}footer .nav-link{color:#878787 !important}footer .nav-link:hover{color:#6d6d6d !important}footer .footer-body{border-top:1px solid #bababa;background-color:#d3d3d3;min-height:20rem}footer .footer-border{height:3rem;box-shadow:0px -5px 7px -5px rgba(0,0,0,.4) inset;-webkit-box-shadow:0px -5px 7px -5px rgba(0,0,0,.4) inset;-moz-box-shadow:0px -5px 6px -7px rgba(0,0,0,.4) inset}.caosdb-checkbox{cursor:pointer}.caosdb-checkbox .caosdb-checkbox-icon{font-size:1.3em}.caosdb-checkbox .caosdb-check-box-input{display:none}.caosdb-checkbox.read-only{cursor:auto}.color-light-green{color:#b4e600}.minicard{border:1px solid red;width:400px;display:flex}.minicard .minicard-title{background-color:red}","",{version:3,sources:["webpack://./src/components/QueryForm.scss","webpack://./node_modules/bootstrap/scss/mixins/_breakpoints.scss","webpack://./src/index.scss"],names:[],mappings:"AAIA,yBACE,kBAAA,CACA,wBAAA,CACA,aAAA,CACA,mBAAA,CAGF,yBACE,YAAA,CAGF,qBACE,iBAAA,CACA,cAAA,CAEA,0BACE,YAAA,CACA,qBAAA,CAIJ,mEAEE,gBAAA,CACA,UAAA,CACA,OAAA,CAEA,6GACE,WAAA,CACA,WAAA,CACA,iBAAA,CACA,iBAAA,CACA,kBAAA,CACA,oBAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CAEA,kPAEE,uCAAA,CAKE,yLACE,gBAAA,CACA,qBAAA,CACA,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,uCAAA,CACA,WAAA,CAEA,+LACE,kBAAA,CACA,mBAAA,CACA,WAAA,CACA,oBAAA,CACA,mNACE,wBAAA,CAEF,2MACE,wBAAA,CAOJ,mMACE,YAAA,CAMR,2HACE,wBAAA,CACA,WAAA,CAGF,yHACE,WAAA,CAEA,0RAEE,YAAA,CAKN,6EACE,qBAAA,CAGF,qHACE,gBAAA,CACA,iBAAA,CACA,kBAAA,CAGF,2HACE,YAAA,CACA,kBAAA,CACA,cAAA,CAEA,iKACE,aAAA,CACA,WAAA,CAIJ,2GACE,WAAA,CACA,iBAAA,CACA,WAAA,CACA,sBAAA,CACA,WAAA,CACA,uCAAA,CACA,yHACE,8BAAA,CAIJ,qJACE,eAAA,CCpEA,yBD0EA,kDACE,YAAA,CACA,8DAAA,CACA,qBAAA,CACA,kBAAA,CAEA,qEACE,aAAA,CACA,WAAA,CAKN,gCACE,YAAA,CACA,WAAA,CACA,WAAA,CAEA,qCACE,kBAAA,CAGF,+DACE,YAAA,CAGF,yDACE,eAAA,CAGF,oDACE,WAAA,CAGF,4DACE,YAAA,CAGF,qDACE,WAAA,CACA,OAAA,CACA,iBAAA,CACA,iBAAA,CACA,kBAAA,CACA,oBAAA,CAEA,8EACE,YAAA,CAAA,CEpLR,uBACE,mBAAA,CACA,sBAAA,CACA,cAAA,CACA,QAAA,CAGF,OACE,uCAAA,CACA,eAAA,CAGF,OACE,aAAA,CAEA,YACE,+BAAA,CAEF,iBACE,wBAAA,CAEF,uBACE,wBAAA,CAEF,oBACE,4BAAA,CACA,wBA5BgB,CA6BhB,gBAAA,CAEF,sBACE,WAAA,CACA,iDAAA,CACA,yDAAA,CACA,sDAAA,CAIJ,iBASE,cAAA,CARA,uCACE,eAAA,CAGF,yCACE,YAAA,CAKF,2BACE,WAAA,CAIJ,mBACE,aAAA,CAGF,UACE,oBAAA,CACA,WAAA,CACA,YAAA,CAEA,0BACE,oBAAA",sourcesContent:[\'@import "bootstrap/scss/functions";\\n@import "bootstrap/scss/variables";\\n@import "bootstrap/scss/mixins";\\n\\n.caosdb-f-query-cql-hint {\\n border-radius: 2rem;\\n background-color: darken(white, 15%);\\n color: lighten(black, 15%);\\n padding: 0.1rem 0.4rem;\\n}\\n\\n.caosdb-f-query-form-sug {\\n display: none;\\n}\\n\\nnav .navbar-collapse {\\n align-items: start;\\n flex-wrap: wrap;\\n\\n form {\\n display: flex;\\n flex-direction: column;\\n }\\n}\\n\\n.caosdb-f-query-panel.condensed:focus-within,\\n.caosdb-f-query-panel {\\n margin-top: 0.5rem;\\n width: 100%;\\n order: 1;\\n\\n .caosdb-f-query-form {\\n order: unset;\\n height: 44px;\\n padding-left: 2rem;\\n padding-top: 0.5rem;\\n padding-right: 2rem;\\n padding-bottom: 0.5rem;\\n border: 1px solid #ddd;\\n background-color: white;\\n border-radius: 2rem;\\n\\n &:hover,\\n &.focus {\\n box-shadow: 0 1px 6px rgba(32, 33, 36, 0.28);\\n }\\n\\n &.focus {\\n &.open {\\n ol.caosdb-f-query-form-sug {\\n margin-top: 0.5rem;\\n background-color: white;\\n display: inline-block;\\n max-height: 200px;\\n position: absolute;\\n overflow-y: auto;\\n box-shadow: 0 4px 6px rgba(32, 33, 36, 0.28);\\n padding: 0px;\\n\\n li {\\n padding-left: 0.5rem;\\n padding-right: 0.5rem;\\n height: 24px;\\n list-style-type: none;\\n &.highlight {\\n background-color: darken(white, 15%);\\n }\\n &:hover {\\n background-color: darken(white, 15%);\\n }\\n }\\n }\\n }\\n &.submit {\\n &.open {\\n .caosdb-f-query-form-sug {\\n display: none;\\n }\\n }\\n }\\n }\\n\\n button {\\n background-color: inherit;\\n border: none;\\n }\\n\\n input {\\n border: none;\\n\\n &:focus,\\n &:focus-visible {\\n outline: none;\\n }\\n }\\n }\\n\\n form {\\n flex-direction: column;\\n }\\n\\n .caosdb-f-query-tab-list {\\n margin-top: 0.5rem;\\n padding-left: 1rem;\\n padding-right: 1rem;\\n }\\n\\n .caosdb-f-query-tab-filters {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n\\n input.form-control {\\n display: unset;\\n width: unset;\\n }\\n }\\n\\n .caosdb-f-query-tab {\\n height: 44px;\\n margin-right: 1rem;\\n padding: 6px;\\n background-color: unset;\\n border: none;\\n border-bottom: 0.2rem solid transparent;\\n &.active {\\n border-bottom: 0.2rem solid gray;\\n }\\n }\\n\\n .caosdb-f-query-filter-property-selector {\\n flex-basis: 100%;\\n }\\n}\\n\\n@include media-breakpoint-up(lg) {\\n .caosdb-f-query-panel {\\n .caosdb-f-query-tab-filters {\\n display: grid;\\n grid-template-columns: max-content max-content auto max-content;\\n grid-column-gap: 0.5rem;\\n padding: 0.2rem 0rem;\\n\\n input.form-control {\\n display: unset;\\n width: unset;\\n }\\n }\\n }\\n\\n .caosdb-f-query-panel.condensed {\\n margin-top: 0;\\n width: unset;\\n order: unset;\\n\\n form {\\n flex-direction: row;\\n }\\n\\n .caosdb-f-query-filters-toggle {\\n display: none;\\n }\\n\\n .caosdb-f-query-tab-list {\\n margin-top: 0rem;\\n }\\n\\n .caosdb-f-query-tab {\\n height: 38px;\\n }\\n\\n .caosdb-f-query-tab-filters {\\n display: none;\\n }\\n\\n .caosdb-f-query-form {\\n height: 38px;\\n order: 1;\\n padding-left: 1rem;\\n padding-top: 0.3rem;\\n padding-right: 1rem;\\n padding-bottom: 0.3rem;\\n\\n .caosdb-f-query-form-sug {\\n display: none;\\n }\\n }\\n }\\n}\\n\',\'// Breakpoint viewport sizes and media queries.\\n//\\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\\n//\\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\\n//\\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\\n\\n// Name of the next breakpoint, or null for the last breakpoint.\\n//\\n// >> breakpoint-next(sm)\\n// md\\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\\n// md\\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\\n// md\\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\\n $n: index($breakpoint-names, $name);\\n @if not $n {\\n @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";\\n }\\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\\n}\\n\\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\\n//\\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\\n// 576px\\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\\n $min: map-get($breakpoints, $name);\\n @return if($min != 0, $min, null);\\n}\\n\\n// Maximum breakpoint width.\\n// The maximum value is reduced by 0.02px to work around the limitations of\\n// `min-` and `max-` prefixes and viewports with fractional widths.\\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\\n//\\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\\n// 767.98px\\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\\n $max: map-get($breakpoints, $name);\\n @return if($max and $max > 0, $max - .02, null);\\n}\\n\\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\\n// Useful for making responsive utilities.\\n//\\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\\n// "" (Returns a blank string)\\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\\n// "-sm"\\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\\n @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");\\n}\\n\\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\\n// Makes the @content apply to the given breakpoint and wider.\\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n @if $min {\\n @media (min-width: $min) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\\n// Makes the @content apply to the given breakpoint and narrower.\\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\\n $max: breakpoint-max($name, $breakpoints);\\n @if $max {\\n @media (max-width: $max) {\\n @content;\\n }\\n } @else {\\n @content;\\n }\\n}\\n\\n// Media that spans multiple breakpoint widths.\\n// Makes the @content apply between the min and max breakpoints\\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($lower, $breakpoints);\\n $max: breakpoint-max($upper, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($lower, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($upper, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\\n// Media between the breakpoint\\\'s minimum and maximum widths.\\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\\n $min: breakpoint-min($name, $breakpoints);\\n $next: breakpoint-next($name, $breakpoints);\\n $max: breakpoint-max($next, $breakpoints);\\n\\n @if $min != null and $max != null {\\n @media (min-width: $min) and (max-width: $max) {\\n @content;\\n }\\n } @else if $max == null {\\n @include media-breakpoint-up($name, $breakpoints) {\\n @content;\\n }\\n } @else if $min == null {\\n @include media-breakpoint-down($next, $breakpoints) {\\n @content;\\n }\\n }\\n}\\n\',\'@import "./components/QueryForm";\\n\\n$footer-body-color: lightgray;\\n\\n.user-component .alert {\\n padding-top: 0.375rem;\\n padding-bottom: 0.375rem;\\n font-size: 1rem;\\n margin: 0;\\n}\\n\\nheader {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\\n border-radius: 0;\\n}\\n\\nfooter {\\n color: darken($footer-body-color, 30%);\\n\\n .nav {\\n border-bottom: 1px solid darken($footer-body-color, 20%);\\n }\\n .nav-link {\\n color: darken($footer-body-color, 30%) !important;\\n }\\n .nav-link:hover {\\n color: darken($footer-body-color, 40%) !important;\\n }\\n .footer-body {\\n border-top: 1px solid darken($footer-body-color, 10%);\\n background-color: $footer-body-color;\\n min-height: 20rem;\\n }\\n .footer-border {\\n height: 3rem;\\n box-shadow: 0px -5px 7px -5px rgba(0, 0, 0, 0.4) inset;\\n -webkit-box-shadow: 0px -5px 7px -5px rgba(0, 0, 0, 0.4) inset;\\n -moz-box-shadow: 0px -5px 6px -7px rgba(0, 0, 0, 0.4) inset;\\n }\\n}\\n\\n.caosdb-checkbox {\\n .caosdb-checkbox-icon {\\n font-size: 1.3em;\\n }\\n\\n .caosdb-check-box-input {\\n display: none;\\n }\\n\\n cursor: pointer;\\n\\n &.read-only {\\n cursor: auto;\\n }\\n}\\n\\n.color-light-green {\\n color: #b4e600;\\n}\\n\\n.minicard {\\n border: 1px solid red;\\n width: 400px;\\n display: flex;\\n\\n .minicard-title {\\n background-color: red;\\n }\\n}\\n\'],sourceRoot:""}]),t.Z=i},645:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var u=this[l][0];null!=u&&(i[u]=!0)}for(var s=0;s<e.length;s++){var c=[].concat(e[s]);r&&i[c[0]]||(void 0!==a&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=a),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),o&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=o):c[4]="".concat(o)),t.push(c))}},t}},537:function(e){"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(o," */");return[t].concat([a]).join("\\n")}return[t].join("\\n")}},143:function(e){"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,o,a,i,l],c=0;(u=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},391:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,o.default)((function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];var o=null;return t.forEach((function(e){if(null==o){var t=e.apply(void 0,n);null!=t&&(o=t)}})),o}))};var r,o=(r=n(613))&&r.__esModule?r:{default:r};e.exports=t.default},613:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(t,n,r,o,a,i){var l=o||"<<anonymous>>",u=i||r;if(null==n[r])return t?new Error("Required "+a+" `"+u+"` was not specified in `"+l+"`."):null;for(var s=arguments.length,c=Array(s>6?s-6:0),f=6;f<s;f++)c[f-6]=arguments[f];return e.apply(void 0,[n,r,l,a,u].concat(c))}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n},e.exports=t.default},703:function(e,t,n){"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},697:function(e,t,n){e.exports=n(703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},448:function(e,t,n){"use strict";var r=n(639),o=n(840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function u(e,t){s(e,t),s(e+"Capture",t)}function s(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,p={},m={};function h(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var g=/[\\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,t,n,r){var o=v.hasOwnProperty(t)?v[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(m,e)||!f.call(p,e)&&(d.test(e)?m[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(g,y);v[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(g,y);v[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(g,y);v[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.element"),E=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),A=Symbol.for("react.provider"),N=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),P=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),_=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var j=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var R=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=R&&e[R]||e["@@iterator"])?e:null}var I,F=Object.assign;function M(e){if(void 0===I)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);I=t&&t[1]||""}return"\\n"+I+e}var z=!1;function q(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var o=t.stack.split("\\n"),a=r.stack.split("\\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l]){var u="\\n"+o[i].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return q(e.type,!1);case 11:return q(e.type.render,!1);case 1:return q(e.type,!0);default:return""}}function B(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case k:return"Fragment";case E:return"Portal";case S:return"Profiler";case C:return"StrictMode";case T:return"Suspense";case P:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case A:return(e._context.displayName||"Context")+".Provider";case O:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(t=e.displayName||null)?t:B(e.type)||"Memo";case _:t=e._payload,e=e._init;try{return B(e(t))}catch(e){}}return null}function U(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return B(t);case 8:return t===C?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function H(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=H(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Y(e,t){var n=t.checked;return F({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function G(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function X(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function J(e,t){X(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Z(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return F({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function ae(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ue(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var se,ce,fe=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((se=se||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function de(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ve(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(pe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var ge=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(ge[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function be(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ee=null,ke=null,Ce=null;function Se(e){if(e=wo(e)){if("function"!=typeof Ee)throw Error(a(280));var t=e.stateNode;t&&(t=Eo(t),Ee(e.stateNode,e.type,t))}}function Ae(e){ke?Ce?Ce.push(e):Ce=[e]:ke=e}function Ne(){if(ke){var e=ke,t=Ce;if(Ce=ke=null,Se(e),t)for(e=0;e<t.length;e++)Se(t[e])}}function Oe(e,t){return e(t)}function Te(){}var Pe=!1;function Le(e,t,n){if(Pe)return e(t,n);Pe=!0;try{return Oe(e,t,n)}finally{Pe=!1,(null!==ke||null!==Ce)&&(Te(),Ne())}}function _e(e,t){var n=e.stateNode;if(null===n)return null;var r=Eo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var je=!1;if(c)try{var Re={};Object.defineProperty(Re,"passive",{get:function(){je=!0}}),window.addEventListener("test",Re,Re),window.removeEventListener("test",Re,Re)}catch(ce){je=!1}function De(e,t,n,r,o,a,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var Ie=!1,Fe=null,Me=!1,ze=null,qe={onError:function(e){Ie=!0,Fe=e}};function $e(e,t,n,r,o,a,i,l,u){Ie=!1,Fe=null,De.apply(qe,arguments)}function Be(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ue(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function We(e){if(Be(e)!==e)throw Error(a(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Be(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return We(o),e;if(i===r)return We(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var l=!1,u=o.child;u;){if(u===n){l=!0,n=o,r=i;break}if(u===r){l=!0,r=o,n=i;break}u=u.sibling}if(!l){for(u=i.child;u;){if(u===n){l=!0,n=i,r=o;break}if(u===r){l=!0,r=i,n=o;break}u=u.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var Qe=o.unstable_scheduleCallback,Ke=o.unstable_cancelCallback,Ye=o.unstable_shouldYield,Ge=o.unstable_requestPaint,Xe=o.unstable_now,Je=o.unstable_getCurrentPriorityLevel,Ze=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null,it=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(lt(e)/ut|0)|0},lt=Math.log,ut=Math.LN2,st=64,ct=4194304;function ft(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function dt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~o;0!==l?r=ft(l):0!=(a&=i)&&(r=ft(a))}else 0!=(i=n&~o)?r=ft(i):0!==a&&(r=ft(a));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=st;return 0==(4194240&(st<<=1))&&(st=64),e}function vt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function gt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var bt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var xt,Et,kt,Ct,St,At=!1,Nt=[],Ot=null,Tt=null,Pt=null,Lt=new Map,_t=new Map,jt=[],Rt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Ot=null;break;case"dragenter":case"dragleave":Tt=null;break;case"mouseover":case"mouseout":Pt=null;break;case"pointerover":case"pointerout":Lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":_t.delete(t.pointerId)}}function It(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&null!==(t=wo(t))&&Et(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Ft(e){var t=bo(e.target);if(null!==t){var n=Be(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ue(n)))return e.blockedOn=t,void St(e.priority,(function(){kt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Yt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=wo(n))&&Et(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function qt(){At=!1,null!==Ot&&Mt(Ot)&&(Ot=null),null!==Tt&&Mt(Tt)&&(Tt=null),null!==Pt&&Mt(Pt)&&(Pt=null),Lt.forEach(zt),_t.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,At||(At=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,qt)))}function Bt(e){function t(t){return $t(t,e)}if(0<Nt.length){$t(Nt[0],e);for(var n=1;n<Nt.length;n++){var r=Nt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Ot&&$t(Ot,e),null!==Tt&&$t(Tt,e),null!==Pt&&$t(Pt,e),Lt.forEach(t),_t.forEach(t),n=0;n<jt.length;n++)(r=jt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<jt.length&&null===(n=jt[0]).blockedOn;)Ft(n),null===n.blockedOn&&jt.shift()}var Ut=w.ReactCurrentBatchConfig,Wt=!0;function Ht(e,t,n,r){var o=bt,a=Ut.transition;Ut.transition=null;try{bt=1,Qt(e,t,n,r)}finally{bt=o,Ut.transition=a}}function Vt(e,t,n,r){var o=bt,a=Ut.transition;Ut.transition=null;try{bt=4,Qt(e,t,n,r)}finally{bt=o,Ut.transition=a}}function Qt(e,t,n,r){if(Wt){var o=Yt(e,t,n,r);if(null===o)Wr(e,t,r,Kt,n),Dt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Ot=It(Ot,e,t,n,r,o),!0;case"dragenter":return Tt=It(Tt,e,t,n,r,o),!0;case"mouseover":return Pt=It(Pt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Lt.set(a,It(Lt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,_t.set(a,It(_t.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Rt.indexOf(e)){for(;null!==o;){var a=wo(o);if(null!==a&&xt(a),null===(a=Yt(e,t,n,r))&&Wr(e,t,r,Kt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Wr(e,t,r,null,n)}}var Kt=null;function Yt(e,t,n,r){if(Kt=null,null!==(e=bo(e=xe(r))))if(null===(t=Be(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ue(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Gt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Je()){case Ze:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Xt=null,Jt=null,Zt=null;function en(){if(Zt)return Zt;var e,t,n=Jt,r=n.length,o="value"in Xt?Xt.value:Xt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Zt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return F(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,ln,un,sn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=on(sn),fn=F({},sn,{view:0,detail:0}),dn=on(fn),pn=F({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Sn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(an=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=an=0,un=e),an)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=on(pn),hn=on(F({},pn,{dataTransfer:0})),vn=on(F({},fn,{relatedTarget:0})),gn=on(F({},sn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=F({},sn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bn=on(yn),wn=on(F({},sn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},kn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=kn[e])&&!!t[e]}function Sn(){return Cn}var An=F({},fn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Sn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Nn=on(An),On=on(F({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Tn=on(F({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Sn})),Pn=on(F({},sn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=F({},pn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),_n=on(Ln),jn=[9,13,27,32],Rn=c&&"CompositionEvent"in window,Dn=null;c&&"documentMode"in document&&(Dn=document.documentMode);var In=c&&"TextEvent"in window&&!Dn,Fn=c&&(!Rn||Dn&&8<Dn&&11>=Dn),Mn=String.fromCharCode(32),zn=!1;function qn(e,t){switch(e){case"keyup":return-1!==jn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Bn=!1,Un={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Un[e.type]:"textarea"===t}function Hn(e,t,n,r){Ae(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Qn=null;function Kn(e){Mr(e,0)}function Yn(e){if(Q(xo(e)))return e}function Gn(e,t){if("change"===e)return t}var Xn=!1;if(c){var Jn;if(c){var Zn="oninput"in document;if(!Zn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Zn="function"==typeof er.oninput}Jn=Zn}else Jn=!1;Xn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Qn=Vn=null)}function nr(e){if("value"===e.propertyName&&Yn(Qn)){var t=[];Hn(t,Qn,e,xe(e)),Le(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Qn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Qn)}function ar(e,t){if("click"===e)return Yn(t)}function ir(e,t){if("input"===e||"change"===e)return Yn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function ur(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!f.call(t,o)||!lr(e[o],t[o]))return!1}return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?fr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function dr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=dr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&fr(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=cr(n,a);var i=cr(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=c&&"documentMode"in document&&11>=document.documentMode,vr=null,gr=null,yr=null,br=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;br||null==vr||vr!==K(r)||(r="selectionStart"in(r=vr)&&pr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&ur(yr,r)||(yr=r,0<(r=Vr(gr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}function xr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Er={animationend:xr("Animation","AnimationEnd"),animationiteration:xr("Animation","AnimationIteration"),animationstart:xr("Animation","AnimationStart"),transitionend:xr("Transition","TransitionEnd")},kr={},Cr={};function Sr(e){if(kr[e])return kr[e];if(!Er[e])return e;var t,n=Er[e];for(t in n)if(n.hasOwnProperty(t)&&t in Cr)return kr[e]=n[t];return e}c&&(Cr=document.createElement("div").style,"AnimationEvent"in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),"TransitionEvent"in window||delete Er.transitionend.transition);var Ar=Sr("animationend"),Nr=Sr("animationiteration"),Or=Sr("animationstart"),Tr=Sr("transitionend"),Pr=new Map,Lr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function _r(e,t){Pr.set(e,t),u(t,[e])}for(var jr=0;jr<Lr.length;jr++){var Rr=Lr[jr];_r(Rr.toLowerCase(),"on"+(Rr[0].toUpperCase()+Rr.slice(1)))}_r(Ar,"onAnimationEnd"),_r(Nr,"onAnimationIteration"),_r(Or,"onAnimationStart"),_r("dblclick","onDoubleClick"),_r("focusin","onFocus"),_r("focusout","onBlur"),_r(Tr,"onTransitionEnd"),s("onMouseEnter",["mouseout","mouseover"]),s("onMouseLeave",["mouseout","mouseover"]),s("onPointerEnter",["pointerout","pointerover"]),s("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Fr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,l,u,s){if($e.apply(this,arguments),Ie){if(!Ie)throw Error(a(198));var c=Fe;Ie=!1,Fe=null,Me||(Me=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],u=l.instance,s=l.currentTarget;if(l=l.listener,u!==a&&o.isPropagationStopped())break e;Fr(o,l,s),a=u}else for(i=0;i<r.length;i++){if(u=(l=r[i]).instance,s=l.currentTarget,l=l.listener,u!==a&&o.isPropagationStopped())break e;Fr(o,l,s),a=u}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zr(e,t){var n=t[vo];void 0===n&&(n=t[vo]=new Set);var r=e+"__bubble";n.has(r)||(Ur(t,e,2,!1),n.add(r))}function qr(e,t,n){var r=0;t&&(r|=4),Ur(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Br(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Ir.has(t)||qr(t,!1,e),qr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,qr("selectionchange",!1,t))}}function Ur(e,t,n,r){switch(Gt(t)){case 1:var o=Ht;break;case 4:o=Vt;break;default:o=Qt}n=o.bind(null,t,n,e),o=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Wr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var u=i.tag;if((3===u||4===u)&&((u=i.stateNode.containerInfo)===o||8===u.nodeType&&u.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=bo(l)))return;if(5===(u=i.tag)||6===u){r=a=i;continue e}l=l.parentNode}}r=r.return}Le((function(){var r=a,o=xe(n),i=[];e:{var l=Pr.get(e);if(void 0!==l){var u=cn,s=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":u=Nn;break;case"focusin":s="focus",u=vn;break;case"focusout":s="blur",u=vn;break;case"beforeblur":case"afterblur":u=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Tn;break;case Ar:case Nr:case Or:u=gn;break;case Tr:u=Pn;break;case"scroll":u=dn;break;case"wheel":u=_n;break;case"copy":case"cut":case"paste":u=bn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=On}var c=0!=(4&t),f=!c&&"scroll"===e,d=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&null!=(h=_e(m,d))&&c.push(Hr(m,h,p))),f)break;m=m.return}0<c.length&&(l=new u(l,s,null,n,o),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(s=n.relatedTarget||n.fromElement)||!bo(s)&&!s[ho])&&(u||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(s=(s=n.relatedTarget||n.toElement)?bo(s):null)&&(s!==(f=Be(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(u=null,s=r),u!==s)){if(c=mn,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=On,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==u?l:xo(u),p=null==s?l:xo(s),(l=new c(h,m+"leave",u,n,o)).target=f,l.relatedTarget=p,h=null,bo(o)===r&&((c=new c(d,m+"enter",s,n,o)).target=p,c.relatedTarget=f,h=c),f=h,u&&s)e:{for(d=s,m=0,p=c=u;p;p=Qr(p))m++;for(p=0,h=d;h;h=Qr(h))p++;for(;0<m-p;)c=Qr(c),m--;for(;0<p-m;)d=Qr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=Qr(c),d=Qr(d)}c=null}else c=null;null!==u&&Kr(i,l,u,c,!1),null!==s&&null!==f&&Kr(i,f,s,c,!0)}if("select"===(u=(l=r?xo(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var v=Gn;else if(Wn(l))if(Xn)v=ir;else{v=or;var g=rr}else(u=l.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(v=ar);switch(v&&(v=v(e,r))?Hn(i,v,n,o):(g&&g(e,l,r),"focusout"===e&&(g=l._wrapperState)&&g.controlled&&"number"===l.type&&ee(l,"number",l.value)),g=r?xo(r):window,e){case"focusin":(Wn(g)||"true"===g.contentEditable)&&(vr=g,gr=r,yr=null);break;case"focusout":yr=gr=vr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,wr(i,n,o);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,o)}var y;if(Rn)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Bn?qn(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(Fn&&"ko"!==n.locale&&(Bn||"onCompositionStart"!==b?"onCompositionEnd"===b&&Bn&&(y=en()):(Jt="value"in(Xt=o)?Xt.value:Xt.textContent,Bn=!0)),0<(g=Vr(r,b)).length&&(b=new wn(b,e,null,n,o),i.push({event:b,listeners:g}),(y||null!==(y=$n(n)))&&(b.data=y))),(y=In?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Bn)return"compositionend"===e||!Rn&&qn(e,t)?(e=en(),Zt=Jt=Xt=null,Bn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Vr(r,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=y)}Mr(i,t)}))}function Hr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=_e(e,n))&&r.unshift(Hr(e,a,o)),null!=(a=_e(e,t))&&r.push(Hr(e,a,o))),e=e.return}return r}function Qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,u=l.alternate,s=l.stateNode;if(null!==u&&u===r)break;5===l.tag&&null!==s&&(l=s,o?null!=(u=_e(n,a))&&i.unshift(Hr(n,u,l)):o||null!=(u=_e(n,a))&&i.push(Hr(n,u,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Yr=/\\r\\n?/g,Gr=/\\u0000|\\uFFFD/g;function Xr(e){return("string"==typeof e?e:""+e).replace(Yr,"\\n").replace(Gr,"")}function Jr(e,t,n){if(t=Xr(t),Xr(e)!==t&&n)throw Error(a(425))}function Zr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(lo)}:ro;function lo(e){setTimeout((function(){throw e}))}function uo(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Bt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Bt(t)}function so(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function co(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var fo=Math.random().toString(36).slice(2),po="__reactFiber$"+fo,mo="__reactProps$"+fo,ho="__reactContainer$"+fo,vo="__reactEvents$"+fo,go="__reactListeners$"+fo,yo="__reactHandles$"+fo;function bo(e){var t=e[po];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ho]||n[po]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=co(e);null!==e;){if(n=e[po])return n;e=co(e)}return t}n=(e=n).parentNode}return null}function wo(e){return!(e=e[po]||e[ho])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function xo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function Eo(e){return e[mo]||null}var ko=[],Co=-1;function So(e){return{current:e}}function Ao(e){0>Co||(e.current=ko[Co],ko[Co]=null,Co--)}function No(e,t){Co++,ko[Co]=e.current,e.current=t}var Oo={},To=So(Oo),Po=So(!1),Lo=Oo;function _o(e,t){var n=e.type.contextTypes;if(!n)return Oo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function jo(e){return null!=e.childContextTypes}function Ro(){Ao(Po),Ao(To)}function Do(e,t,n){if(To.current!==Oo)throw Error(a(168));No(To,t),No(Po,n)}function Io(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,U(e)||"Unknown",o));return F({},n,r)}function Fo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Oo,Lo=To.current,No(To,e),No(Po,Po.current),!0}function Mo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Io(e,t,Lo),r.__reactInternalMemoizedMergedChildContext=e,Ao(Po),Ao(To),No(To,e)):Ao(Po),No(Po,n)}var zo=null,qo=!1,$o=!1;function Bo(e){null===zo?zo=[e]:zo.push(e)}function Uo(){if(!$o&&null!==zo){$o=!0;var e=0,t=bt;try{var n=zo;for(bt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}zo=null,qo=!1}catch(t){throw null!==zo&&(zo=zo.slice(e+1)),Qe(Ze,Uo),t}finally{bt=t,$o=!1}}return null}var Wo=[],Ho=0,Vo=null,Qo=0,Ko=[],Yo=0,Go=null,Xo=1,Jo="";function Zo(e,t){Wo[Ho++]=Qo,Wo[Ho++]=Vo,Vo=e,Qo=t}function ea(e,t,n){Ko[Yo++]=Xo,Ko[Yo++]=Jo,Ko[Yo++]=Go,Go=e;var r=Xo;e=Jo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Xo=1<<32-it(t)+o|n<<o|r,Jo=a+e}else Xo=1<<a|n<<o|r,Jo=e}function ta(e){null!==e.return&&(Zo(e,1),ea(e,1,0))}function na(e){for(;e===Vo;)Vo=Wo[--Ho],Wo[Ho]=null,Qo=Wo[--Ho],Wo[Ho]=null;for(;e===Go;)Go=Ko[--Yo],Ko[Yo]=null,Jo=Ko[--Yo],Ko[Yo]=null,Xo=Ko[--Yo],Ko[Yo]=null}var ra=null,oa=null,aa=!1,ia=null;function la(e,t){var n=_s(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function ua(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=so(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Go?{id:Xo,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=_s(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function sa(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function ca(e){if(aa){var t=oa;if(t){var n=t;if(!ua(e,t)){if(sa(e))throw Error(a(418));t=so(n.nextSibling);var r=ra;t&&ua(e,t)?la(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(sa(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function fa(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function da(e){if(e!==ra)return!1;if(!aa)return fa(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(sa(e))throw pa(),Error(a(418));for(;t;)la(e,t),t=so(t.nextSibling)}if(fa(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=so(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?so(e.stateNode.nextSibling):null;return!0}function pa(){for(var e=oa;e;)e=so(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function ha(e){null===ia?ia=[e]:ia.push(e)}var va=w.ReactCurrentBatchConfig;function ga(e,t){if(e&&e.defaultProps){for(var n in t=F({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var ya=So(null),ba=null,wa=null,xa=null;function Ea(){xa=wa=ba=null}function ka(e){var t=ya.current;Ao(ya),e._currentValue=t}function Ca(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Sa(e,t){ba=e,xa=wa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(wl=!0),e.firstContext=null)}function Aa(e){var t=e._currentValue;if(xa!==e)if(e={context:e,memoizedValue:t,next:null},null===wa){if(null===ba)throw Error(a(308));wa=e,ba.dependencies={lanes:0,firstContext:e}}else wa=wa.next=e;return t}var Na=null;function Oa(e){null===Na?Na=[e]:Na.push(e)}function Ta(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Oa(t)):(n.next=o.next,o.next=n),t.interleaved=n,Pa(e,r)}function Pa(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var La=!1;function _a(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ja(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ra(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Da(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Tu)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Pa(e,n)}return null===(o=r.interleaved)?(t.next=t,Oa(r)):(t.next=o.next,o.next=t),r.interleaved=t,Pa(e,n)}function Ia(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Fa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ma(e,t,n,r){var o=e.updateQueue;La=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var u=l,s=u.next;u.next=null,null===i?a=s:i.next=s,i=u;var c=e.alternate;null!==c&&(l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=s:l.next=s,c.lastBaseUpdate=u)}if(null!==a){var f=o.baseState;for(i=0,c=s=u=null,l=a;;){var d=l.lane,p=l.eventTime;if((r&d)===d){null!==c&&(c=c.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,h=l;switch(d=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(p,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(d="function"==typeof(m=h.payload)?m.call(p,f,d):m))break e;f=F({},f,d);break e;case 2:La=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(d=o.effects)?o.effects=[l]:d.push(l))}else p={eventTime:p,lane:d,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(s=c=p,u=f):c=c.next=p,i|=d;if(null===(l=l.next)){if(null===(l=o.shared.pending))break;l=(d=l).next,d.next=null,o.lastBaseUpdate=d,o.shared.pending=null}}if(null===c&&(u=f),o.baseState=u,o.firstBaseUpdate=s,o.lastBaseUpdate=c,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Fu|=i,e.lanes=i,e.memoizedState=f}}function za(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var qa=(new r.Component).refs;function $a(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:F({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Ba={isMounted:function(e){return!!(e=e._reactInternals)&&Be(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ts(),o=ns(e),a=Ra(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Da(e,a,o))&&(rs(t,e,o,r),Ia(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ts(),o=ns(e),a=Ra(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Da(e,a,o))&&(rs(t,e,o,r),Ia(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ts(),r=ns(e),o=Ra(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Da(e,o,r))&&(rs(t,e,r,n),Ia(t,e,r))}};function Ua(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!(t.prototype&&t.prototype.isPureReactComponent&&ur(n,r)&&ur(o,a))}function Wa(e,t,n){var r=!1,o=Oo,a=t.contextType;return"object"==typeof a&&null!==a?a=Aa(a):(o=jo(t)?Lo:To.current,a=(r=null!=(r=t.contextTypes))?_o(e,o):Oo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function Ha(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ba.enqueueReplaceState(t,t.state,null)}function Va(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=qa,_a(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Aa(a):(a=jo(t)?Lo:To.current,o.context=_o(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&($a(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Ba.enqueueReplaceState(o,o.state,null),Ma(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function Qa(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;t===qa&&(t=o.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function Ka(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ya(e){return(0,e._init)(e._payload)}function Ga(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Rs(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Ms(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function s(e,t,n,r){var a=n.type;return a===k?f(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===_&&Ya(a)===t.type)?((r=o(t,n.props)).ref=Qa(e,t,n),r.return=e,r):((r=Ds(n.type,n.key,n.props,null,e.mode,r)).ref=Qa(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,a){return null===t||7!==t.tag?((t=Is(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Ms(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Ds(t.type,t.key,t.props,null,e.mode,n)).ref=Qa(e,null,t),n.return=e,n;case E:return(t=zs(t,e.mode,n)).return=e,t;case _:return d(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Is(t,e.mode,n,null)).return=e,t;Ka(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===o?s(e,t,n,r):null;case E:return n.key===o?c(e,t,n,r):null;case _:return p(e,t,(o=n._init)(n._payload),r)}if(te(n)||D(n))return null!==o?null:f(e,t,n,r,null);Ka(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return s(t,e=e.get(null===r.key?n:r.key)||null,r,o);case E:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case _:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||D(r))return f(t,e=e.get(n)||null,r,o,null);Ka(t,r)}return null}function h(o,a,l,u){for(var s=null,c=null,f=a,h=a=0,v=null;null!==f&&h<l.length;h++){f.index>h?(v=f,f=null):v=f.sibling;var g=p(o,f,l[h],u);if(null===g){null===f&&(f=v);break}e&&f&&null===g.alternate&&t(o,f),a=i(g,a,h),null===c?s=g:c.sibling=g,c=g,f=v}if(h===l.length)return n(o,f),aa&&Zo(o,h),s;if(null===f){for(;h<l.length;h++)null!==(f=d(o,l[h],u))&&(a=i(f,a,h),null===c?s=f:c.sibling=f,c=f);return aa&&Zo(o,h),s}for(f=r(o,f);h<l.length;h++)null!==(v=m(f,o,h,l[h],u))&&(e&&null!==v.alternate&&f.delete(null===v.key?h:v.key),a=i(v,a,h),null===c?s=v:c.sibling=v,c=v);return e&&f.forEach((function(e){return t(o,e)})),aa&&Zo(o,h),s}function v(o,l,u,s){var c=D(u);if("function"!=typeof c)throw Error(a(150));if(null==(u=c.call(u)))throw Error(a(151));for(var f=c=null,h=l,v=l=0,g=null,y=u.next();null!==h&&!y.done;v++,y=u.next()){h.index>v?(g=h,h=null):g=h.sibling;var b=p(o,h,y.value,s);if(null===b){null===h&&(h=g);break}e&&h&&null===b.alternate&&t(o,h),l=i(b,l,v),null===f?c=b:f.sibling=b,f=b,h=g}if(y.done)return n(o,h),aa&&Zo(o,v),c;if(null===h){for(;!y.done;v++,y=u.next())null!==(y=d(o,y.value,s))&&(l=i(y,l,v),null===f?c=y:f.sibling=y,f=y);return aa&&Zo(o,v),c}for(h=r(o,h);!y.done;v++,y=u.next())null!==(y=m(h,o,v,y.value,s))&&(e&&null!==y.alternate&&h.delete(null===y.key?v:y.key),l=i(y,l,v),null===f?c=y:f.sibling=y,f=y);return e&&h.forEach((function(e){return t(o,e)})),aa&&Zo(o,v),c}return function e(r,a,i,u){if("object"==typeof i&&null!==i&&i.type===k&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case x:e:{for(var s=i.key,c=a;null!==c;){if(c.key===s){if((s=i.type)===k){if(7===c.tag){n(r,c.sibling),(a=o(c,i.props.children)).return=r,r=a;break e}}else if(c.elementType===s||"object"==typeof s&&null!==s&&s.$$typeof===_&&Ya(s)===c.type){n(r,c.sibling),(a=o(c,i.props)).ref=Qa(r,c,i),a.return=r,r=a;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===k?((a=Is(i.props.children,r.mode,u,i.key)).return=r,r=a):((u=Ds(i.type,i.key,i.props,null,r.mode,u)).ref=Qa(r,a,i),u.return=r,r=u)}return l(r);case E:e:{for(c=i.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=zs(i,r.mode,u)).return=r,r=a}return l(r);case _:return e(r,a,(c=i._init)(i._payload),u)}if(te(i))return h(r,a,i,u);if(D(i))return v(r,a,i,u);Ka(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Ms(i,r.mode,u)).return=r,r=a),l(r)):n(r,a)}}var Xa=Ga(!0),Ja=Ga(!1),Za={},ei=So(Za),ti=So(Za),ni=So(Za);function ri(e){if(e===Za)throw Error(a(174));return e}function oi(e,t){switch(No(ni,t),No(ti,e),No(ei,Za),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ue(null,"");break;default:t=ue(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ao(ei),No(ei,t)}function ai(){Ao(ei),Ao(ti),Ao(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=ue(t,e.type);t!==n&&(No(ti,e),No(ei,n))}function li(e){ti.current===e&&(Ao(ei),Ao(ti))}var ui=So(0);function si(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ci=[];function fi(){for(var e=0;e<ci.length;e++)ci[e]._workInProgressVersionPrimary=null;ci.length=0}var di=w.ReactCurrentDispatcher,pi=w.ReactCurrentBatchConfig,mi=0,hi=null,vi=null,gi=null,yi=!1,bi=!1,wi=0,xi=0;function Ei(){throw Error(a(321))}function ki(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function Ci(e,t,n,r,o,i){if(mi=i,hi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,di.current=null===e||null===e.memoizedState?ll:ul,e=n(r,o),bi){i=0;do{if(bi=!1,wi=0,25<=i)throw Error(a(301));i+=1,gi=vi=null,t.updateQueue=null,di.current=sl,e=n(r,o)}while(bi)}if(di.current=il,t=null!==vi&&null!==vi.next,mi=0,gi=vi=hi=null,yi=!1,t)throw Error(a(300));return e}function Si(){var e=0!==wi;return wi=0,e}function Ai(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===gi?hi.memoizedState=gi=e:gi=gi.next=e,gi}function Ni(){if(null===vi){var e=hi.alternate;e=null!==e?e.memoizedState:null}else e=vi.next;var t=null===gi?hi.memoizedState:gi.next;if(null!==t)gi=t,vi=e;else{if(null===e)throw Error(a(310));e={memoizedState:(vi=e).memoizedState,baseState:vi.baseState,baseQueue:vi.baseQueue,queue:vi.queue,next:null},null===gi?hi.memoizedState=gi=e:gi=gi.next=e}return gi}function Oi(e,t){return"function"==typeof t?t(e):t}function Ti(e){var t=Ni(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=vi,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var l=o.next;o.next=i.next,i.next=l}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var u=l=null,s=null,c=i;do{var f=c.lane;if((mi&f)===f)null!==s&&(s=s.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var d={lane:f,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===s?(u=s=d,l=r):s=s.next=d,hi.lanes|=f,Fu|=f}c=c.next}while(null!==c&&c!==i);null===s?l=r:s.next=u,lr(r,t.memoizedState)||(wl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=s,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,hi.lanes|=i,Fu|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Pi(e){var t=Ni(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{i=e(i,l.action),l=l.next}while(l!==o);lr(i,t.memoizedState)||(wl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Li(){}function _i(e,t){var n=hi,r=Ni(),o=t(),i=!lr(r.memoizedState,o);if(i&&(r.memoizedState=o,wl=!0),r=r.queue,Wi(Di.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==gi&&1&gi.memoizedState.tag){if(n.flags|=2048,zi(9,Ri.bind(null,n,r,o,t),void 0,null),null===Pu)throw Error(a(349));0!=(30&mi)||ji(n,t,o)}return o}function ji(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ri(e,t,n,r){t.value=n,t.getSnapshot=r,Ii(t)&&Fi(e)}function Di(e,t,n){return n((function(){Ii(t)&&Fi(e)}))}function Ii(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(e){return!0}}function Fi(e){var t=Pa(e,1);null!==t&&rs(t,e,1,-1)}function Mi(e){var t=Ai();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Oi,lastRenderedState:e},t.queue=e,e=e.dispatch=nl.bind(null,hi,e),[t.memoizedState,e]}function zi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function qi(){return Ni().memoizedState}function $i(e,t,n,r){var o=Ai();hi.flags|=e,o.memoizedState=zi(1|t,n,void 0,void 0===r?null:r)}function Bi(e,t,n,r){var o=Ni();r=void 0===r?null:r;var a=void 0;if(null!==vi){var i=vi.memoizedState;if(a=i.destroy,null!==r&&ki(r,i.deps))return void(o.memoizedState=zi(t,n,a,r))}hi.flags|=e,o.memoizedState=zi(1|t,n,a,r)}function Ui(e,t){return $i(8390656,8,e,t)}function Wi(e,t){return Bi(2048,8,e,t)}function Hi(e,t){return Bi(4,2,e,t)}function Vi(e,t){return Bi(4,4,e,t)}function Qi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ki(e,t,n){return n=null!=n?n.concat([e]):null,Bi(4,4,Qi.bind(null,t,e),n)}function Yi(){}function Gi(e,t){var n=Ni();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ki(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Xi(e,t){var n=Ni();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ki(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ji(e,t,n){return 0==(21&mi)?(e.baseState&&(e.baseState=!1,wl=!0),e.memoizedState=n):(lr(n,t)||(n=ht(),hi.lanes|=n,Fu|=n,e.baseState=!0),t)}function Zi(e,t){var n=bt;bt=0!==n&&4>n?n:4,e(!0);var r=pi.transition;pi.transition={};try{e(!1),t()}finally{bt=n,pi.transition=r}}function el(){return Ni().memoizedState}function tl(e,t,n){var r=ns(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rl(e)?ol(t,n):null!==(n=Ta(e,t,n,r))&&(rs(n,e,r,ts()),al(n,t,r))}function nl(e,t,n){var r=ns(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rl(e))ol(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,lr(l,i)){var u=t.interleaved;return null===u?(o.next=o,Oa(t)):(o.next=u.next,u.next=o),void(t.interleaved=o)}}catch(e){}null!==(n=Ta(e,t,o,r))&&(rs(n,e,r,o=ts()),al(n,t,r))}}function rl(e){var t=e.alternate;return e===hi||null!==t&&t===hi}function ol(e,t){bi=yi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function al(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var il={readContext:Aa,useCallback:Ei,useContext:Ei,useEffect:Ei,useImperativeHandle:Ei,useInsertionEffect:Ei,useLayoutEffect:Ei,useMemo:Ei,useReducer:Ei,useRef:Ei,useState:Ei,useDebugValue:Ei,useDeferredValue:Ei,useTransition:Ei,useMutableSource:Ei,useSyncExternalStore:Ei,useId:Ei,unstable_isNewReconciler:!1},ll={readContext:Aa,useCallback:function(e,t){return Ai().memoizedState=[e,void 0===t?null:t],e},useContext:Aa,useEffect:Ui,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Qi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ai();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ai();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tl.bind(null,hi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ai().memoizedState=e},useState:Mi,useDebugValue:Yi,useDeferredValue:function(e){return Ai().memoizedState=e},useTransition:function(){var e=Mi(!1),t=e[0];return e=Zi.bind(null,e[1]),Ai().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=hi,o=Ai();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Pu)throw Error(a(349));0!=(30&mi)||ji(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ui(Di.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Ri.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ai(),t=Pu.identifierPrefix;if(aa){var n=Jo;t=":"+t+"R"+(n=(Xo&~(1<<32-it(Xo)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ul={readContext:Aa,useCallback:Gi,useContext:Aa,useEffect:Wi,useImperativeHandle:Ki,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Xi,useReducer:Ti,useRef:qi,useState:function(){return Ti(Oi)},useDebugValue:Yi,useDeferredValue:function(e){return Ji(Ni(),vi.memoizedState,e)},useTransition:function(){return[Ti(Oi)[0],Ni().memoizedState]},useMutableSource:Li,useSyncExternalStore:_i,useId:el,unstable_isNewReconciler:!1},sl={readContext:Aa,useCallback:Gi,useContext:Aa,useEffect:Wi,useImperativeHandle:Ki,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Xi,useReducer:Pi,useRef:qi,useState:function(){return Pi(Oi)},useDebugValue:Yi,useDeferredValue:function(e){var t=Ni();return null===vi?t.memoizedState=e:Ji(t,vi.memoizedState,e)},useTransition:function(){return[Pi(Oi)[0],Ni().memoizedState]},useMutableSource:Li,useSyncExternalStore:_i,useId:el,unstable_isNewReconciler:!1};function cl(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var o=n}catch(e){o="\\nError generating stack: "+e.message+"\\n"+e.stack}return{value:e,source:t,stack:o,digest:null}}function fl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function ml(e,t,n){(n=Ra(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hu||(Hu=!0,Vu=r),dl(0,t)},n}function hl(e,t,n){(n=Ra(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){dl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Qu?Qu=new Set([this]):Qu.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function vl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=As.bind(null,e,t,n),t.then(e,e))}function gl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function yl(e,t,n,r,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ra(-1,1)).tag=2,Da(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var bl=w.ReactCurrentOwner,wl=!1;function xl(e,t,n,r){t.child=null===e?Ja(t,null,n,r):Xa(t,e.child,n,r)}function El(e,t,n,r,o){n=n.render;var a=t.ref;return Sa(t,o),r=Ci(e,t,n,r,a,o),n=Si(),null===e||wl?(aa&&n&&ta(t),t.flags|=1,xl(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function kl(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||js(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ds(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Cl(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:ur)(i,r)&&e.ref===t.ref)return Hl(e,t,o)}return t.flags|=1,(e=Rs(a,r)).ref=t.ref,e.return=t,t.child=e}function Cl(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(ur(a,r)&&e.ref===t.ref){if(wl=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,Hl(e,t,o);0!=(131072&e.flags)&&(wl=!0)}}return Nl(e,t,n,r,o)}function Sl(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},No(Ru,ju),ju|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,No(Ru,ju),ju|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,No(Ru,ju),ju|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,No(Ru,ju),ju|=r;return xl(e,t,o,n),t.child}function Al(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Nl(e,t,n,r,o){var a=jo(n)?Lo:To.current;return a=_o(t,a),Sa(t,o),n=Ci(e,t,n,r,a,o),r=Si(),null===e||wl?(aa&&r&&ta(t),t.flags|=1,xl(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function Ol(e,t,n,r,o){if(jo(n)){var a=!0;Fo(t)}else a=!1;if(Sa(t,o),null===t.stateNode)Wl(e,t),Wa(t,n,r),Va(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;s="object"==typeof s&&null!==s?Aa(s):_o(t,s=jo(n)?Lo:To.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&Ha(t,i,r,s),La=!1;var d=t.memoizedState;i.state=d,Ma(t,r,i,o),u=t.memoizedState,l!==r||d!==u||Po.current||La?("function"==typeof c&&($a(t,n,c,r),u=t.memoizedState),(l=La||Ua(t,n,l,r,d,u,s))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,ja(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:ga(t.type,l),i.props=s,f=t.pendingProps,d=i.context,u="object"==typeof(u=n.contextType)&&null!==u?Aa(u):_o(t,u=jo(n)?Lo:To.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==f||d!==u)&&Ha(t,i,r,u),La=!1,d=t.memoizedState,i.state=d,Ma(t,r,i,o);var m=t.memoizedState;l!==f||d!==m||Po.current||La?("function"==typeof p&&($a(t,n,p,r),m=t.memoizedState),(s=La||Ua(t,n,s,r,d,m,u)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,u),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,u)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=u,r=s):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return Tl(e,t,n,r,a,o)}function Tl(e,t,n,r,o,a){Al(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Mo(t,n,!1),Hl(e,t,a);r=t.stateNode,bl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Xa(t,e.child,null,a),t.child=Xa(t,null,l,a)):xl(e,t,l,a),t.memoizedState=r.state,o&&Mo(t,n,!0),t.child}function Pl(e){var t=e.stateNode;t.pendingContext?Do(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Do(0,t.context,!1),oi(e,t.containerInfo)}function Ll(e,t,n,r,o){return ma(),ha(o),t.flags|=256,xl(e,t,n,r),t.child}var _l,jl,Rl,Dl,Il={dehydrated:null,treeContext:null,retryLane:0};function Fl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,o=t.pendingProps,i=ui.current,l=!1,u=0!=(128&t.flags);if((r=u)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),No(ui,1&i),null===e)return ca(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(u=o.children,e=o.fallback,l?(o=t.mode,l=t.child,u={mode:"hidden",children:u},0==(1&o)&&null!==l?(l.childLanes=0,l.pendingProps=u):l=Fs(u,o,0,null),e=Is(e,o,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Fl(n),t.memoizedState=Il,e):zl(t,u));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,l){if(n)return 256&t.flags?(t.flags&=-257,ql(e,t,l,r=fl(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Fs({mode:"visible",children:r.children},o,0,null),(i=Is(i,o,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Xa(t,e.child,null,l),t.child.memoizedState=Fl(l),t.memoizedState=Il,i);if(0==(1&t.mode))return ql(e,t,l,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var u=r.dgst;return r=u,ql(e,t,l,r=fl(i=Error(a(419)),r,void 0))}if(u=0!=(l&e.childLanes),wl||u){if(null!==(r=Pu)){switch(l&-l){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(r.suspendedLanes|l))?0:o)&&o!==i.retryLane&&(i.retryLane=o,Pa(e,o),rs(r,e,o,-1))}return vs(),ql(e,t,l,r=fl(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Os.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=so(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Ko[Yo++]=Xo,Ko[Yo++]=Jo,Ko[Yo++]=Go,Xo=e.id,Jo=e.overflow,Go=t),(t=zl(t,r.children)).flags|=4096,t)}(e,t,u,o,r,i,n);if(l){l=o.fallback,u=t.mode,r=(i=e.child).sibling;var s={mode:"hidden",children:o.children};return 0==(1&u)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=s,t.deletions=null):(o=Rs(i,s)).subtreeFlags=14680064&i.subtreeFlags,null!==r?l=Rs(r,l):(l=Is(l,u,n,null)).flags|=2,l.return=t,o.return=t,o.sibling=l,t.child=o,o=l,l=t.child,u=null===(u=e.child.memoizedState)?Fl(n):{baseLanes:u.baseLanes|n,cachePool:null,transitions:u.transitions},l.memoizedState=u,l.childLanes=e.childLanes&~n,t.memoizedState=Il,o}return e=(l=e.child).sibling,o=Rs(l,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function zl(e,t){return(t=Fs({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function ql(e,t,n,r){return null!==r&&ha(r),Xa(t,e.child,null,n),(e=zl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $l(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ca(e.return,t,n)}function Bl(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Ul(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(xl(e,t,r.children,n),0!=(2&(r=ui.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$l(e,n,t);else if(19===e.tag)$l(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(No(ui,r),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===si(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Bl(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===si(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Bl(t,!0,n,null,a);break;case"together":Bl(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Wl(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Fu|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Rs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Rs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Vl(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ql(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Kl(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ql(t),null;case 1:case 17:return jo(t.type)&&Ro(),Ql(t),null;case 3:return r=t.stateNode,ai(),Ao(Po),Ao(To),fi(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(da(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(ls(ia),ia=null))),jl(e,t),Ql(t),null;case 5:li(t);var o=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Rl(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Ql(t),null}if(e=ri(ei.current),da(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[po]=t,r[mo]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(o=0;o<Dr.length;o++)zr(Dr[o],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":G(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":oe(r,i),zr("invalid",r)}for(var u in ye(n,i),o=null,i)if(i.hasOwnProperty(u)){var s=i[u];"children"===u?"string"==typeof s?r.textContent!==s&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,s,e),o=["children",s]):"number"==typeof s&&r.textContent!==""+s&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,s,e),o=["children",""+s]):l.hasOwnProperty(u)&&null!=s&&"onScroll"===u&&zr("scroll",r)}switch(n){case"input":V(r),Z(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Zr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{u=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=u.createElement("div")).innerHTML="<script><\\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[po]=t,e[mo]=r,_l(e,t,!1,!1),t.stateNode=e;e:{switch(u=be(n,r),n){case"dialog":zr("cancel",e),zr("close",e),o=r;break;case"iframe":case"object":case"embed":zr("load",e),o=r;break;case"video":case"audio":for(o=0;o<Dr.length;o++)zr(Dr[o],e);o=r;break;case"source":zr("error",e),o=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),o=r;break;case"details":zr("toggle",e),o=r;break;case"input":G(e,r),o=Y(e,r),zr("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=F({},r,{value:void 0}),zr("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),zr("invalid",e)}for(i in ye(n,o),s=o)if(s.hasOwnProperty(i)){var c=s[i];"style"===i?ve(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&fe(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&de(e,c):"number"==typeof c&&de(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&b(e,i,c,u))}switch(n){case"input":V(e),Z(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Zr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Ql(t),null;case 6:if(e&&null!=t.stateNode)Dl(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=ri(ni.current),ri(ei.current),da(t)){if(r=t.stateNode,n=t.memoizedProps,r[po]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Jr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[po]=t,t.stateNode=r}return Ql(t),null;case 13:if(Ao(ui),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))pa(),ma(),t.flags|=98560,i=!1;else if(i=da(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[po]=t}else ma(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ql(t),i=!1}else null!==ia&&(ls(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!=(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&ui.current)?0===Du&&(Du=3):vs())),null!==t.updateQueue&&(t.flags|=4),Ql(t),null);case 4:return ai(),jl(e,t),null===e&&Br(t.stateNode.containerInfo),Ql(t),null;case 10:return ka(t.type._context),Ql(t),null;case 19:if(Ao(ui),null===(i=t.memoizedState))return Ql(t),null;if(r=0!=(128&t.flags),null===(u=i.rendering))if(r)Vl(i,!1);else{if(0!==Du||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(u=si(e))){for(t.flags|=128,Vl(i,!1),null!==(r=u.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(u=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=u.childLanes,i.lanes=u.lanes,i.child=u.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=u.memoizedProps,i.memoizedState=u.memoizedState,i.updateQueue=u.updateQueue,i.type=u.type,e=u.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return No(ui,1&ui.current|2),t.child}e=e.sibling}null!==i.tail&&Xe()>Uu&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=si(u))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Vl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!u.alternate&&!aa)return Ql(t),null}else 2*Xe()-i.renderingStartTime>Uu&&1073741824!==n&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304);i.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=i.last)?n.sibling=u:t.child=u,i.last=u)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Xe(),t.sibling=null,n=ui.current,No(ui,r?1&n|2:1&n),t):(Ql(t),null);case 22:case 23:return ds(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&ju)&&(Ql(t),6&t.subtreeFlags&&(t.flags|=8192)):Ql(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Yl(e,t){switch(na(t),t.tag){case 1:return jo(t.type)&&Ro(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ai(),Ao(Po),Ao(To),fi(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return li(t),null;case 13:if(Ao(ui),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ao(ui),null;case 4:return ai(),null;case 10:return ka(t.type._context),null;case 22:case 23:return ds(),null;default:return null}}_l=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},jl=function(){},Rl=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,ri(ei.current);var a,i=null;switch(n){case"input":o=Y(e,o),r=Y(e,r),i=[];break;case"select":o=F({},o,{value:void 0}),r=F({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Zr)}for(c in ye(n,r),n=null,o)if(!r.hasOwnProperty(c)&&o.hasOwnProperty(c)&&null!=o[c])if("style"===c){var u=o[c];for(a in u)u.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var s=r[c];if(u=null!=o?o[c]:void 0,r.hasOwnProperty(c)&&s!==u&&(null!=s||null!=u))if("style"===c)if(u){for(a in u)!u.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in s)s.hasOwnProperty(a)&&u[a]!==s[a]&&(n||(n={}),n[a]=s[a])}else n||(i||(i=[]),i.push(c,n)),n=s;else"dangerouslySetInnerHTML"===c?(s=s?s.__html:void 0,u=u?u.__html:void 0,null!=s&&u!==s&&(i=i||[]).push(c,s)):"children"===c?"string"!=typeof s&&"number"!=typeof s||(i=i||[]).push(c,""+s):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=s&&"onScroll"===c&&zr("scroll",e),i||u===s||(i=[])):(i=i||[]).push(c,s))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Dl=function(e,t,n,r){n!==r&&(t.flags|=4)};var Gl=!1,Xl=!1,Jl="function"==typeof WeakSet?WeakSet:Set,Zl=null;function eu(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){Ss(e,t,n)}else n.current=null}function tu(e,t,n){try{n()}catch(n){Ss(e,t,n)}}var nu=!1;function ru(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&tu(t,n,a)}o=o.next}while(o!==r)}}function ou(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function au(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function iu(e){var t=e.alternate;null!==t&&(e.alternate=null,iu(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&(delete t[po],delete t[mo],delete t[vo],delete t[go],delete t[yo]),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function lu(e){return 5===e.tag||3===e.tag||4===e.tag}function uu(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||lu(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function su(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Zr));else if(4!==r&&null!==(e=e.child))for(su(e,t,n),e=e.sibling;null!==e;)su(e,t,n),e=e.sibling}function cu(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cu(e,t,n),e=e.sibling;null!==e;)cu(e,t,n),e=e.sibling}var fu=null,du=!1;function pu(e,t,n){for(n=n.child;null!==n;)mu(e,t,n),n=n.sibling}function mu(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(e){}switch(n.tag){case 5:Xl||eu(n,t);case 6:var r=fu,o=du;fu=null,pu(e,t,n),du=o,null!==(fu=r)&&(du?(e=fu,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):fu.removeChild(n.stateNode));break;case 18:null!==fu&&(du?(e=fu,n=n.stateNode,8===e.nodeType?uo(e.parentNode,n):1===e.nodeType&&uo(e,n),Bt(e)):uo(fu,n.stateNode));break;case 4:r=fu,o=du,fu=n.stateNode.containerInfo,du=!0,pu(e,t,n),fu=r,du=o;break;case 0:case 11:case 14:case 15:if(!Xl&&null!==(r=n.updateQueue)&&null!==(r=r.lastEffect)){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(0!=(2&a)||0!=(4&a))&&tu(n,t,i),o=o.next}while(o!==r)}pu(e,t,n);break;case 1:if(!Xl&&(eu(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){Ss(n,t,e)}pu(e,t,n);break;case 21:pu(e,t,n);break;case 22:1&n.mode?(Xl=(r=Xl)||null!==n.memoizedState,pu(e,t,n),Xl=r):pu(e,t,n);break;default:pu(e,t,n)}}function hu(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Jl),t.forEach((function(t){var r=Ts.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function vu(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,l=t,u=l;e:for(;null!==u;){switch(u.tag){case 5:fu=u.stateNode,du=!1;break e;case 3:case 4:fu=u.stateNode.containerInfo,du=!0;break e}u=u.return}if(null===fu)throw Error(a(160));mu(i,l,o),fu=null,du=!1;var s=o.alternate;null!==s&&(s.return=null),o.return=null}catch(e){Ss(o,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gu(t,e),t=t.sibling}function gu(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(vu(t,e),yu(e),4&r){try{ru(3,e,e.return),ou(3,e)}catch(t){Ss(e,e.return,t)}try{ru(5,e,e.return)}catch(t){Ss(e,e.return,t)}}break;case 1:vu(t,e),yu(e),512&r&&null!==n&&eu(n,n.return);break;case 5:if(vu(t,e),yu(e),512&r&&null!==n&&eu(n,n.return),32&e.flags){var o=e.stateNode;try{de(o,"")}catch(t){Ss(e,e.return,t)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,u=e.type,s=e.updateQueue;if(e.updateQueue=null,null!==s)try{"input"===u&&"radio"===i.type&&null!=i.name&&X(o,i),be(u,l);var c=be(u,i);for(l=0;l<s.length;l+=2){var f=s[l],d=s[l+1];"style"===f?ve(o,d):"dangerouslySetInnerHTML"===f?fe(o,d):"children"===f?de(o,d):b(o,f,d,c)}switch(u){case"input":J(o,i);break;case"textarea":ae(o,i);break;case"select":var p=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):p!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(t){Ss(e,e.return,t)}}break;case 6:if(vu(t,e),yu(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(t){Ss(e,e.return,t)}}break;case 3:if(vu(t,e),yu(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Bt(t.containerInfo)}catch(t){Ss(e,e.return,t)}break;case 4:default:vu(t,e),yu(e);break;case 13:vu(t,e),yu(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Bu=Xe())),4&r&&hu(e);break;case 22:if(f=null!==n&&null!==n.memoizedState,1&e.mode?(Xl=(c=Xl)||f,vu(t,e),Xl=c):vu(t,e),yu(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!f&&0!=(1&e.mode))for(Zl=e,f=e.child;null!==f;){for(d=Zl=f;null!==Zl;){switch(m=(p=Zl).child,p.tag){case 0:case 11:case 14:case 15:ru(4,p,p.return);break;case 1:eu(p,p.return);var h=p.stateNode;if("function"==typeof h.componentWillUnmount){r=p,n=p.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(e){Ss(r,n,e)}}break;case 5:eu(p,p.return);break;case 22:if(null!==p.memoizedState){Eu(d);continue}}null!==m?(m.return=p,Zl=m):Eu(d)}f=f.sibling}e:for(f=null,d=e;;){if(5===d.tag){if(null===f){f=d;try{o=d.stateNode,c?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(u=d.stateNode,l=null!=(s=d.memoizedProps.style)&&s.hasOwnProperty("display")?s.display:null,u.style.display=he("display",l))}catch(t){Ss(e,e.return,t)}}}else if(6===d.tag){if(null===f)try{d.stateNode.nodeValue=c?"":d.memoizedProps}catch(t){Ss(e,e.return,t)}}else if((22!==d.tag&&23!==d.tag||null===d.memoizedState||d===e)&&null!==d.child){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;null===d.sibling;){if(null===d.return||d.return===e)break e;f===d&&(f=null),d=d.return}f===d&&(f=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:vu(t,e),yu(e),4&r&&hu(e);case 21:}}function yu(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(lu(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(de(o,""),r.flags&=-33),cu(e,uu(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;su(e,uu(e),i);break;default:throw Error(a(161))}}catch(t){Ss(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bu(e,t,n){Zl=e,wu(e,t,n)}function wu(e,t,n){for(var r=0!=(1&e.mode);null!==Zl;){var o=Zl,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Gl;if(!i){var l=o.alternate,u=null!==l&&null!==l.memoizedState||Xl;l=Gl;var s=Xl;if(Gl=i,(Xl=u)&&!s)for(Zl=o;null!==Zl;)u=(i=Zl).child,22===i.tag&&null!==i.memoizedState?ku(o):null!==u?(u.return=i,Zl=u):ku(o);for(;null!==a;)Zl=a,wu(a,t,n),a=a.sibling;Zl=o,Gl=l,Xl=s}xu(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Zl=a):xu(e)}}function xu(e){for(;null!==Zl;){var t=Zl;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Xl||ou(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Xl)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ga(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&za(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}za(t,l,n)}break;case 5:var u=t.stateNode;if(null===n&&4&t.flags){n=u;var s=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&n.focus();break;case"img":s.src&&(n.src=s.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var f=c.memoizedState;if(null!==f){var d=f.dehydrated;null!==d&&Bt(d)}}}break;default:throw Error(a(163))}Xl||512&t.flags&&au(t)}catch(e){Ss(t,t.return,e)}}if(t===e){Zl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Zl=n;break}Zl=t.return}}function Eu(e){for(;null!==Zl;){var t=Zl;if(t===e){Zl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Zl=n;break}Zl=t.return}}function ku(e){for(;null!==Zl;){var t=Zl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ou(4,t)}catch(e){Ss(t,n,e)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(e){Ss(t,o,e)}}var a=t.return;try{au(t)}catch(e){Ss(t,a,e)}break;case 5:var i=t.return;try{au(t)}catch(e){Ss(t,i,e)}}}catch(e){Ss(t,t.return,e)}if(t===e){Zl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Zl=l;break}Zl=t.return}}var Cu,Su=Math.ceil,Au=w.ReactCurrentDispatcher,Nu=w.ReactCurrentOwner,Ou=w.ReactCurrentBatchConfig,Tu=0,Pu=null,Lu=null,_u=0,ju=0,Ru=So(0),Du=0,Iu=null,Fu=0,Mu=0,zu=0,qu=null,$u=null,Bu=0,Uu=1/0,Wu=null,Hu=!1,Vu=null,Qu=null,Ku=!1,Yu=null,Gu=0,Xu=0,Ju=null,Zu=-1,es=0;function ts(){return 0!=(6&Tu)?Xe():-1!==Zu?Zu:Zu=Xe()}function ns(e){return 0==(1&e.mode)?1:0!=(2&Tu)&&0!==_u?_u&-_u:null!==va.transition?(0===es&&(es=ht()),es):0!==(e=bt)?e:e=void 0===(e=window.event)?16:Gt(e.type)}function rs(e,t,n,r){if(50<Xu)throw Xu=0,Ju=null,Error(a(185));gt(e,n,r),0!=(2&Tu)&&e===Pu||(e===Pu&&(0==(2&Tu)&&(Mu|=n),4===Du&&us(e,_u)),os(e,r),1===n&&0===Tu&&0==(1&t.mode)&&(Uu=Xe()+500,qo&&Uo()))}function os(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),l=1<<i,u=o[i];-1===u?0!=(l&n)&&0==(l&r)||(o[i]=pt(l,t)):u<=t&&(e.expiredLanes|=l),a&=~l}}(e,t);var r=dt(e,e===Pu?_u:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){qo=!0,Bo(e)}(ss.bind(null,e)):Bo(ss.bind(null,e)),io((function(){0==(6&Tu)&&Uo()})),n=null;else{switch(wt(r)){case 1:n=Ze;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ps(n,as.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function as(e,t){if(Zu=-1,es=0,0!=(6&Tu))throw Error(a(327));var n=e.callbackNode;if(ks()&&e.callbackNode!==n)return null;var r=dt(e,e===Pu?_u:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=gs(e,r);else{t=r;var o=Tu;Tu|=2;var i=hs();for(Pu===e&&_u===t||(Wu=null,Uu=Xe()+500,ps(e,t));;)try{bs();break}catch(t){ms(e,t)}Ea(),Au.current=i,Tu=o,null!==Lu?t=0:(Pu=null,_u=0,t=Du)}if(0!==t){if(2===t&&0!==(o=mt(e))&&(r=o,t=is(e,o)),1===t)throw n=Iu,ps(e,0),us(e,r),os(e,Xe()),n;if(6===t)us(e,r);else{if(o=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!lr(a(),o))return!1}catch(e){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)&&(2===(t=gs(e,r))&&0!==(i=mt(e))&&(r=i,t=is(e,i)),1===t))throw n=Iu,ps(e,0),us(e,r),os(e,Xe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:Es(e,$u,Wu);break;case 3:if(us(e,r),(130023424&r)===r&&10<(t=Bu+500-Xe())){if(0!==dt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ts(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(Es.bind(null,e,$u,Wu),t);break}Es(e,$u,Wu);break;case 4:if(us(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>o&&(o=l),r&=~i}if(r=o,10<(r=(120>(r=Xe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Su(r/1960))-r)){e.timeoutHandle=ro(Es.bind(null,e,$u,Wu),r);break}Es(e,$u,Wu);break;default:throw Error(a(329))}}}return os(e,Xe()),e.callbackNode===n?as.bind(null,e):null}function is(e,t){var n=qu;return e.current.memoizedState.isDehydrated&&(ps(e,t).flags|=256),2!==(e=gs(e,t))&&(t=$u,$u=n,null!==t&&ls(t)),e}function ls(e){null===$u?$u=e:$u.push.apply($u,e)}function us(e,t){for(t&=~zu,t&=~Mu,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function ss(e){if(0!=(6&Tu))throw Error(a(327));ks();var t=dt(e,0);if(0==(1&t))return os(e,Xe()),null;var n=gs(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=is(e,r))}if(1===n)throw n=Iu,ps(e,0),us(e,t),os(e,Xe()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Es(e,$u,Wu),os(e,Xe()),null}function cs(e,t){var n=Tu;Tu|=1;try{return e(t)}finally{0===(Tu=n)&&(Uu=Xe()+500,qo&&Uo())}}function fs(e){null!==Yu&&0===Yu.tag&&0==(6&Tu)&&ks();var t=Tu;Tu|=1;var n=Ou.transition,r=bt;try{if(Ou.transition=null,bt=1,e)return e()}finally{bt=r,Ou.transition=n,0==(6&(Tu=t))&&Uo()}}function ds(){ju=Ru.current,Ao(Ru)}function ps(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Lu)for(n=Lu.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Ro();break;case 3:ai(),Ao(Po),Ao(To),fi();break;case 5:li(r);break;case 4:ai();break;case 13:case 19:Ao(ui);break;case 10:ka(r.type._context);break;case 22:case 23:ds()}n=n.return}if(Pu=e,Lu=e=Rs(e.current,null),_u=ju=t,Du=0,Iu=null,zu=Mu=Fu=0,$u=qu=null,null!==Na){for(t=0;t<Na.length;t++)if(null!==(r=(n=Na[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Na=null}return e}function ms(e,t){for(;;){var n=Lu;try{if(Ea(),di.current=il,yi){for(var r=hi.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}yi=!1}if(mi=0,gi=vi=hi=null,bi=!1,wi=0,Nu.current=null,null===n||null===n.return){Du=1,Iu=t,Lu=null;break}e:{var i=e,l=n.return,u=n,s=t;if(t=_u,u.flags|=32768,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s,f=u,d=f.tag;if(0==(1&f.mode)&&(0===d||11===d||15===d)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var m=gl(l);if(null!==m){m.flags&=-257,yl(m,l,u,0,t),1&m.mode&&vl(i,c,t),s=c;var h=(t=m).updateQueue;if(null===h){var v=new Set;v.add(s),t.updateQueue=v}else h.add(s);break e}if(0==(1&t)){vl(i,c,t),vs();break e}s=Error(a(426))}else if(aa&&1&u.mode){var g=gl(l);if(null!==g){0==(65536&g.flags)&&(g.flags|=256),yl(g,l,u,0,t),ha(cl(s,u));break e}}i=s=cl(s,u),4!==Du&&(Du=2),null===qu?qu=[i]:qu.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Fa(i,ml(0,s,t));break e;case 1:u=s;var y=i.type,b=i.stateNode;if(0==(128&i.flags)&&("function"==typeof y.getDerivedStateFromError||null!==b&&"function"==typeof b.componentDidCatch&&(null===Qu||!Qu.has(b)))){i.flags|=65536,t&=-t,i.lanes|=t,Fa(i,hl(i,u,t));break e}}i=i.return}while(null!==i)}xs(n)}catch(e){t=e,Lu===n&&null!==n&&(Lu=n=n.return);continue}break}}function hs(){var e=Au.current;return Au.current=il,null===e?il:e}function vs(){0!==Du&&3!==Du&&2!==Du||(Du=4),null===Pu||0==(268435455&Fu)&&0==(268435455&Mu)||us(Pu,_u)}function gs(e,t){var n=Tu;Tu|=2;var r=hs();for(Pu===e&&_u===t||(Wu=null,ps(e,t));;)try{ys();break}catch(t){ms(e,t)}if(Ea(),Tu=n,Au.current=r,null!==Lu)throw Error(a(261));return Pu=null,_u=0,Du}function ys(){for(;null!==Lu;)ws(Lu)}function bs(){for(;null!==Lu&&!Ye();)ws(Lu)}function ws(e){var t=Cu(e.alternate,e,ju);e.memoizedProps=e.pendingProps,null===t?xs(e):Lu=t,Nu.current=null}function xs(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Kl(n,t,ju)))return void(Lu=n)}else{if(null!==(n=Yl(n,t)))return n.flags&=32767,void(Lu=n);if(null===e)return Du=6,void(Lu=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Lu=t);Lu=t=e}while(null!==t);0===Du&&(Du=5)}function Es(e,t,n){var r=bt,o=Ou.transition;try{Ou.transition=null,bt=1,function(e,t,n,r){do{ks()}while(null!==Yu);if(0!=(6&Tu))throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===Pu&&(Lu=Pu=null,_u=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Ku||(Ku=!0,Ps(tt,(function(){return ks(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Ou.transition,Ou.transition=null;var l=bt;bt=1;var u=Tu;Tu|=4,Nu.current=null,function(e,t){if(eo=Wt,pr(e=dr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var l=0,u=-1,s=-1,c=0,f=0,d=e,p=null;t:for(;;){for(var m;d!==n||0!==o&&3!==d.nodeType||(u=l+o),d!==i||0!==r&&3!==d.nodeType||(s=l+r),3===d.nodeType&&(l+=d.nodeValue.length),null!==(m=d.firstChild);)p=d,d=m;for(;;){if(d===e)break t;if(p===n&&++c===o&&(u=l),p===i&&++f===r&&(s=l),null!==(m=d.nextSibling))break;p=(d=p).parentNode}d=m}n=-1===u||-1===s?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Wt=!1,Zl=t;null!==Zl;)if(e=(t=Zl).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Zl=e;else for(;null!==Zl;){t=Zl;try{var h=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var v=h.memoizedProps,g=h.memoizedState,y=t.stateNode,b=y.getSnapshotBeforeUpdate(t.elementType===t.type?v:ga(t.type,v),g);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(a(163))}}catch(e){Ss(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,Zl=e;break}Zl=t.return}h=nu,nu=!1}(e,n),gu(n,e),mr(to),Wt=!!eo,to=eo=null,e.current=n,bu(n,e,o),Ge(),Tu=u,bt=l,Ou.transition=i}else e.current=n;if(Ku&&(Ku=!1,Yu=e,Gu=o),0===(i=e.pendingLanes)&&(Qu=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(e){}}(n.stateNode),os(e,Xe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((o=t[n]).value,{componentStack:o.stack,digest:o.digest});if(Hu)throw Hu=!1,e=Vu,Vu=null,e;0!=(1&Gu)&&0!==e.tag&&ks(),0!=(1&(i=e.pendingLanes))?e===Ju?Xu++:(Xu=0,Ju=e):Xu=0,Uo()}(e,t,n,r)}finally{Ou.transition=o,bt=r}return null}function ks(){if(null!==Yu){var e=wt(Gu),t=Ou.transition,n=bt;try{if(Ou.transition=null,bt=16>e?16:e,null===Yu)var r=!1;else{if(e=Yu,Yu=null,Gu=0,0!=(6&Tu))throw Error(a(331));var o=Tu;for(Tu|=4,Zl=e.current;null!==Zl;){var i=Zl,l=i.child;if(0!=(16&Zl.flags)){var u=i.deletions;if(null!==u){for(var s=0;s<u.length;s++){var c=u[s];for(Zl=c;null!==Zl;){var f=Zl;switch(f.tag){case 0:case 11:case 15:ru(8,f,i)}var d=f.child;if(null!==d)d.return=f,Zl=d;else for(;null!==Zl;){var p=(f=Zl).sibling,m=f.return;if(iu(f),f===c){Zl=null;break}if(null!==p){p.return=m,Zl=p;break}Zl=m}}}var h=i.alternate;if(null!==h){var v=h.child;if(null!==v){h.child=null;do{var g=v.sibling;v.sibling=null,v=g}while(null!==v)}}Zl=i}}if(0!=(2064&i.subtreeFlags)&&null!==l)l.return=i,Zl=l;else e:for(;null!==Zl;){if(0!=(2048&(i=Zl).flags))switch(i.tag){case 0:case 11:case 15:ru(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Zl=y;break e}Zl=i.return}}var b=e.current;for(Zl=b;null!==Zl;){var w=(l=Zl).child;if(0!=(2064&l.subtreeFlags)&&null!==w)w.return=l,Zl=w;else e:for(l=b;null!==Zl;){if(0!=(2048&(u=Zl).flags))try{switch(u.tag){case 0:case 11:case 15:ou(9,u)}}catch(e){Ss(u,u.return,e)}if(u===l){Zl=null;break e}var x=u.sibling;if(null!==x){x.return=u.return,Zl=x;break e}Zl=u.return}}if(Tu=o,Uo(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(e){}r=!0}return r}finally{bt=n,Ou.transition=t}}return!1}function Cs(e,t,n){e=Da(e,t=ml(0,t=cl(n,t),1),1),t=ts(),null!==e&&(gt(e,1,t),os(e,t))}function Ss(e,t,n){if(3===e.tag)Cs(e,e,n);else for(;null!==t;){if(3===t.tag){Cs(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Qu||!Qu.has(r))){t=Da(t,e=hl(t,e=cl(n,e),1),1),e=ts(),null!==t&&(gt(t,1,e),os(t,e));break}}t=t.return}}function As(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ts(),e.pingedLanes|=e.suspendedLanes&n,Pu===e&&(_u&n)===n&&(4===Du||3===Du&&(130023424&_u)===_u&&500>Xe()-Bu?ps(e,0):zu|=n),os(e,t)}function Ns(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ct,0==(130023424&(ct<<=1))&&(ct=4194304)));var n=ts();null!==(e=Pa(e,t))&&(gt(e,t,n),os(e,n))}function Os(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ns(e,n)}function Ts(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Ns(e,n)}function Ps(e,t){return Qe(e,t)}function Ls(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _s(e,t,n,r){return new Ls(e,t,n,r)}function js(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Rs(e,t){var n=e.alternate;return null===n?((n=_s(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ds(e,t,n,r,o,i){var l=2;if(r=e,"function"==typeof e)js(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case k:return Is(n.children,o,i,t);case C:l=8,o|=8;break;case S:return(e=_s(12,n,t,2|o)).elementType=S,e.lanes=i,e;case T:return(e=_s(13,n,t,o)).elementType=T,e.lanes=i,e;case P:return(e=_s(19,n,t,o)).elementType=P,e.lanes=i,e;case j:return Fs(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case A:l=10;break e;case N:l=9;break e;case O:l=11;break e;case L:l=14;break e;case _:l=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=_s(l,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Is(e,t,n,r){return(e=_s(7,e,r,t)).lanes=n,e}function Fs(e,t,n,r){return(e=_s(22,e,r,t)).elementType=j,e.lanes=n,e.stateNode={isHidden:!1},e}function Ms(e,t,n){return(e=_s(6,e,null,t)).lanes=n,e}function zs(e,t,n){return(t=_s(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function qs(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vt(0),this.expirationTimes=vt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function $s(e,t,n,r,o,a,i,l,u){return e=new qs(e,t,n,l,u),1===t?(t=1,!0===a&&(t|=8)):t=0,a=_s(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},_a(a),e}function Bs(e){if(!e)return Oo;e:{if(Be(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(jo(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(jo(n))return Io(e,n,t)}return t}function Us(e,t,n,r,o,a,i,l,u){return(e=$s(n,r,!0,e,0,a,0,l,u)).context=Bs(null),n=e.current,(a=Ra(r=ts(),o=ns(n))).callback=null!=t?t:null,Da(n,a,o),e.current.lanes=o,gt(e,o,r),os(e,r),e}function Ws(e,t,n,r){var o=t.current,a=ts(),i=ns(o);return n=Bs(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ra(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Da(o,t,i))&&(rs(e,o,i,a),Ia(e,o,i)),i}function Hs(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vs(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Qs(e,t){Vs(e,t),(e=e.alternate)&&Vs(e,t)}Cu=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Po.current)wl=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return wl=!1,function(e,t,n){switch(t.tag){case 3:Pl(t),ma();break;case 5:ii(t);break;case 1:jo(t.type)&&Fo(t);break;case 4:oi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;No(ya,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(No(ui,1&ui.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Ml(e,t,n):(No(ui,1&ui.current),null!==(e=Hl(e,t,n))?e.sibling:null);No(ui,1&ui.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Ul(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),No(ui,ui.current),r)break;return null;case 22:case 23:return t.lanes=0,Sl(e,t,n)}return Hl(e,t,n)}(e,t,n);wl=0!=(131072&e.flags)}else wl=!1,aa&&0!=(1048576&t.flags)&&ea(t,Qo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Wl(e,t),e=t.pendingProps;var o=_o(t,To.current);Sa(t,n),o=Ci(null,t,r,e,o,n);var i=Si();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,jo(r)?(i=!0,Fo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,_a(t),o.updater=Ba,t.stateNode=o,o._reactInternals=t,Va(t,r,e,n),t=Tl(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),xl(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Wl(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return js(e)?1:0;if(null!=e){if((e=e.$$typeof)===O)return 11;if(e===L)return 14}return 2}(r),e=ga(r,e),o){case 0:t=Nl(null,t,r,e,n);break e;case 1:t=Ol(null,t,r,e,n);break e;case 11:t=El(null,t,r,e,n);break e;case 14:t=kl(null,t,r,ga(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Nl(e,t,r,o=t.elementType===r?o:ga(r,o),n);case 1:return r=t.type,o=t.pendingProps,Ol(e,t,r,o=t.elementType===r?o:ga(r,o),n);case 3:e:{if(Pl(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,ja(e,t),Ma(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ll(e,t,r,n,o=cl(Error(a(423)),t));break e}if(r!==o){t=Ll(e,t,r,n,o=cl(Error(a(424)),t));break e}for(oa=so(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=Ja(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Hl(e,t,n);break e}xl(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&ca(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,l=o.children,no(r,o)?l=null:null!==i&&no(r,i)&&(t.flags|=32),Al(e,t),xl(e,t,l,n),t.child;case 6:return null===e&&ca(t),null;case 13:return Ml(e,t,n);case 4:return oi(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Xa(t,null,r,n):xl(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,El(e,t,r,o=t.elementType===r?o:ga(r,o),n);case 7:return xl(e,t,t.pendingProps,n),t.child;case 8:case 12:return xl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,l=o.value,No(ya,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===o.children&&!Po.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var u=i.dependencies;if(null!==u){l=i.child;for(var s=u.firstContext;null!==s;){if(s.context===r){if(1===i.tag){(s=Ra(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var f=(c=c.shared).pending;null===f?s.next=s:(s.next=f.next,f.next=s),c.pending=s}}i.lanes|=n,null!==(s=i.alternate)&&(s.lanes|=n),Ca(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(a(341));l.lanes|=n,null!==(u=l.alternate)&&(u.lanes|=n),Ca(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}xl(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Sa(t,n),r=r(o=Aa(o)),t.flags|=1,xl(e,t,r,n),t.child;case 14:return o=ga(r=t.type,t.pendingProps),kl(e,t,r,o=ga(r.type,o),n);case 15:return Cl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ga(r,o),Wl(e,t),t.tag=1,jo(r)?(e=!0,Fo(t)):e=!1,Sa(t,n),Wa(t,r,o),Va(t,r,o,n),Tl(null,t,r,!0,e,n);case 19:return Ul(e,t,n);case 22:return Sl(e,t,n)}throw Error(a(156,t.tag))};var Ks="function"==typeof reportError?reportError:function(e){console.error(e)};function Ys(e){this._internalRoot=e}function Gs(e){this._internalRoot=e}function Xs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Js(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Zs(){}function ec(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var l=o;o=function(){var e=Hs(i);l.call(e)}}Ws(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Hs(i);a.call(e)}}var i=Us(t,r,e,0,null,!1,0,"",Zs);return e._reactRootContainer=i,e[ho]=i.current,Br(8===e.nodeType?e.parentNode:e),fs(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var l=r;r=function(){var e=Hs(u);l.call(e)}}var u=$s(e,0,!1,null,0,!1,0,"",Zs);return e._reactRootContainer=u,e[ho]=u.current,Br(8===e.nodeType?e.parentNode:e),fs((function(){Ws(t,u,n,r)})),u}(n,t,e,o,r);return Hs(i)}Gs.prototype.render=Ys.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Ws(e,t,null,null)},Gs.prototype.unmount=Ys.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;fs((function(){Ws(null,e,null,null)})),t[ho]=null}},Gs.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ct();e={blockedOn:null,target:e,priority:t};for(var n=0;n<jt.length&&0!==t&&t<jt[n].priority;n++);jt.splice(n,0,e),0===n&&Ft(e)}},xt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ft(t.pendingLanes);0!==n&&(yt(t,1|n),os(t,Xe()),0==(6&Tu)&&(Uu=Xe()+500,Uo()))}break;case 13:fs((function(){var t=Pa(e,1);if(null!==t){var n=ts();rs(t,e,1,n)}})),Qs(e,1)}},Et=function(e){if(13===e.tag){var t=Pa(e,134217728);null!==t&&rs(t,e,134217728,ts()),Qs(e,134217728)}},kt=function(e){if(13===e.tag){var t=ns(e),n=Pa(e,t);null!==n&&rs(n,e,t,ts()),Qs(e,t)}},Ct=function(){return bt},St=function(e,t){var n=bt;try{return bt=e,t()}finally{bt=n}},Ee=function(e,t,n){switch(t){case"input":if(J(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+\'][type="radio"]\'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=Eo(r);if(!o)throw Error(a(90));Q(r),J(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Oe=cs,Te=fs;var tc={usingClientEntryPoint:!1,Events:[wo,xo,Eo,Ae,Ne,cs]},nc={findFiberByHostInstance:bo,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:nc.bundleType,version:nc.version,rendererPackageName:nc.rendererPackageName,rendererConfig:nc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:nc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var oc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!oc.isDisabled&&oc.supportsFiber)try{ot=oc.inject(rc),at=oc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tc,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Xs(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Xs(e))throw Error(a(299));var n=!1,r="",o=Ks;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=$s(e,1,!1,null,0,n,0,r,o),e[ho]=t.current,Br(8===e.nodeType?e.parentNode:e),new Ys(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return fs(e)},t.hydrate=function(e,t,n){if(!Js(t))throw Error(a(200));return ec(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Xs(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",l=Ks;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Us(t,null,e,1,null!=n?n:null,o,0,i,l),e[ho]=t.current,Br(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Gs(t)},t.render=function(e,t,n){if(!Js(t))throw Error(a(200));return ec(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Js(e))throw Error(a(40));return!!e._reactRootContainer&&(fs((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ho]=null}))})),!0)},t.unstable_batchedUpdates=cs,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Js(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ec(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},935:function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(448)},251:function(e,t,n){"use strict";var r=n(639),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,n){var r,a={},s=null,c=null;for(r in void 0!==n&&(s=""+n),void 0!==t.key&&(s=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!u.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:s,ref:c,props:a,_owner:l.current}}t.Fragment=a,t.jsx=s,t.jsxs=s},893:function(e,t,n){"use strict";e.exports=n(251)},53:function(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,u=e[l],s=l+1,c=e[s];if(0>a(u,n))s<o&&0>a(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[l]=n,r=l);else{if(!(s<o&&0>a(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,u=l.now();t.unstable_now=function(){return l.now()-u}}var s=[],c=[],f=1,d=null,p=3,m=!1,h=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function x(e){if(v=!1,w(e),!h)if(null!==r(s))h=!0,j(E);else{var t=r(c);null!==t&&R(x,t.startTime-e)}}function E(e,n){h=!1,v&&(v=!1,y(A),A=-1),m=!0;var a=p;try{for(w(n),d=r(s);null!==d&&(!(d.expirationTime>n)||e&&!T());){var i=d.callback;if("function"==typeof i){d.callback=null,p=d.priorityLevel;var l=i(d.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?d.callback=l:d===r(s)&&o(s),w(n)}else o(s);d=r(s)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&R(x,f.startTime-n),u=!1}return u}finally{d=null,p=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var k,C=!1,S=null,A=-1,N=5,O=-1;function T(){return!(t.unstable_now()-O<N)}function P(){if(null!==S){var e=t.unstable_now();O=e;var n=!0;try{n=S(!0,e)}finally{n?k():(C=!1,S=null)}}else C=!1}if("function"==typeof b)k=function(){b(P)};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,_=L.port2;L.port1.onmessage=P,k=function(){_.postMessage(null)}}else k=function(){g(P,0)};function j(e){S=e,C||(C=!0,k())}function R(e,n){A=g((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,j(E))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(s)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:f++,callback:o,priorityLevel:e,startTime:a,expirationTime:l=a+l,sortIndex:-1},a>i?(e.sortIndex=a,n(c,e),null===r(s)&&e===r(c)&&(v?(y(A),A=-1):v=!0,R(x,a-i))):(e.sortIndex=l,n(s,e),h||m||(h=!0,j(E))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},840:function(e,t,n){"use strict";e.exports=n(53)},379:function(e){"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},i=[],l=0;l<e.length;l++){var u=e[l],s=r.base?u[0]+r.base:u[0],c=a[s]||0,f="".concat(s," ").concat(c);a[s]=c+1;var d=n(f),p={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==d)t[d].references++,t[d].updater(p);else{var m=o(p,r);r.byIndex=l,t.splice(l,0,{identifier:f,updater:m,references:1})}i.push(f)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var l=n(a[i]);t[l].references--}for(var u=r(e,o),s=0;s<a.length;s++){var c=n(a[s]);0===t[c].references&&(t[c].updater(),t.splice(c,1))}a=u}}},569:function(e){"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn\'t find a style target. This probably means that the value for the \'insert\' parameter is invalid.");r.appendChild(n)}},216:function(e){"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},565:function(e,t,n){"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},795:function(e){"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:function(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},496:function(e){!function(){var t=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],n="undefined"!=typeof window,r=n&&null!=window.mozInnerScreenX;function o(e,o,a){if(!n)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");var i=a&&a.debug||!1;if(i){var l=document.querySelector("#input-textarea-caret-position-mirror-div");l&&l.parentNode.removeChild(l)}var u=document.createElement("div");u.id="input-textarea-caret-position-mirror-div",document.body.appendChild(u);var s=u.style,c=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle,f="INPUT"===e.nodeName;s.whiteSpace="pre-wrap",f||(s.wordWrap="break-word"),s.position="absolute",i||(s.visibility="hidden"),t.forEach((function(e){f&&"lineHeight"===e?s.lineHeight=c.height:s[e]=c[e]})),r?e.scrollHeight>parseInt(c.height)&&(s.overflowY="scroll"):s.overflow="hidden",u.textContent=e.value.substring(0,o),f&&(u.textContent=u.textContent.replace(/\\s/g," "));var d=document.createElement("span");d.textContent=e.value.substring(o)||".",u.appendChild(d);var p={top:d.offsetTop+parseInt(c.borderTopWidth),left:d.offsetLeft+parseInt(c.borderLeftWidth),height:parseInt(c.lineHeight)};return i?d.style.backgroundColor="#aaa":document.body.removeChild(u),p}void 0!==e.exports?e.exports=o:n&&(window.getCaretCoordinates=o)}()},473:function(e){"use strict";e.exports=function(){}},189:function(e){"use strict";if(void 0===t){var n=new Error("Cannot find module \'undefined\'");throw n.code="MODULE_NOT_FOUND",n}e.exports=t},639:function(t){"use strict";t.exports=e}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,exports:{}};return n[e](a,a.exports,o),a.exports}o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var a={};return function(){"use strict";o.r(a),o.d(a,{Await:function(){return ui},Branding:function(){return zr},Card:function(){return fi},Checkbox:function(){return ci},ErrorMessage:function(){return De},Footer:function(){return ii},FooterManager:function(){return ai},Header:function(){return ti},LoadingInfo:function(){return Ie},LoginForm:function(){return Ke},Message:function(){return Re},NavigationManager:function(){return Za},QueryForm:function(){return Va},QueryPanel:function(){return Ga},ServerVersionInfo:function(){return p},TopNavigationBar:function(){return ei},UserComponent:function(){return Mr},createTab:function(){return ya},makeQueryTemplate:function(){return ha},toggleQueryPanel:function(){return Ya}});var e,t=o(639),n=o.n(t);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(){i=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},l=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var a=t&&t.prototype instanceof m?t:m,i=Object.create(a.prototype),l=new N(r||[]);return o(i,"_invoke",{value:k(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var p={};function m(){}function h(){}function v(){}var g={};c(g,l,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(O([])));b&&b!==t&&n.call(b,l)&&(g=b);var w=v.prototype=m.prototype=Object.create(g);function x(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function a(o,i,l,u){var s=d(e[o],e,i);if("throw"!==s.type){var c=s.arg,f=c.value;return f&&"object"==r(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){a("next",e,l,u)}),(function(e){a("throw",e,l,u)})):t.resolve(f).then((function(e){c.value=e,l(c)}),(function(e){return a("throw",e,l,u)}))}u(s.arg)}var i;o(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return i=i?i.then(r,r):r()}})}function k(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=C(i,n);if(l){if(l===p)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=d(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function C(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a \'"+n+"\' method")),p;var o=d(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,p;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function O(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:T}}function T(){return{value:void 0,done:!0}}return h.prototype=v,o(w,"constructor",{value:v,configurable:!0}),o(v,"constructor",{value:h,configurable:!0}),h.displayName=c(v,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,c(e,s,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},x(E.prototype),c(E.prototype,u,(function(){return this})),e.AsyncIterator=E,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new E(f(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),c(w,s,"Generator"),c(w,l,(function(){return this})),c(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=O,N.prototype={constructor:N,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,p):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},e}function l(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){l(a,r,o,i,u,"next",e)}function u(e){l(a,r,o,i,u,"throw",e)}i(void 0)}))}}function s(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(void 0,a=function(e,t){if("object"!==r(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,"string");if("object"!==r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(o.key),"symbol"===r(a)?a:String(a)),o)}var a}var c=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r,o,a;return t=e,n=[{key:"getSessionInfo",value:(o=u(i().mark((function e(){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sleep(3e3);case 2:throw{message:"Please log in!"};case 3:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"sleep",value:function(e){return new Promise((function(t){return setTimeout(t,e)}))}},{key:"login",value:(a=u(i().mark((function e(t){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sleep(3e3);case 2:if("error"!=t){e.next=4;break}throw{message:"Login failed! Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!"};case 4:return e.abrupt("return",{realm:"MockRealm",username:t,roles:[],expires:6e4});case 5:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"logout",value:(r=u(i().mark((function e(){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sleep(3e3);case 2:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})}],n&&s(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}();try{e=o(189).InfoService}catch(t){console.log("Providing mockup implementation for InfoService"),e=c}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e){return"Could not retrieve Server Version Info: "+e.message}function p(){var r,o,a=(r=(0,t.useState)(null),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),i=a[0],l=a[1];return null===i&&(i=function(t){return(new e).getVersionInfo().then((function(e){return e.noBuild().toString()})).catch(d).then(t),"..."}(l)),n().createElement("div",{className:"caosdb-comp-server-version-info"},i)}var m=o(697),h=o.n(m),v=o(184),g=o.n(v);function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function b(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function w(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function x(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}function E(e,n,r){var o=(0,t.useRef)(void 0!==e),a=(0,t.useState)(n),i=a[0],l=a[1],u=void 0!==e,s=o.current;return o.current=u,!u&&s&&i!==n&&l(n),[u?e:i,(0,t.useCallback)((function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];r&&r.apply(void 0,[e].concat(n)),l(e)}),[r])]}function k(e,t){return Object.keys(t).reduce((function(n,r){var o,a=n,i=a[w(r)],l=a[r],u=b(a,[w(r),r].map(x)),s=t[r],c=E(l,i,e[s]),f=c[0],d=c[1];return y({},u,((o={})[r]=f,o[s]=d,o))}),e)}o(143);var C=function(e){var n=(0,t.useRef)(e);return(0,t.useEffect)((function(){n.current=e}),[e]),n};function S(e){var n=C(e);return(0,t.useCallback)((function(){return n.current&&n.current.apply(n,arguments)}),[n])}function A(){var e=(0,t.useRef)(!0),n=(0,t.useRef)((function(){return e.current}));return(0,t.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),n.current}function N(e){var n=(0,t.useRef)(null);return(0,t.useEffect)((function(){n.current=e})),n.current}var O=void 0!==o.g&&o.g.navigator&&"ReactNative"===o.g.navigator.product,T="undefined"!=typeof document||O?t.useLayoutEffect:t.useEffect;new WeakMap;var P=o(893);const L=["as","disabled"];function _({tagName:e,disabled:t,href:n,target:r,rel:o,role:a,onClick:i,tabIndex:l=0,type:u}){e||(e=null!=n||null!=r||null!=o?"a":"button");const s={tagName:e};if("button"===e)return[{type:u||"button",disabled:t},s];const c=r=>{(t||"a"===e&&function(e){return!e||"#"===e.trim()}(n))&&r.preventDefault(),t?r.stopPropagation():null==i||i(r)};return"a"===e&&(n||(n="#"),t&&(n=void 0)),[{role:null!=a?a:"button",disabled:void 0,tabIndex:t?void 0:l,href:n,target:"a"===e?r:void 0,"aria-disabled":t||void 0,rel:"a"===e?o:void 0,onClick:c,onKeyDown:e=>{" "===e.key&&(e.preventDefault(),c(e))}},s]}const j=t.forwardRef(((e,t)=>{let{as:n,disabled:r}=e,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,L);const[a,{tagName:i}]=_(Object.assign({tagName:n,disabled:r},o));return(0,P.jsx)(i,Object.assign({},o,a,{ref:t}))}));j.displayName="Button";var R=j;const D=["onKeyDown"],I=t.forwardRef(((e,t)=>{let{onKeyDown:n}=e,r=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,D);const[o]=_(Object.assign({tagName:"a"},r)),a=S((e=>{o.onKeyDown(e),null==n||n(e)}));return(i=r.href)&&"#"!==i.trim()&&"button"!==r.role?(0,P.jsx)("a",Object.assign({ref:t},r,{onKeyDown:n})):(0,P.jsx)("a",Object.assign({ref:t},r,o,{onKeyDown:a}));var i}));I.displayName="Anchor";var F=I;const M=t.createContext({prefixes:{},breakpoints:["xxl","xl","lg","md","sm","xs"],minBreakpoint:"xs"}),{Consumer:z,Provider:q}=M;function $(e,n){const{prefixes:r}=(0,t.useContext)(M);return e||r[n]||n}function B(e,t){return B=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},B(e,t)}var U=o(935),W=n().createContext(null),H="unmounted",V="exited",Q="entering",K="entered",Y="exiting",G=function(e){var t,r;function o(t,n){var r;r=e.call(this,t,n)||this;var o,a=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?a?(o=V,r.appearStatus=Q):o=K:o=t.unmountOnExit||t.mountOnEnter?H:V,r.state={status:o},r.nextCallback=null,r}r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,B(t,r),o.getDerivedStateFromProps=function(e,t){return e.in&&t.status===H?{status:V}:null};var a=o.prototype;return a.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},a.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Q&&n!==K&&(t=Q):n!==Q&&n!==K||(t=Y)}this.updateStatus(!1,t)},a.componentWillUnmount=function(){this.cancelNextCallback()},a.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},a.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===Q){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:U.findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===V&&this.setState({status:H})},a.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[U.findDOMNode(this),r],a=o[0],i=o[1],l=this.getTimeouts(),u=r?l.appear:l.enter;e||n?(this.props.onEnter(a,i),this.safeSetState({status:Q},(function(){t.props.onEntering(a,i),t.onTransitionEnd(u,(function(){t.safeSetState({status:K},(function(){t.props.onEntered(a,i)}))}))}))):this.safeSetState({status:K},(function(){t.props.onEntered(a)}))},a.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:U.findDOMNode(this);t?(this.props.onExit(r),this.safeSetState({status:Y},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:V},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:V},(function(){e.props.onExited(r)}))},a.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},a.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},a.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},a.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:U.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],a=o[0],i=o[1];this.props.addEndListener(a,i)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},a.render=function(){var e=this.state.status;if(e===H)return null;var t=this.props,r=t.children,o=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,b(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return n().createElement(W.Provider,{value:null},"function"==typeof r?r(e,o):n().cloneElement(n().Children.only(r),o))},o}(n().Component);function X(){}G.contextType=W,G.propTypes={},G.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:X,onEntering:X,onEntered:X,onExit:X,onExiting:X,onExited:X},G.UNMOUNTED=H,G.EXITED=V,G.ENTERING=Q,G.ENTERED=K,G.EXITING=Y;var J=G;function Z(e){return e&&e.ownerDocument||document}var ee=/([A-Z])/g,te=/^ms-/;function ne(e){return function(e){return e.replace(ee,"-$1").toLowerCase()}(e).replace(te,"-ms-")}var re=/^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i,oe=function(e,t){var n="",r="";if("string"==typeof t)return e.style.getPropertyValue(ne(t))||function(e,t){return function(e){var t=Z(e);return t&&t.defaultView||window}(e).getComputedStyle(e,t)}(e).getPropertyValue(ne(t));Object.keys(t).forEach((function(o){var a=t[o];a||0===a?function(e){return!(!e||!re.test(e))}(o)?r+=o+"("+a+") ":n+=ne(o)+": "+a+";":e.style.removeProperty(ne(o))})),r&&(n+="transform: "+r+";"),e.style.cssText+=";"+n},ae=!("undefined"==typeof window||!window.document||!window.document.createElement),ie=!1,le=!1;try{var ue={get passive(){return ie=!0},get once(){return le=ie=!0}};ae&&(window.addEventListener("test",ue,ue),window.removeEventListener("test",ue,!0))}catch(e){}var se=function(e,t,n,r){if(r&&"boolean"!=typeof r&&!le){var o=r.once,a=r.capture,i=n;!le&&o&&(i=n.__once||function e(r){this.removeEventListener(t,e,a),n.call(this,r)},n.__once=i),e.addEventListener(t,i,ie?r:a)}e.addEventListener(t,n,r)},ce=function(e,t,n,r){return se(e,t,n,r),function(){!function(e,t,n,r){var o=r&&"boolean"!=typeof r?r.capture:r;e.removeEventListener(t,n,o),n.__once&&e.removeEventListener(t,n.__once,o)}(e,t,n,r)}};function fe(e,t,n,r){var o,a;null==n&&(a=-1===(o=oe(e,"transitionDuration")||"").indexOf("ms")?1e3:1,n=parseFloat(o)*a||0);var i=function(e,t,n){void 0===n&&(n=5);var r=!1,o=setTimeout((function(){r||function(e,t,n,r){if(void 0===n&&(n=!1),void 0===r&&(r=!0),e){var o=document.createEvent("HTMLEvents");o.initEvent("transitionend",n,r),e.dispatchEvent(o)}}(e,0,!0)}),t+n),a=ce(e,"transitionend",(function(){r=!0}),{once:!0});return function(){clearTimeout(o),a()}}(e,n,r),l=ce(e,"transitionend",t);return function(){i(),l()}}function de(e,t){const n=oe(e,t)||"",r=-1===n.indexOf("ms")?1e3:1;return parseFloat(n)*r}function pe(e,t){const n=de(e,"transitionDuration"),r=de(e,"transitionDelay"),o=fe(e,(n=>{n.target===e&&(o(),t(n))}),n+r)}function me(e){e.offsetHeight}var he=function(e){return e&&"function"!=typeof e?function(t){e.current=t}:e},ve=function(e,n){return(0,t.useMemo)((function(){return function(e,t){var n=he(e),r=he(t);return function(e){n&&n(e),r&&r(e)}}(e,n)}),[e,n])},ge=n().forwardRef((({onEnter:e,onEntering:r,onEntered:o,onExit:a,onExiting:i,onExited:l,addEndListener:u,children:s,childRef:c,...f},d)=>{const p=(0,t.useRef)(null),m=ve(p,c),h=e=>{var t;m((t=e)&&"setState"in t?U.findDOMNode(t):null!=t?t:null)},v=e=>t=>{e&&p.current&&e(p.current,t)},g=(0,t.useCallback)(v(e),[e]),y=(0,t.useCallback)(v(r),[r]),b=(0,t.useCallback)(v(o),[o]),w=(0,t.useCallback)(v(a),[a]),x=(0,t.useCallback)(v(i),[i]),E=(0,t.useCallback)(v(l),[l]),k=(0,t.useCallback)(v(u),[u]);return(0,P.jsx)(J,{ref:d,...f,onEnter:g,onEntered:b,onEntering:y,onExit:w,onExited:E,onExiting:x,addEndListener:k,nodeRef:p,children:"function"==typeof s?(e,t)=>s(e,{...t,ref:h}):n().cloneElement(s,{ref:h})})}));const ye={[Q]:"show",[K]:"show"},be=t.forwardRef((({className:e,children:n,transitionClasses:r={},onEnter:o,...a},i)=>{const l={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,appear:!1,...a},u=(0,t.useCallback)(((e,t)=>{me(e),null==o||o(e,t)}),[o]);return(0,P.jsx)(ge,{ref:i,addEndListener:pe,...l,onEnter:u,childRef:n.ref,children:(o,a)=>t.cloneElement(n,{...a,className:g()("fade",e,n.props.className,ye[o],r[o])})})}));be.displayName="Fade";var we=be;const xe={"aria-label":h().string,onClick:h().func,variant:h().oneOf(["white"])},Ee=t.forwardRef((({className:e,variant:t,"aria-label":n="Close",...r},o)=>(0,P.jsx)("button",{ref:o,type:"button",className:g()("btn-close",t&&`btn-close-${t}`,e),"aria-label":n,...r})));Ee.displayName="CloseButton",Ee.propTypes=xe;var ke=Ee,Ce=e=>t.forwardRef(((t,n)=>(0,P.jsx)("div",{...t,ref:n,className:g()(t.className,e)}))),Se=/-(.)/g;const Ae=e=>{return e[0].toUpperCase()+(t=e,t.replace(Se,(function(e,t){return t.toUpperCase()}))).slice(1);var t};function Ne(e,{displayName:n=Ae(e),Component:r,defaultProps:o}={}){const a=t.forwardRef((({className:t,bsPrefix:n,as:a=r||"div",...i},l)=>{const u={...o,...i},s=$(n,e);return(0,P.jsx)(a,{ref:l,className:g()(t,s),...u})}));return a.displayName=n,a}const Oe=Ce("h4");Oe.displayName="DivStyledAsH4";const Te=Ne("alert-heading",{Component:Oe}),Pe=Ne("alert-link",{Component:F}),Le=t.forwardRef(((e,t)=>{const{bsPrefix:n,show:r=!0,closeLabel:o="Close alert",closeVariant:a,className:i,children:l,variant:u="primary",onClose:s,dismissible:c,transition:f=we,...d}=k(e,{show:"onClose"}),p=$(n,"alert"),m=S((e=>{s&&s(!1,e)})),h=!0===f?we:f,v=(0,P.jsxs)("div",{role:"alert",...h?void 0:d,ref:t,className:g()(i,p,u&&`${p}-${u}`,c&&`${p}-dismissible`),children:[c&&(0,P.jsx)(ke,{onClick:m,"aria-label":o,variant:a}),l]});return h?(0,P.jsx)(h,{unmountOnExit:!0,...d,ref:void 0,in:r,children:v}):r?v:null}));Le.displayName="Alert";var _e=Object.assign(Le,{Link:Pe,Heading:Te});function je(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Re=function(e){var r,o,a=e.heading,i=e.icon,l=e.type,u=e.dismissible,s=e.children,c=e.className,f="primary",d=void 0===i||i,p="bi bi-exclamation-circle",m=(r=(0,t.useState)(!0),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return je(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?je(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=m[0],v=m[1];return h?("error"===l?(f="danger",p="bi bi-exclamation-triangle-fill"):"warning"===l?(f="warning",p="bi bi-exclamation-triangle"):"success"===l&&(f="success",p="bi bi-check-circle"),i=d&&(i||n().createElement("i",{className:"".concat(p," me-2 m-0")})),n().createElement(_e,{className:c,variant:f,onClose:function(){return v(!1)},dismissible:u},a&&n().createElement(_e.Heading,null,i,a),n().createElement("div",{className:"d-flex align-items-center m-0"},!a&&i,n().createElement("div",null,s)))):n().createElement(n().Fragment,null)};Re.propTypes={heading:h().node,icon:h().node,type:h().oneOf(["error","warning","success","info"]),dismissible:h().bool,children:h().oneOfType([h().arrayOf(h().node),h().node]),className:h().string};var De=function(e){var t,r=e.heading,o=e.error;return console.warn(o),r=r||"Error",t="string"==typeof o||o instanceof String?o:o.message&&("string"==typeof o.message||o.message instanceof String)?o.message:JSON.stringify(o),n().createElement(Re,{className:"mt-3 mx-3",heading:r,type:"error",dismissible:!0},t)};De.propTypes={heading:h().node,error:h().oneOfType([h().string,h().instanceOf(Error)])};var Ie=function(e){var t=e.className,r=e.size,o=e.color,a=e.title,i="spinner-border";return t&&(i+=" "+t),"sm"===r&&(i+=" spinner-border-sm"),"primary"===o?i+=" text-primary":"secondary"===o&&(i+=" text-secondary"),n().createElement("span",{title:a,className:i,role:"status","aria-hidden":"true"})};function Fe(e){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(e)}function Me(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ze(){ze=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,o){var a=t&&t.prototype instanceof d?t:d,i=Object.create(a.prototype),l=new S(o||[]);return r(i,"_invoke",{value:x(e,n,l)}),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var f={};function d(){}function p(){}function m(){}var h={};u(h,a,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(A([])));g&&g!==t&&n.call(g,a)&&(h=g);var y=m.prototype=d.prototype=Object.create(h);function b(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(r,a,i,l){var u=c(e[r],e,a);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==Fe(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){o("next",e,i,l)}),(function(e){o("throw",e,i,l)})):t.resolve(f).then((function(e){s.value=e,i(s)}),(function(e){return o("throw",e,i,l)}))}l(u.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){o(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=E(i,n);if(l){if(l===f)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===f)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a \'"+n+"\' method")),f;var o=c(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,f;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function A(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:N}}function N(){return{value:void 0,done:!0}}return p.prototype=m,r(y,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:p,configurable:!0}),p.displayName=u(m,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,u(e,l,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},b(w.prototype),u(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new w(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(y),u(y,l,"Generator"),u(y,a,(function(){return this})),u(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=A,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function qe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Fe(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==Fe(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===Fe(o)?o:String(o)),r)}var o}function $e(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function Be(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){$e(a,r,o,i,l,"next",e)}function l(e){$e(a,r,o,i,l,"throw",e)}i(void 0)}))}}function Ue(){return(Ue=Be(ze().mark((function t(n,r){var o;return ze().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=new e,t.next=3,o.login(n,r);case 3:return t.abrupt("return",t.sent);case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function We(e,t,n){return function(r){r.preventDefault(),e();var o=r.target.username.value,a=r.target.password.value;r.target.submit.disabled=!0;var i=function(e,t){return Ue.apply(this,arguments)}(o,a).catch((function(e){throw r.target.submit.disabled=!1,e}));t&&(i=i.then(t)),n&&i.catch(n)}}Ie.propTypes={className:h().string,size:h().oneOf(["sm"]),color:h().oneOf(["primary","secondary"]),title:h().string},Ie.defaultProps={title:"Loading..."};var He=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.cb=t,n=Number.isInteger(n)?n:1e4,this.timeout=setTimeout(this.cb,n)}var t,n;return t=e,(n=[{key:"reset",value:function(e){this.pause(),this.cb&&(e=Number.isInteger(e)?e:2e4,this.timeout=setTimeout(this.cb,e))}},{key:"pause",value:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)}},{key:"stop",value:function(){this.pause(),this.cb=void 0}}])&&qe(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Ve=function(e){var t=e.then,r=e.onError,o=e.showMessages,a=e.showLoadingInfo,i=new He(o),l=function(){return i.pause()},u=function(){return i.reset()},s=function(){var e=Be(ze().mark((function e(t){return ze().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o(),!r){e.next=5;break}return e.next=4,r(t);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return n().createElement("form",{className:"m-0",onSubmit:We(a,t,s)},n().createElement("div",{className:"row g-3"},n().createElement("div",{className:"col-sm-5"},n().createElement("input",{onChange:l,onBlur:u,name:"username",className:"form-control",placeholder:"Username","aria-label":"Username"})),n().createElement("div",{className:"col-sm-5"},n().createElement("input",{onChange:l,onBlur:u,name:"password",className:"form-control",type:"password",placeholder:"Password","aria-label":"Password"})),n().createElement("div",{className:"col-sm-1"},n().createElement("button",{onClick:function(){return i.stop()},className:"btn btn-secondary navbar-btn d-inline-block",name:"submit",type:"submit"},"Login"))))};Ve.propTypes={then:h().func.isRequired,onError:h().func,showMessages:h().func.isRequired,showLoadingInfo:h().func.isRequired};var Qe=function(e){var t=e.message,r=e.messageType,o=e.showInputs;return t=t?n().createElement("div",{className:"col-sm-auto"},n().createElement(Re,{type:r},t)):void 0,n().createElement("div",{className:"align-items-center row g-3"},t,n().createElement("div",{className:"col-sm-1"},n().createElement("button",{className:"btn btn-secondary navbar-btn d-inline-block",name:"show",type:"button",onClick:o},"Login")))};Qe.propTypes={message:h().node,messageType:h().oneOf(["error","warning","success","info"]),showInputs:h().func.isRequired};var Ke=function(e){var r,o,a=e.then,i=e.onError,l=e.message,u=e.messageType,s=(r=(0,t.useState)("messages"),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return Me(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Me(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=s[0],f=s[1];return"inputs"===c?n().createElement(Ve,{then:a,onError:i,showMessages:function(){return f("messages")},showLoadingInfo:function(){return f("loading")}}):"loading"===c?n().createElement(Ie,{size:"sm"}):n().createElement(Qe,{message:l,messageType:u,showInputs:function(){return f("inputs")}})};Ke.propTypes={then:h().func.isRequired,onError:h().func,message:h().node,messageType:h().oneOf(["error","warning","success","info"])};var Ye=Function.prototype.bind.call(Function.prototype.call,[].slice);function Ge(e,t){return Ye(e.querySelectorAll(t))}function Xe(){return(0,t.useReducer)((function(e){return!e}),!1)[1]}var Je=t.createContext(null),Ze=Object.prototype.hasOwnProperty;function et(e,t,n){for(n of e.keys())if(tt(n,t))return n}function tt(e,t){var n,r,o;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&tt(e[r],t[r]););return-1===r}if(n===Set){if(e.size!==t.size)return!1;for(r of e){if((o=r)&&"object"==typeof o&&!(o=et(t,o)))return!1;if(!t.has(o))return!1}return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e){if((o=r[0])&&"object"==typeof o&&!(o=et(t,o)))return!1;if(!tt(r[1],t.get(o)))return!1}return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!n||"object"==typeof e){for(n in r=0,e){if(Ze.call(e,n)&&++r&&!Ze.call(t,n))return!1;if(!(n in t)||!tt(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!=e&&t!=t}function nt(e){return e.split("-")[0]}function rt(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ot(e){return e instanceof rt(e).Element||e instanceof Element}function at(e){return e instanceof rt(e).HTMLElement||e instanceof HTMLElement}function it(e){return"undefined"!=typeof ShadowRoot&&(e instanceof rt(e).ShadowRoot||e instanceof ShadowRoot)}var lt=Math.max,ut=Math.min,st=Math.round;function ct(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function ft(){return!/^((?!chrome|android).)*safari/i.test(ct())}function dt(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),o=1,a=1;t&&at(e)&&(o=e.offsetWidth>0&&st(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&st(r.height)/e.offsetHeight||1);var i=(ot(e)?rt(e):window).visualViewport,l=!ft()&&n,u=(r.left+(l&&i?i.offsetLeft:0))/o,s=(r.top+(l&&i?i.offsetTop:0))/a,c=r.width/o,f=r.height/a;return{width:c,height:f,top:s,right:u+c,bottom:s+f,left:u,x:u,y:s}}function pt(e){var t=dt(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function mt(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&it(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ht(e){return e?(e.nodeName||"").toLowerCase():null}function vt(e){return rt(e).getComputedStyle(e)}function gt(e){return["table","td","th"].indexOf(ht(e))>=0}function yt(e){return((ot(e)?e.ownerDocument:e.document)||window.document).documentElement}function bt(e){return"html"===ht(e)?e:e.assignedSlot||e.parentNode||(it(e)?e.host:null)||yt(e)}function wt(e){return at(e)&&"fixed"!==vt(e).position?e.offsetParent:null}function xt(e){for(var t=rt(e),n=wt(e);n&>(n)&&"static"===vt(n).position;)n=wt(n);return n&&("html"===ht(n)||"body"===ht(n)&&"static"===vt(n).position)?t:n||function(e){var t=/firefox/i.test(ct());if(/Trident/i.test(ct())&&at(e)&&"fixed"===vt(e).position)return null;var n=bt(e);for(it(n)&&(n=n.host);at(n)&&["html","body"].indexOf(ht(n))<0;){var r=vt(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}function Et(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function kt(e,t,n){return lt(e,ut(t,n))}function Ct(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function St(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}var At="top",Nt="bottom",Ot="right",Tt="left",Pt="auto",Lt=[At,Nt,Ot,Tt],_t="start",jt="end",Rt="viewport",Dt="popper",It=Lt.reduce((function(e,t){return e.concat([t+"-"+_t,t+"-"+jt])}),[]),Ft=[].concat(Lt,[Pt]).reduce((function(e,t){return e.concat([t,t+"-"+_t,t+"-"+jt])}),[]),Mt=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"],zt={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,a=n.elements.arrow,i=n.modifiersData.popperOffsets,l=nt(n.placement),u=Et(l),s=[Tt,Ot].indexOf(l)>=0?"height":"width";if(a&&i){var c=function(e,t){return Ct("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:St(e,Lt))}(o.padding,n),f=pt(a),d="y"===u?At:Tt,p="y"===u?Nt:Ot,m=n.rects.reference[s]+n.rects.reference[u]-i[u]-n.rects.popper[s],h=i[u]-n.rects.reference[u],v=xt(a),g=v?"y"===u?v.clientHeight||0:v.clientWidth||0:0,y=m/2-h/2,b=c[d],w=g-f[s]-c[p],x=g/2-f[s]/2+y,E=kt(b,x,w),k=u;n.modifiersData[r]=((t={})[k]=E,t.centerOffset=E-x,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&mt(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function qt(e){return e.split("-")[1]}var $t={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Bt(e){var t,n=e.popper,r=e.popperRect,o=e.placement,a=e.variation,i=e.offsets,l=e.position,u=e.gpuAcceleration,s=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=i.x,p=void 0===d?0:d,m=i.y,h=void 0===m?0:m,v="function"==typeof c?c({x:p,y:h}):{x:p,y:h};p=v.x,h=v.y;var g=i.hasOwnProperty("x"),y=i.hasOwnProperty("y"),b=Tt,w=At,x=window;if(s){var E=xt(n),k="clientHeight",C="clientWidth";E===rt(n)&&"static"!==vt(E=yt(n)).position&&"absolute"===l&&(k="scrollHeight",C="scrollWidth"),(o===At||(o===Tt||o===Ot)&&a===jt)&&(w=Nt,h-=(f&&E===x&&x.visualViewport?x.visualViewport.height:E[k])-r.height,h*=u?1:-1),o!==Tt&&(o!==At&&o!==Nt||a!==jt)||(b=Ot,p-=(f&&E===x&&x.visualViewport?x.visualViewport.width:E[C])-r.width,p*=u?1:-1)}var S,A=Object.assign({position:l},s&&$t),N=!0===c?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:st(n*o)/o||0,y:st(r*o)/o||0}}({x:p,y:h},rt(n)):{x:p,y:h};return p=N.x,h=N.y,u?Object.assign({},A,((S={})[w]=y?"0":"",S[b]=g?"0":"",S.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",S)):Object.assign({},A,((t={})[w]=y?h+"px":"",t[b]=g?p+"px":"",t.transform="",t))}var Ut={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,a=n.adaptive,i=void 0===a||a,l=n.roundOffsets,u=void 0===l||l,s={placement:nt(t.placement),variation:qt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Bt(Object.assign({},s,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Bt(Object.assign({},s,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Wt={passive:!0},Ht={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,a=void 0===o||o,i=r.resize,l=void 0===i||i,u=rt(t.elements.popper),s=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&s.forEach((function(e){e.addEventListener("scroll",n.update,Wt)})),l&&u.addEventListener("resize",n.update,Wt),function(){a&&s.forEach((function(e){e.removeEventListener("scroll",n.update,Wt)})),l&&u.removeEventListener("resize",n.update,Wt)}},data:{}},Vt={left:"right",right:"left",bottom:"top",top:"bottom"};function Qt(e){return e.replace(/left|right|bottom|top/g,(function(e){return Vt[e]}))}var Kt={start:"end",end:"start"};function Yt(e){return e.replace(/start|end/g,(function(e){return Kt[e]}))}function Gt(e){var t=rt(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Xt(e){return dt(yt(e)).left+Gt(e).scrollLeft}function Jt(e){var t=vt(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function Zt(e){return["html","body","#document"].indexOf(ht(e))>=0?e.ownerDocument.body:at(e)&&Jt(e)?e:Zt(bt(e))}function en(e,t){var n;void 0===t&&(t=[]);var r=Zt(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),a=rt(r),i=o?[a].concat(a.visualViewport||[],Jt(r)?r:[]):r,l=t.concat(i);return o?l:l.concat(en(bt(i)))}function tn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function nn(e,t,n){return t===Rt?tn(function(e,t){var n=rt(e),r=yt(e),o=n.visualViewport,a=r.clientWidth,i=r.clientHeight,l=0,u=0;if(o){a=o.width,i=o.height;var s=ft();(s||!s&&"fixed"===t)&&(l=o.offsetLeft,u=o.offsetTop)}return{width:a,height:i,x:l+Xt(e),y:u}}(e,n)):ot(t)?function(e,t){var n=dt(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):tn(function(e){var t,n=yt(e),r=Gt(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=lt(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),i=lt(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),l=-r.scrollLeft+Xt(e),u=-r.scrollTop;return"rtl"===vt(o||n).direction&&(l+=lt(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:i,x:l,y:u}}(yt(e)))}function rn(e){var t,n=e.reference,r=e.element,o=e.placement,a=o?nt(o):null,i=o?qt(o):null,l=n.x+n.width/2-r.width/2,u=n.y+n.height/2-r.height/2;switch(a){case At:t={x:l,y:n.y-r.height};break;case Nt:t={x:l,y:n.y+n.height};break;case Ot:t={x:n.x+n.width,y:u};break;case Tt:t={x:n.x-r.width,y:u};break;default:t={x:n.x,y:n.y}}var s=a?Et(a):null;if(null!=s){var c="y"===s?"height":"width";switch(i){case _t:t[s]=t[s]-(n[c]/2-r[c]/2);break;case jt:t[s]=t[s]+(n[c]/2-r[c]/2)}}return t}function on(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,a=n.strategy,i=void 0===a?e.strategy:a,l=n.boundary,u=void 0===l?"clippingParents":l,s=n.rootBoundary,c=void 0===s?Rt:s,f=n.elementContext,d=void 0===f?Dt:f,p=n.altBoundary,m=void 0!==p&&p,h=n.padding,v=void 0===h?0:h,g=Ct("number"!=typeof v?v:St(v,Lt)),y=d===Dt?"reference":Dt,b=e.rects.popper,w=e.elements[m?y:d],x=function(e,t,n,r){var o="clippingParents"===t?function(e){var t=en(bt(e)),n=["absolute","fixed"].indexOf(vt(e).position)>=0&&at(e)?xt(e):e;return ot(n)?t.filter((function(e){return ot(e)&&mt(e,n)&&"body"!==ht(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),i=a[0],l=a.reduce((function(t,n){var o=nn(e,n,r);return t.top=lt(o.top,t.top),t.right=ut(o.right,t.right),t.bottom=ut(o.bottom,t.bottom),t.left=lt(o.left,t.left),t}),nn(e,i,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}(ot(w)?w:w.contextElement||yt(e.elements.popper),u,c,i),E=dt(e.elements.reference),k=rn({reference:E,element:b,strategy:"absolute",placement:o}),C=tn(Object.assign({},b,k)),S=d===Dt?C:E,A={top:x.top-S.top+g.top,bottom:S.bottom-x.bottom+g.bottom,left:x.left-S.left+g.left,right:S.right-x.right+g.right},N=e.modifiersData.offset;if(d===Dt&&N){var O=N[o];Object.keys(A).forEach((function(e){var t=[Ot,Nt].indexOf(e)>=0?1:-1,n=[At,Nt].indexOf(e)>=0?"y":"x";A[e]+=O[n]*t}))}return A}var an={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,a=void 0===o||o,i=n.altAxis,l=void 0===i||i,u=n.fallbackPlacements,s=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,p=n.flipVariations,m=void 0===p||p,h=n.allowedAutoPlacements,v=t.options.placement,g=nt(v),y=u||(g!==v&&m?function(e){if(nt(e)===Pt)return[];var t=Qt(e);return[Yt(e),t,Yt(t)]}(v):[Qt(v)]),b=[v].concat(y).reduce((function(e,n){return e.concat(nt(n)===Pt?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,a=n.rootBoundary,i=n.padding,l=n.flipVariations,u=n.allowedAutoPlacements,s=void 0===u?Ft:u,c=qt(r),f=c?l?It:It.filter((function(e){return qt(e)===c})):Lt,d=f.filter((function(e){return s.indexOf(e)>=0}));0===d.length&&(d=f);var p=d.reduce((function(t,n){return t[n]=on(e,{placement:n,boundary:o,rootBoundary:a,padding:i})[nt(n)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}(t,{placement:n,boundary:c,rootBoundary:f,padding:s,flipVariations:m,allowedAutoPlacements:h}):n)}),[]),w=t.rects.reference,x=t.rects.popper,E=new Map,k=!0,C=b[0],S=0;S<b.length;S++){var A=b[S],N=nt(A),O=qt(A)===_t,T=[At,Nt].indexOf(N)>=0,P=T?"width":"height",L=on(t,{placement:A,boundary:c,rootBoundary:f,altBoundary:d,padding:s}),_=T?O?Ot:Tt:O?Nt:At;w[P]>x[P]&&(_=Qt(_));var j=Qt(_),R=[];if(a&&R.push(L[N]<=0),l&&R.push(L[_]<=0,L[j]<=0),R.every((function(e){return e}))){C=A,k=!1;break}E.set(A,R)}if(k)for(var D=function(e){var t=b.find((function(t){var n=E.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},I=m?3:1;I>0&&"break"!==D(I);I--);t.placement!==C&&(t.modifiersData[r]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ln(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function un(e){return[At,Ot,Nt,Tt].some((function(t){return e[t]>=0}))}var sn={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,a=void 0===o?[0,0]:o,i=Ft.reduce((function(e,n){return e[n]=function(e,t,n){var r=nt(e),o=[Tt,At].indexOf(r)>=0?-1:1,a="function"==typeof n?n(Object.assign({},t,{placement:e})):n,i=a[0],l=a[1];return i=i||0,l=(l||0)*o,[Tt,Ot].indexOf(r)>=0?{x:l,y:i}:{x:i,y:l}}(n,t.rects,a),e}),{}),l=i[t.placement],u=l.x,s=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=s),t.modifiersData[r]=i}},cn={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,a=void 0===o||o,i=n.altAxis,l=void 0!==i&&i,u=n.boundary,s=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,p=void 0===d||d,m=n.tetherOffset,h=void 0===m?0:m,v=on(t,{boundary:u,rootBoundary:s,padding:f,altBoundary:c}),g=nt(t.placement),y=qt(t.placement),b=!y,w=Et(g),x="x"===w?"y":"x",E=t.modifiersData.popperOffsets,k=t.rects.reference,C=t.rects.popper,S="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,A="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),N=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(E){if(a){var T,P="y"===w?At:Tt,L="y"===w?Nt:Ot,_="y"===w?"height":"width",j=E[w],R=j+v[P],D=j-v[L],I=p?-C[_]/2:0,F=y===_t?k[_]:C[_],M=y===_t?-C[_]:-k[_],z=t.elements.arrow,q=p&&z?pt(z):{width:0,height:0},$=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},B=$[P],U=$[L],W=kt(0,k[_],q[_]),H=b?k[_]/2-I-W-B-A.mainAxis:F-W-B-A.mainAxis,V=b?-k[_]/2+I+W+U+A.mainAxis:M+W+U+A.mainAxis,Q=t.elements.arrow&&xt(t.elements.arrow),K=Q?"y"===w?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(T=null==N?void 0:N[w])?T:0,G=j+V-Y,X=kt(p?ut(R,j+H-Y-K):R,j,p?lt(D,G):D);E[w]=X,O[w]=X-j}if(l){var J,Z="x"===w?At:Tt,ee="x"===w?Nt:Ot,te=E[x],ne="y"===x?"height":"width",re=te+v[Z],oe=te-v[ee],ae=-1!==[At,Tt].indexOf(g),ie=null!=(J=null==N?void 0:N[x])?J:0,le=ae?re:te-k[ne]-C[ne]-ie+A.altAxis,ue=ae?te+k[ne]+C[ne]-ie-A.altAxis:oe,se=p&&ae?function(e,t,n){var r=kt(e,t,n);return r>n?n:r}(le,te,ue):kt(p?le:re,te,p?ue:oe);E[x]=se,O[x]=se-te}t.modifiersData[r]=O}},requiresIfExists:["offset"]};function fn(e,t,n){void 0===n&&(n=!1);var r,o,a=at(t),i=at(t)&&function(e){var t=e.getBoundingClientRect(),n=st(t.width)/e.offsetWidth||1,r=st(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),l=yt(t),u=dt(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==ht(t)||Jt(l))&&(s=(r=t)!==rt(r)&&at(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:Gt(r)),at(t)?((c=dt(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):l&&(c.x=Xt(l))),{x:u.left+s.scrollLeft-c.x,y:u.top+s.scrollTop-c.y,width:u.width,height:u.height}}function dn(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var pn={placement:"bottom",modifiers:[],strategy:"absolute"};function mn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some((function(e){return!(e&&"function"==typeof e.getBoundingClientRect)}))}const hn=function(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,o=t.defaultOptions,a=void 0===o?pn:o;return function(e,t,n){void 0===n&&(n=a);var o,i,l={placement:"bottom",orderedModifiers:[],options:Object.assign({},pn,a),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},u=[],s=!1,c={state:l,setOptions:function(n){var o="function"==typeof n?n(l.options):n;f(),l.options=Object.assign({},a,l.options,o),l.scrollParents={reference:ot(e)?en(e):e.contextElement?en(e.contextElement):[],popper:en(t)};var i,s,d=function(e){var t=dn(e);return Mt.reduce((function(e,n){return e.concat(t.filter((function(e){return e.phase===n})))}),[])}((i=[].concat(r,l.options.modifiers),s=i.reduce((function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e}),{}),Object.keys(s).map((function(e){return s[e]}))));return l.orderedModifiers=d.filter((function(e){return e.enabled})),l.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"==typeof o){var a=o({state:l,name:t,instance:c,options:r});u.push(a||function(){})}})),c.update()},forceUpdate:function(){if(!s){var e=l.elements,t=e.reference,n=e.popper;if(mn(t,n)){l.rects={reference:fn(t,xt(n),"fixed"===l.options.strategy),popper:pt(n)},l.reset=!1,l.placement=l.options.placement,l.orderedModifiers.forEach((function(e){return l.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<l.orderedModifiers.length;r++)if(!0!==l.reset){var o=l.orderedModifiers[r],a=o.fn,i=o.options,u=void 0===i?{}:i,f=o.name;"function"==typeof a&&(l=a({state:l,options:u,name:f,instance:c})||l)}else l.reset=!1,r=-1}}},update:(o=function(){return new Promise((function(e){c.forceUpdate(),e(l)}))},function(){return i||(i=new Promise((function(e){Promise.resolve().then((function(){i=void 0,e(o())}))}))),i}),destroy:function(){f(),s=!0}};if(!mn(e,t))return c;function f(){u.forEach((function(e){return e()})),u=[]}return c.setOptions(n).then((function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)})),c}}({defaultModifiers:[{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,a=t.modifiersData.preventOverflow,i=on(t,{elementContext:"reference"}),l=on(t,{altBoundary:!0}),u=ln(i,r),s=ln(l,o,a),c=un(u),f=un(s);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:s,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=rn({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},Ut,Ht,sn,an,cn,zt]}),vn=["enabled","placement","strategy","modifiers"],gn={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},yn={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:n}=e.elements;if("removeAttribute"in t){const e=(t.getAttribute("aria-describedby")||"").split(",").filter((e=>e.trim()!==n.id));e.length?t.setAttribute("aria-describedby",e.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:n,reference:r}=e.elements,o=null==(t=n.getAttribute("role"))?void 0:t.toLowerCase();if(n.id&&"tooltip"===o&&"setAttribute"in r){const e=r.getAttribute("aria-describedby");if(e&&-1!==e.split(",").indexOf(n.id))return;r.setAttribute("aria-describedby",e?`${e},${n.id}`:n.id)}}},bn=[];var wn=function(e,n,r={}){let{enabled:o=!0,placement:a="bottom",strategy:i="absolute",modifiers:l=bn}=r,u=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(r,vn);const s=(0,t.useRef)(l),c=(0,t.useRef)(),f=(0,t.useCallback)((()=>{var e;null==(e=c.current)||e.update()}),[]),d=(0,t.useCallback)((()=>{var e;null==(e=c.current)||e.forceUpdate()}),[]),[p,m]=(g=(0,t.useState)({placement:a,update:f,forceUpdate:d,attributes:{},styles:{popper:{},arrow:{}}}),y=A(),[g[0],(0,t.useCallback)((function(e){if(y())return g[1](e)}),[y,g[1]])]),h=(0,t.useMemo)((()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:e})=>{const t={},n={};Object.keys(e.elements).forEach((r=>{t[r]=e.styles[r],n[r]=e.attributes[r]})),m({state:e,styles:t,attributes:n,update:f,forceUpdate:d,placement:e.placement})}})),[f,d,m]),v=(0,t.useMemo)((()=>(tt(s.current,l)||(s.current=l),s.current)),[l]);var g,y;return(0,t.useEffect)((()=>{c.current&&o&&c.current.setOptions({placement:a,strategy:i,modifiers:[...v,h,gn]})}),[i,a,h,o,v]),(0,t.useEffect)((()=>{if(o&&null!=e&&null!=n)return c.current=hn(e,n,Object.assign({},u,{placement:a,strategy:i,modifiers:[...v,yn,h]})),()=>{null!=c.current&&(c.current.destroy(),c.current=void 0,m((e=>Object.assign({},e,{attributes:{},styles:{popper:{}}}))))}}),[o,e,n]),p};function xn(e,t){return e.contains?e.contains(t):e.compareDocumentPosition?e===t||!!(16&e.compareDocumentPosition(t)):void 0}var En=o(473),kn=o.n(En);const Cn=()=>{},Sn=e=>e&&("current"in e?e.current:e),An={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};var Nn=function(e,n=Cn,{disabled:r,clickTrigger:o="click"}={}){const a=(0,t.useRef)(!1),i=(0,t.useRef)(!1),l=(0,t.useCallback)((t=>{const n=Sn(e);var r;kn()(!!n,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),a.current=!n||!!((r=t).metaKey||r.altKey||r.ctrlKey||r.shiftKey)||!function(e){return 0===e.button}(t)||!!xn(n,t.target)||i.current,i.current=!1}),[e]),u=S((t=>{const n=Sn(e);n&&xn(n,t.target)&&(i.current=!0)})),s=S((e=>{a.current||n(e)}));(0,t.useEffect)((()=>{if(r||null==e)return;const t=Z(Sn(e));let n=(t.defaultView||window).event,a=null;An[o]&&(a=ce(t,An[o],u,!0));const i=ce(t,o,l,!0),c=ce(t,o,(e=>{e!==n?s(e):n=void 0}));let f=[];return"ontouchstart"in t.documentElement&&(f=[].slice.call(t.body.children).map((e=>ce(e,"mousemove",Cn)))),()=>{null==a||a(),i(),c(),f.forEach((e=>e()))}}),[e,r,o,l,u,s])};function On(e={}){return Array.isArray(e)?e:Object.keys(e).map((t=>(e[t].name=t,e[t])))}const Tn=["children"],Pn=()=>{};function Ln(e={}){const n=(0,t.useContext)(Je),[r,o]=(0,t.useState)(null),a=(0,t.useRef)(!1),{flip:i,offset:l,rootCloseEvent:u,fixed:s=!1,placement:c,popperConfig:f={},enableEventListeners:d=!0,usePopper:p=!!n}=e,m=null==(null==n?void 0:n.show)?!!e.show:n.show;m&&!a.current&&(a.current=!0);const{placement:h,setMenu:v,menuElement:g,toggleElement:y}=n||{},b=wn(y,g,function({enabled:e,enableEvents:t,placement:n,flip:r,offset:o,fixed:a,containerPadding:i,arrowElement:l,popperConfig:u={}}){var s,c,f,d,p;const m=function(e){const t={};return Array.isArray(e)?(null==e||e.forEach((e=>{t[e.name]=e})),t):e||t}(u.modifiers);return Object.assign({},u,{placement:n,enabled:e,strategy:a?"fixed":u.strategy,modifiers:On(Object.assign({},m,{eventListeners:{enabled:t,options:null==(s=m.eventListeners)?void 0:s.options},preventOverflow:Object.assign({},m.preventOverflow,{options:i?Object.assign({padding:i},null==(c=m.preventOverflow)?void 0:c.options):null==(f=m.preventOverflow)?void 0:f.options}),offset:{options:Object.assign({offset:o},null==(d=m.offset)?void 0:d.options)},arrow:Object.assign({},m.arrow,{enabled:!!l,options:Object.assign({},null==(p=m.arrow)?void 0:p.options,{element:l})}),flip:Object.assign({enabled:!!r},m.flip)}))})}({placement:c||h||"bottom-start",enabled:p,enableEvents:null==d?m:d,offset:l,flip:i,fixed:s,arrowElement:r,popperConfig:f})),w=Object.assign({ref:v||Pn,"aria-labelledby":null==y?void 0:y.id},b.attributes.popper,{style:b.styles.popper}),x={show:m,placement:h,hasShown:a.current,toggle:null==n?void 0:n.toggle,popper:p?b:null,arrowProps:p?Object.assign({ref:o},b.attributes.arrow,{style:b.styles.arrow}):{}};return Nn(g,(e=>{null==n||n.toggle(!1,e)}),{clickTrigger:u,disabled:!m}),[w,x]}function _n(e){let{children:t}=e,n=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Tn);const[r,o]=Ln(n);return(0,P.jsx)(P.Fragment,{children:t(r,o)})}_n.displayName="DropdownMenu",_n.defaultProps={usePopper:!0};var jn=_n;const Rn={prefix:String(Math.round(1e10*Math.random())),current:0,isSSR:!1},Dn=t.createContext(Rn);let In=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),Fn=new WeakMap;const Mn=e=>{var t;return"menu"===(null==(t=e.getAttribute("role"))?void 0:t.toLowerCase())},zn=()=>{};function qn(){const e=function(e){let n=(0,t.useContext)(Dn);n!==Rn||In||console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let r=function(e=!1){let n=(0,t.useContext)(Dn),r=(0,t.useRef)(null);if(null===r.current&&!e){var o,a;let e=null===(o=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)||void 0===o||null===(a=o.ReactCurrentOwner)||void 0===a?void 0:a.current;if(e){let t=Fn.get(e);null==t?Fn.set(e,{id:n.current,state:e.memoizedState}):e.memoizedState!==t.state&&(n.current=t.id,Fn.delete(e))}r.current=++n.current}return r.current}(!1);return`react-aria${n.prefix}-${r}`}(),{show:n=!1,toggle:r=zn,setToggle:o,menuElement:a}=(0,t.useContext)(Je)||{},i=(0,t.useCallback)((e=>{r(!n,e)}),[n,r]),l={id:e,ref:o||zn,onClick:i,"aria-expanded":!!n};return a&&Mn(a)&&(l["aria-haspopup"]=!0),[l,{show:n,toggle:r}]}function $n({children:e}){const[t,n]=qn();return(0,P.jsx)(P.Fragment,{children:e(t,n)})}$n.displayName="DropdownToggle";var Bn=$n;const Un=(e,t=null)=>null!=e?String(e):t||null;var Wn=t.createContext(null);const Hn=t.createContext(null);Hn.displayName="NavContext";var Vn=Hn;const Qn="data-rr-ui-";function Kn(e){return`${Qn}${e}`}const Yn=["eventKey","disabled","onClick","active","as"];function Gn({key:e,href:n,active:r,disabled:o,onClick:a}){const i=(0,t.useContext)(Wn),l=(0,t.useContext)(Vn),{activeKey:u}=l||{},s=Un(e,n),c=null==r&&null!=e?Un(u)===s:r;return[{onClick:S((e=>{o||(null==a||a(e),i&&!e.isPropagationStopped()&&i(s,e))})),"aria-disabled":o||void 0,"aria-selected":c,[Kn("dropdown-item")]:""},{isActive:c}]}const Xn=t.forwardRef(((e,t)=>{let{eventKey:n,disabled:r,onClick:o,active:a,as:i=R}=e,l=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Yn);const[u]=Gn({key:n,href:l.href,disabled:r,onClick:o,active:a});return(0,P.jsx)(i,Object.assign({},l,{ref:t},u))}));Xn.displayName="DropdownItem";var Jn=Xn;const Zn=(0,t.createContext)(ae?window:void 0);function er(){return(0,t.useContext)(Zn)}function tr(){const e=Xe(),n=(0,t.useRef)(null),r=(0,t.useCallback)((t=>{n.current=t,e()}),[e]);return[n,r]}function nr({defaultShow:e,show:n,onSelect:r,onToggle:o,itemSelector:a=`* [${Kn("dropdown-item")}]`,focusFirstItemOnShow:i,placement:l="bottom-start",children:u}){const s=er(),[c,f]=E(n,e,o),[d,p]=tr(),m=d.current,[h,v]=tr(),g=h.current,y=N(c),b=(0,t.useRef)(null),w=(0,t.useRef)(!1),x=(0,t.useContext)(Wn),k=(0,t.useCallback)(((e,t,n=(null==t?void 0:t.type))=>{f(e,{originalEvent:t,source:n})}),[f]),C=S(((e,t)=>{null==r||r(e,t),k(!1,t,"select"),t.isPropagationStopped()||null==x||x(e,t)})),A=(0,t.useMemo)((()=>({toggle:k,placement:l,show:c,menuElement:m,toggleElement:g,setMenu:p,setToggle:v})),[k,l,c,m,g,p,v]);m&&y&&!c&&(w.current=m.contains(m.ownerDocument.activeElement));const O=S((()=>{g&&g.focus&&g.focus()})),T=S((()=>{const e=b.current;let t=i;if(null==t&&(t=!(!d.current||!Mn(d.current))&&"keyboard"),!1===t||"keyboard"===t&&!/^key.+$/.test(e))return;const n=Ge(d.current,a)[0];n&&n.focus&&n.focus()}));(0,t.useEffect)((()=>{c?T():w.current&&(w.current=!1,O())}),[c,w,O,T]),(0,t.useEffect)((()=>{b.current=null}));const L=(e,t)=>{if(!d.current)return null;const n=Ge(d.current,a);let r=n.indexOf(e)+t;return r=Math.max(0,Math.min(r,n.length)),n[r]};return function(e,n,r,o){void 0===o&&(o=!1);var a=S((e=>{var t,n;const{key:r}=e,o=e.target,a=null==(t=d.current)?void 0:t.contains(o),i=null==(n=h.current)?void 0:n.contains(o);if(/input|textarea/i.test(o.tagName)&&(" "===r||"Escape"!==r&&a||"Escape"===r&&"search"===o.type))return;if(!a&&!i)return;if(!("Tab"!==r||d.current&&c))return;b.current=e.type;const l={originalEvent:e,source:e.type};switch(r){case"ArrowUp":{const t=L(o,-1);return t&&t.focus&&t.focus(),void e.preventDefault()}case"ArrowDown":if(e.preventDefault(),c){const e=L(o,1);e&&e.focus&&e.focus()}else f(!0,l);return;case"Tab":se(o.ownerDocument,"keyup",(e=>{var t;("Tab"!==e.key||e.target)&&null!=(t=d.current)&&t.contains(e.target)||f(!1,l)}),{once:!0});break;case"Escape":"Escape"===r&&(e.preventDefault(),e.stopPropagation()),f(!1,l)}}));(0,t.useEffect)((function(){var t="function"==typeof e?e():e;return t.addEventListener(n,a,o),function(){return t.removeEventListener(n,a,o)}}),[e])}((0,t.useCallback)((()=>s.document),[s]),"keydown"),(0,P.jsx)(Wn.Provider,{value:C,children:(0,P.jsx)(Je.Provider,{value:A,children:u})})}Zn.Provider,nr.displayName="Dropdown",nr.Menu=jn,nr.Toggle=Bn,nr.Item=Jn;var rr=nr;const or=t.createContext({});or.displayName="DropdownContext";var ar=or;const ir=t.forwardRef((({bsPrefix:e,className:t,eventKey:n,disabled:r=!1,onClick:o,active:a,as:i=F,...l},u)=>{const s=$(e,"dropdown-item"),[c,f]=Gn({key:n,href:l.href,disabled:r,onClick:o,active:a});return(0,P.jsx)(i,{...l,...c,ref:u,className:g()(t,s,f.isActive&&"active",r&&"disabled")})}));ir.displayName="DropdownItem";var lr=ir;const ur=t.createContext(null);ur.displayName="InputGroupContext";var sr=ur;const cr=t.createContext(null);cr.displayName="NavbarContext";var fr=cr;function dr(e,t){return e}function pr(e,t,n){let r=e?n?"bottom-start":"bottom-end":n?"bottom-end":"bottom-start";return"up"===t?r=e?n?"top-start":"top-end":n?"top-end":"top-start":"end"===t?r=e?n?"left-end":"right-end":n?"left-start":"right-start":"start"===t?r=e?n?"right-end":"left-end":n?"right-start":"left-start":"down-centered"===t?r="bottom":"up-centered"===t&&(r="top"),r}const mr=t.forwardRef((({bsPrefix:e,className:n,align:r,rootCloseEvent:o,flip:a=!0,show:i,renderOnMount:l,as:u="div",popperConfig:s,variant:c,...f},d)=>{let p=!1;const m=(0,t.useContext)(fr),h=$(e,"dropdown-menu"),{align:v,drop:y,isRTL:b}=(0,t.useContext)(ar);r=r||v;const w=(0,t.useContext)(sr),x=[];if(r)if("object"==typeof r){const e=Object.keys(r);if(e.length){const t=e[0],n=r[t];p="start"===n,x.push(`${h}-${t}-${n}`)}}else"end"===r&&(p=!0);const E=pr(p,y,b),[k,{hasShown:C,popper:S,show:A,toggle:N}]=Ln({flip:a,rootCloseEvent:o,show:i,usePopper:!m&&0===x.length,offset:[0,2],popperConfig:s,placement:E});if(k.ref=ve(dr(d),k.ref),T((()=>{A&&(null==S||S.update())}),[A]),!C&&!l&&!w)return null;"string"!=typeof u&&(k.show=A,k.close=()=>null==N?void 0:N(!1),k.align=r);let O=f.style;return null!=S&&S.placement&&(O={...f.style,...k.style},f["x-placement"]=S.placement),(0,P.jsx)(u,{...f,...k,style:O,...(x.length||m)&&{"data-bs-popper":"static"},className:g()(n,h,A&&"show",p&&`${h}-end`,c&&`${h}-${c}`,...x)})}));mr.displayName="DropdownMenu";var hr=mr;const vr=t.forwardRef((({as:e,bsPrefix:t,variant:n="primary",size:r,active:o=!1,disabled:a=!1,className:i,...l},u)=>{const s=$(t,"btn"),[c,{tagName:f}]=_({tagName:e,disabled:a,...l}),d=f;return(0,P.jsx)(d,{...c,...l,ref:u,disabled:a,className:g()(i,s,o&&"active",n&&`${s}-${n}`,r&&`${s}-${r}`,l.href&&a&&"disabled")})}));vr.displayName="Button";var gr=vr;const yr=t.forwardRef((({bsPrefix:e,split:n,className:r,childBsPrefix:o,as:a=gr,...i},l)=>{const u=$(e,"dropdown-toggle"),s=(0,t.useContext)(Je);void 0!==o&&(i.bsPrefix=o);const[c]=qn();return c.ref=ve(c.ref,dr(l)),(0,P.jsx)(a,{className:g()(r,u,n&&`${u}-split`,(null==s?void 0:s.show)&&"show"),...c,...i})}));yr.displayName="DropdownToggle";var br=yr;const wr=Ne("dropdown-header",{defaultProps:{role:"heading"}}),xr=Ne("dropdown-divider",{Component:"hr",defaultProps:{role:"separator"}}),Er=Ne("dropdown-item-text",{Component:"span"}),kr=t.forwardRef(((e,n)=>{const{bsPrefix:r,drop:o="down",show:a,className:i,align:l="start",onSelect:u,onToggle:s,focusFirstItemOnShow:c,as:f="div",navbar:d,autoClose:p=!0,...m}=k(e,{show:"onToggle"}),h=(0,t.useContext)(sr),v=$(r,"dropdown"),y=function(){const{dir:e}=(0,t.useContext)(M);return"rtl"===e}(),b=S(((e,t)=>{var n;t.originalEvent.currentTarget!==document||"keydown"===t.source&&"Escape"!==t.originalEvent.key||(t.source="rootClose"),n=t.source,(!1===p?"click"===n:"inside"===p?"rootClose"!==n:"outside"!==p||"select"!==n)&&(null==s||s(e,t))})),w=pr("end"===l,o,y),x=(0,t.useMemo)((()=>({align:l,drop:o,isRTL:y})),[l,o,y]),E={down:v,"down-centered":`${v}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return(0,P.jsx)(ar.Provider,{value:x,children:(0,P.jsx)(rr,{placement:w,show:a,onSelect:u,onToggle:b,focusFirstItemOnShow:c,itemSelector:`.${v}-item:not(.disabled):not(:disabled)`,children:h?m.children:(0,P.jsx)(f,{...m,ref:n,className:g()(i,a&&"show",E[o])})})})}));kr.displayName="Dropdown";var Cr=Object.assign(kr,{Toggle:br,Menu:hr,Item:lr,ItemText:Er,Divider:xr,Header:wr}),Sr=t.createContext(null);const Ar=["as","active","eventKey"];function Nr({key:e,onClick:n,active:r,id:o,role:a,disabled:i}){const l=(0,t.useContext)(Wn),u=(0,t.useContext)(Vn),s=(0,t.useContext)(Sr);let c=r;const f={role:a};if(u){a||"tablist"!==u.role||(f.role="tab");const t=u.getControllerId(null!=e?e:null),n=u.getControlledId(null!=e?e:null);f[Kn("event-key")]=e,f.id=t||o,c=null==r&&null!=e?u.activeKey===e:r,!c&&(null!=s&&s.unmountOnExit||null!=s&&s.mountOnEnter)||(f["aria-controls"]=n)}return"tab"===f.role&&(f["aria-selected"]=c,c||(f.tabIndex=-1),i&&(f.tabIndex=-1,f["aria-disabled"]=!0)),f.onClick=S((t=>{i||(null==n||n(t),null!=e&&l&&!t.isPropagationStopped()&&l(e,t))})),[f,{isActive:c}]}const Or=t.forwardRef(((e,t)=>{let{as:n=R,active:r,eventKey:o}=e,a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,Ar);const[i,l]=Nr(Object.assign({key:Un(o,a.href),active:r},a));return i[Kn("active")]=l.isActive,(0,P.jsx)(n,Object.assign({},a,i,{ref:t}))}));Or.displayName="NavItem";var Tr=Or;const Pr=t.forwardRef((({bsPrefix:e,className:t,as:n=F,active:r,eventKey:o,disabled:a=!1,...i},l)=>{e=$(e,"nav-link");const[u,s]=Nr({key:Un(o,i.href),active:r,disabled:a,...i});return(0,P.jsx)(n,{...i,...u,ref:l,disabled:a,className:g()(t,e,a&&"disabled",s.isActive&&"active")})}));Pr.displayName="NavLink";var Lr=Pr;const _r=t.forwardRef((({id:e,title:t,children:n,bsPrefix:r,className:o,rootCloseEvent:a,menuRole:i,disabled:l,active:u,renderMenuOnMount:s,menuVariant:c,...f},d)=>{const p=$(void 0,"nav-item");return(0,P.jsxs)(Cr,{ref:d,...f,className:g()(o,p),children:[(0,P.jsx)(Cr.Toggle,{id:e,eventKey:null,active:u,disabled:l,childBsPrefix:r,as:Lr,children:t}),(0,P.jsx)(Cr.Menu,{role:i,renderOnMount:s,rootCloseEvent:a,variant:c,children:n})]})}));_r.displayName="NavDropdown";var jr=Object.assign(_r,{Item:Cr.Item,ItemText:Cr.ItemText,Divider:Cr.Divider,Header:Cr.Header});function Rr(e){return Rr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Rr(e)}function Dr(){Dr=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,o){var a=t&&t.prototype instanceof d?t:d,i=Object.create(a.prototype),l=new S(o||[]);return r(i,"_invoke",{value:x(e,n,l)}),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var f={};function d(){}function p(){}function m(){}var h={};u(h,a,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(A([])));g&&g!==t&&n.call(g,a)&&(h=g);var y=m.prototype=d.prototype=Object.create(h);function b(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(r,a,i,l){var u=c(e[r],e,a);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==Rr(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){o("next",e,i,l)}),(function(e){o("throw",e,i,l)})):t.resolve(f).then((function(e){s.value=e,i(s)}),(function(e){return o("throw",e,i,l)}))}l(u.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){o(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=E(i,n);if(l){if(l===f)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===f)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a \'"+n+"\' method")),f;var o=c(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,f;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function A(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:N}}function N(){return{value:void 0,done:!0}}return p.prototype=m,r(y,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:p,configurable:!0}),p.displayName=u(m,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,u(e,l,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},b(w.prototype),u(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new w(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(y),u(y,l,"Generator"),u(y,a,(function(){return this})),u(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=A,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function Ir(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function Fr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Mr(r,o){var a,i,l=(a=(0,t.useState)(null),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(a,i)||function(e,t){if(e){if("string"==typeof e)return Fr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Fr(e,t):void 0}}(a,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],s=l[1],c=u;if(null===u){var f,d=function(){var t,r=(t=Dr().mark((function t(){var r;return Dr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,s(n().createElement(Ie,{size:"sm"})),r=new e,t.next=5,r.logout();case 5:o()&&f("You have been logged out.","success"),t.next=11;break;case 8:t.prev=8,t.t0=t.catch(0),f("Logout failed: "+t.t0.message,"error");case 11:case"end":return t.stop()}}),t,null,[[0,8]])})),function(){var e=this,n=arguments;return new Promise((function(r,o){var a=t.apply(e,n);function i(e){Ir(a,r,o,i,l,"next",e)}function l(e){Ir(a,r,o,i,l,"throw",e)}i(void 0)}))});return function(){return r.apply(this,arguments)}}(),p=function(e){"anonymous"===e.username?f():s(function(e,t){var r=n().createElement(n().Fragment,null,e.username," ",n().createElement("i",{className:"bi bi-person-fill"}));return n().createElement(jr,{align:"end",title:r},n().createElement(jr.Item,{as:"button",onClick:t,href:"#"},"Logout"))}(e,d))},m=function(e){f(e.message,"error")},h=function(e){r(e)&&p(e)};f=function(e,t){s(n().createElement(Ke,{message:e,messageType:t,then:h,onError:m}))},(new e).getSessionInfo().then(p).catch((function(e){return f(e.message,"info")})),c=n().createElement(Ie,{size:"sm"})}return n().createElement("div",{className:"user-component"},c)}Mr.defaultProps={onLogin:function(){return!0},onLogout:function(){return!0}};var zr={name:"CaosDB"};o(391);const qr=["as","onSelect","activeKey","role","onKeyDown"],$r=()=>{},Br=Kn("event-key"),Ur=t.forwardRef(((e,n)=>{let{as:r="div",onSelect:o,activeKey:a,role:i,onKeyDown:l}=e,u=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,qr);const s=Xe(),c=(0,t.useRef)(!1),f=(0,t.useContext)(Wn),d=(0,t.useContext)(Sr);let p,m;d&&(i=i||"tablist",a=d.activeKey,p=d.getControlledId,m=d.getControllerId);const h=(0,t.useRef)(null),v=e=>{const t=h.current;if(!t)return null;const n=Ge(t,`[${Br}]:not([aria-disabled=true])`),r=t.querySelector("[aria-selected=true]");if(!r||r!==document.activeElement)return null;const o=n.indexOf(r);if(-1===o)return null;let a=o+e;return a>=n.length&&(a=0),a<0&&(a=n.length-1),n[a]},g=(e,t)=>{null!=e&&(null==o||o(e,t),null==f||f(e,t))};(0,t.useEffect)((()=>{if(h.current&&c.current){const e=h.current.querySelector(`[${Br}][aria-selected=true]`);null==e||e.focus()}c.current=!1}));const y=ve(n,h);return(0,P.jsx)(Wn.Provider,{value:g,children:(0,P.jsx)(Vn.Provider,{value:{role:i,activeKey:Un(a),getControlledId:p||$r,getControllerId:m||$r},children:(0,P.jsx)(r,Object.assign({},u,{onKeyDown:e=>{if(null==l||l(e),!d)return;let t;switch(e.key){case"ArrowLeft":case"ArrowUp":t=v(-1);break;case"ArrowRight":case"ArrowDown":t=v(1);break;default:return}t&&(e.preventDefault(),g(t.dataset[("EventKey","rrUiEventKey")]||null,e),c.current=!0,s())},ref:y,role:i}))})})}));Ur.displayName="Nav";var Wr=Object.assign(Ur,{Item:Tr});const Hr=t.createContext(null);Hr.displayName="CardHeaderContext";var Vr=Hr,Qr=Ne("nav-item");const Kr=t.forwardRef(((e,n)=>{const{as:r="div",bsPrefix:o,variant:a,fill:i=!1,justify:l=!1,navbar:u,navbarScroll:s,className:c,activeKey:f,...d}=k(e,{activeKey:"onSelect"}),p=$(o,"nav");let m,h,v=!1;const y=(0,t.useContext)(fr),b=(0,t.useContext)(Vr);return y?(m=y.bsPrefix,v=null==u||u):b&&({cardHeaderBsPrefix:h}=b),(0,P.jsx)(Wr,{as:r,ref:n,activeKey:f,className:g()(c,{[p]:!v,[`${m}-nav`]:v,[`${m}-nav-scroll`]:v&&s,[`${h}-${a}`]:!!h,[`${p}-${a}`]:!!a,[`${p}-fill`]:i,[`${p}-justified`]:l}),...d})}));Kr.displayName="Nav";var Yr=Object.assign(Kr,{Item:Qr,Link:Lr});const Gr=t.forwardRef((({bsPrefix:e,className:t,as:n,...r},o)=>{e=$(e,"navbar-brand");const a=n||(r.href?"a":"span");return(0,P.jsx)(a,{...r,ref:o,className:g()(t,e)})}));Gr.displayName="NavbarBrand";var Xr=Gr,Jr=function(...e){return e.filter((e=>null!=e)).reduce(((e,t)=>{if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(...n){e.apply(this,n),t.apply(this,n)}}),null)};const Zr={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]};function eo(e,t){const n=t[`offset${e[0].toUpperCase()}${e.slice(1)}`],r=Zr[e];return n+parseInt(oe(t,r[0]),10)+parseInt(oe(t,r[1]),10)}const to={[V]:"collapse",[Y]:"collapsing",[Q]:"collapsing",[K]:"collapse show"};var no=n().forwardRef((({onEnter:e,onEntering:r,onEntered:o,onExit:a,onExiting:i,className:l,children:u,dimension:s="height",in:c=!1,timeout:f=300,mountOnEnter:d=!1,unmountOnExit:p=!1,appear:m=!1,getDimensionValue:h=eo,...v},y)=>{const b="function"==typeof s?s():s,w=(0,t.useMemo)((()=>Jr((e=>{e.style[b]="0"}),e)),[b,e]),x=(0,t.useMemo)((()=>Jr((e=>{const t=`scroll${b[0].toUpperCase()}${b.slice(1)}`;e.style[b]=`${e[t]}px`}),r)),[b,r]),E=(0,t.useMemo)((()=>Jr((e=>{e.style[b]=null}),o)),[b,o]),k=(0,t.useMemo)((()=>Jr((e=>{e.style[b]=`${h(b,e)}px`,me(e)}),a)),[a,h,b]),C=(0,t.useMemo)((()=>Jr((e=>{e.style[b]=null}),i)),[b,i]);return(0,P.jsx)(ge,{ref:y,addEndListener:pe,...v,"aria-expanded":v.role?c:null,onEnter:w,onEntering:x,onEntered:E,onExit:k,onExiting:C,childRef:u.ref,in:c,timeout:f,mountOnEnter:d,unmountOnExit:p,appear:m,children:(e,t)=>n().cloneElement(u,{...t,className:g()(l,u.props.className,to[e],"width"===b&&"collapse-horizontal")})})}));const ro=t.forwardRef((({children:e,bsPrefix:n,...r},o)=>{n=$(n,"navbar-collapse");const a=(0,t.useContext)(fr);return(0,P.jsx)(no,{in:!(!a||!a.expanded),...r,children:(0,P.jsx)("div",{ref:o,className:n,children:e})})}));ro.displayName="NavbarCollapse";var oo=ro;const ao=t.forwardRef((({bsPrefix:e,className:n,children:r,label:o="Toggle navigation",as:a="button",onClick:i,...l},u)=>{e=$(e,"navbar-toggler");const{onToggle:s,expanded:c}=(0,t.useContext)(fr)||{},f=S((e=>{i&&i(e),s&&s()}));return"button"===a&&(l.type="button"),(0,P.jsx)(a,{...l,ref:u,onClick:f,"aria-label":o,className:g()(n,e,!c&&"collapsed"),children:r||(0,P.jsx)("span",{className:`${e}-icon`})})}));ao.displayName="NavbarToggle";var io=ao,lo=new WeakMap,uo=function(e,t){if(e&&t){var n=lo.get(t)||new Map;lo.set(t,n);var r=n.get(e);return r||((r=t.matchMedia(e)).refCount=0,n.set(r.media,r)),r}};function so(e,n){void 0===n&&(n="undefined"==typeof window?void 0:window);var r=uo(e,n),o=(0,t.useState)((function(){return!!r&&r.matches})),a=o[0],i=o[1];return T((function(){var t=uo(e,n);if(!t)return i(!1);var r=lo.get(n),o=function(){i(t.matches)};return t.refCount++,t.addListener(o),o(),function(){t.removeListener(o),t.refCount--,t.refCount<=0&&(null==r||r.delete(t.media)),t=void 0}}),[e]),a}var co=function(e){var n=Object.keys(e);function r(e,t){return e===t?t:e?e+" and "+t:t}return function(o,a,i){var l,u;return"object"==typeof o?(l=o,i=a,a=!0):((u={})[o]=a=a||!0,l=u),so((0,t.useMemo)((function(){return Object.entries(l).reduce((function(t,o){var a,i=o[0],l=o[1];return"up"!==l&&!0!==l||(t=r(t,("number"==typeof(a=e[i])&&(a+="px"),"(min-width: "+a+")"))),"down"!==l&&!0!==l||(t=r(t,function(t){var r=function(e){return n[Math.min(n.indexOf(e)+1,n.length-1)]}(t),o=e[r];return"(max-width: "+(o="number"==typeof o?o-.2+"px":"calc("+o+" - 0.2px)")+")"}(i))),t}),"")}),[JSON.stringify(l)]),i)}}({xs:0,sm:576,md:768,lg:992,xl:1200,xxl:1400});function fo(e){void 0===e&&(e=Z());try{var t=e.activeElement;return t&&t.nodeName?t:null}catch(t){return e.body}}const po=Kn("modal-open");var mo=class{constructor({ownerDocument:e,handleContainerOverflow:t=!0,isRTL:n=!1}={}){this.handleContainerOverflow=t,this.isRTL=n,this.modals=[],this.ownerDocument=e}getScrollbarWidth(){return function(e=document){const t=e.defaultView;return Math.abs(t.innerWidth-e.documentElement.clientWidth)}(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(e){}removeModalAttributes(e){}setContainerStyle(e){const t={overflow:"hidden"},n=this.isRTL?"paddingLeft":"paddingRight",r=this.getElement();e.style={overflow:r.style.overflow,[n]:r.style[n]},e.scrollBarWidth&&(t[n]=`${parseInt(oe(r,n)||"0",10)+e.scrollBarWidth}px`),r.setAttribute(po,""),oe(r,t)}reset(){[...this.modals].forEach((e=>this.remove(e)))}removeContainerStyle(e){const t=this.getElement();t.removeAttribute(po),Object.assign(t.style,e.style)}add(e){let t=this.modals.indexOf(e);return-1!==t||(t=this.modals.length,this.modals.push(e),this.setModalAttributes(e),0!==t||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state))),t}remove(e){const t=this.modals.indexOf(e);-1!==t&&(this.modals.splice(t,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(e))}isTopModal(e){return!!this.modals.length&&this.modals[this.modals.length-1]===e}};const ho=(e,t)=>ae?null==e?(t||Z()).body:("function"==typeof e&&(e=e()),e&&"current"in e&&(e=e.current),e&&("nodeType"in e||e.getBoundingClientRect)?e:null):null;var vo=function({children:e,in:n,onExited:r,mountOnEnter:o,unmountOnExit:a}){const i=(0,t.useRef)(null),l=(0,t.useRef)(n),u=S(r);(0,t.useEffect)((()=>{n?l.current=!0:u(i.current)}),[n,u]);const s=ve(i,e.ref),c=(0,t.cloneElement)(e,{ref:s});return n?c:a||!l.current&&o?null:c};function go({children:e,in:n,onExited:r,onEntered:o,transition:a}){const[i,l]=(0,t.useState)(!n);n&&i&&l(!1);const u=function({in:e,onTransition:n}){const r=(0,t.useRef)(null),o=(0,t.useRef)(!0),a=S(n);return T((()=>{if(!r.current)return;let t=!1;return a({in:e,element:r.current,initial:o.current,isStale:()=>t}),()=>{t=!0}}),[e,a]),T((()=>(o.current=!1,()=>{o.current=!0})),[]),r}({in:!!n,onTransition:e=>{Promise.resolve(a(e)).then((()=>{e.isStale()||(e.in?null==o||o(e.element,e.initial):(l(!0),null==r||r(e.element)))}),(t=>{throw e.in||l(!0),t}))}}),s=ve(u,e.ref);return i&&!n?null:(0,t.cloneElement)(e,{ref:s})}function yo(e,t,n){return e?(0,P.jsx)(e,Object.assign({},n)):t?(0,P.jsx)(go,Object.assign({},n,{transition:t})):(0,P.jsx)(vo,Object.assign({},n))}const bo=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];let wo;const xo=(0,t.forwardRef)(((e,n)=>{let{show:r=!1,role:o="dialog",className:a,style:i,children:l,backdrop:u=!0,keyboard:s=!0,onBackdropClick:c,onEscapeKeyDown:f,transition:d,runTransition:p,backdropTransition:m,runBackdropTransition:h,autoFocus:v=!0,enforceFocus:g=!0,restoreFocus:y=!0,restoreFocusOptions:b,renderDialog:w,renderBackdrop:x=(e=>(0,P.jsx)("div",Object.assign({},e))),manager:E,container:k,onShow:C,onHide:O=(()=>{}),onExit:T,onExited:L,onExiting:_,onEnter:j,onEntering:R,onEntered:D}=e,I=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,bo);const F=function(e,n){const r=er(),[o,a]=(0,t.useState)((()=>ho(e,null==r?void 0:r.document)));if(!o){const t=ho(e);t&&a(t)}return(0,t.useEffect)((()=>{}),[n,o]),(0,t.useEffect)((()=>{const t=ho(e);t!==o&&a(t)}),[e,o]),o}(k),M=function(e){const n=er(),r=e||function(e){return wo||(wo=new mo({ownerDocument:null==e?void 0:e.document})),wo}(n),o=(0,t.useRef)({dialog:null,backdrop:null});return Object.assign(o.current,{add:()=>r.add(o.current),remove:()=>r.remove(o.current),isTopModal:()=>r.isTopModal(o.current),setDialogRef:(0,t.useCallback)((e=>{o.current.dialog=e}),[]),setBackdropRef:(0,t.useCallback)((e=>{o.current.backdrop=e}),[])})}(E),z=A(),q=N(r),[$,B]=(0,t.useState)(!r),W=(0,t.useRef)(null);(0,t.useImperativeHandle)(n,(()=>M),[M]),ae&&!q&&r&&(W.current=fo()),r&&$&&B(!1);const H=S((()=>{if(M.add(),ee.current=ce(document,"keydown",J),Z.current=ce(document,"focus",(()=>setTimeout(G)),!0),C&&C(),v){const e=fo(document);M.dialog&&e&&!xn(M.dialog,e)&&(W.current=e,M.dialog.focus())}})),V=S((()=>{var e;M.remove(),null==ee.current||ee.current(),null==Z.current||Z.current(),y&&(null==(e=W.current)||null==e.focus||e.focus(b),W.current=null)}));var Q,K,Y;(0,t.useEffect)((()=>{r&&F&&H()}),[r,F,H]),(0,t.useEffect)((()=>{$&&V()}),[$,V]),Q=()=>{V()},(K=(0,t.useRef)(Q)).current=Q,Y=K,(0,t.useEffect)((function(){return function(){return Y.current()}}),[]);const G=S((()=>{if(!g||!z()||!M.isTopModal())return;const e=fo();M.dialog&&e&&!xn(M.dialog,e)&&M.dialog.focus()})),X=S((e=>{e.target===e.currentTarget&&(null==c||c(e),!0===u&&O())})),J=S((e=>{s&&function(e){return"Escape"===e.code||27===e.keyCode}(e)&&M.isTopModal()&&(null==f||f(e),e.defaultPrevented||O())})),Z=(0,t.useRef)(),ee=(0,t.useRef)();if(!F)return null;const te=Object.assign({role:o,ref:M.setDialogRef,"aria-modal":"dialog"===o||void 0},I,{style:i,className:a,tabIndex:-1});let ne=w?w(te):(0,P.jsx)("div",Object.assign({},te,{children:t.cloneElement(l,{role:"document"})}));ne=yo(d,p,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!r,onExit:T,onExiting:_,onExited:(...e)=>{B(!0),null==L||L(...e)},onEnter:j,onEntering:R,onEntered:D,children:ne});let re=null;return u&&(re=x({ref:M.setBackdropRef,onClick:X}),re=yo(m,h,{in:!!r,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:re})),(0,P.jsx)(P.Fragment,{children:U.createPortal((0,P.jsxs)(P.Fragment,{children:[re,ne]}),F)})}));xo.displayName="Modal";var Eo=Object.assign(xo,{Manager:mo}),ko=Ne("offcanvas-body");const Co={[Q]:"show",[K]:"show"},So=t.forwardRef((({bsPrefix:e,className:n,children:r,in:o=!1,mountOnEnter:a=!1,unmountOnExit:i=!1,appear:l=!1,...u},s)=>(e=$(e,"offcanvas"),(0,P.jsx)(ge,{ref:s,addEndListener:pe,in:o,mountOnEnter:a,unmountOnExit:i,appear:l,...u,childRef:r.ref,children:(o,a)=>t.cloneElement(r,{...a,className:g()(n,r.props.className,(o===Q||o===Y)&&`${e}-toggling`,Co[o])})}))));So.displayName="OffcanvasToggling";var Ao=So,No=t.createContext({onHide(){}});const Oo=t.forwardRef((({closeLabel:e="Close",closeVariant:n,closeButton:r=!1,onHide:o,children:a,...i},l)=>{const u=(0,t.useContext)(No),s=S((()=>{null==u||u.onHide(),null==o||o()}));return(0,P.jsxs)("div",{ref:l,...i,children:[a,r&&(0,P.jsx)(ke,{"aria-label":e,variant:n,onClick:s})]})}));var To=Oo;const Po=t.forwardRef((({bsPrefix:e,className:t,closeLabel:n="Close",closeButton:r=!1,...o},a)=>(e=$(e,"offcanvas-header"),(0,P.jsx)(To,{ref:a,...o,className:g()(t,e),closeLabel:n,closeButton:r}))));Po.displayName="OffcanvasHeader";var Lo=Po,_o=Ne("offcanvas-title",{Component:Ce("h5")});function jo(e,t){return e.replace(new RegExp("(^|\\\\s)"+t+"(?:\\\\s|$)","g"),"$1").replace(/\\s+/g," ").replace(/^\\s*|\\s*$/g,"")}const Ro=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Do=".sticky-top",Io=".navbar-toggler";class Fo extends mo{adjustAndStore(e,t,n){const r=t.style[e];t.dataset[e]=r,oe(t,{[e]:`${parseFloat(oe(t,e))+n}px`})}restore(e,t){const n=t.dataset[e];void 0!==n&&(delete t.dataset[e],oe(t,{[e]:n}))}setContainerStyle(e){super.setContainerStyle(e);const t=this.getElement();var n,r;if(r="modal-open",(n=t).classList?n.classList.add(r):function(e,t){return e.classList?e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,r)||("string"==typeof n.className?n.className=n.className+" "+r:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+r)),!e.scrollBarWidth)return;const o=this.isRTL?"paddingLeft":"paddingRight",a=this.isRTL?"marginLeft":"marginRight";Ge(t,Ro).forEach((t=>this.adjustAndStore(o,t,e.scrollBarWidth))),Ge(t,Do).forEach((t=>this.adjustAndStore(a,t,-e.scrollBarWidth))),Ge(t,Io).forEach((t=>this.adjustAndStore(a,t,e.scrollBarWidth)))}removeContainerStyle(e){super.removeContainerStyle(e);const t=this.getElement();var n,r;r="modal-open",(n=t).classList?n.classList.remove(r):"string"==typeof n.className?n.className=jo(n.className,r):n.setAttribute("class",jo(n.className&&n.className.baseVal||"",r));const o=this.isRTL?"paddingLeft":"paddingRight",a=this.isRTL?"marginLeft":"marginRight";Ge(t,Ro).forEach((e=>this.restore(o,e))),Ge(t,Do).forEach((e=>this.restore(a,e))),Ge(t,Io).forEach((e=>this.restore(a,e)))}}let Mo;var zo=Fo;function qo(e){return(0,P.jsx)(Ao,{...e})}function $o(e){return(0,P.jsx)(we,{...e})}const Bo=t.forwardRef((({bsPrefix:e,className:n,children:r,"aria-labelledby":o,placement:a="start",responsive:i,show:l=!1,backdrop:u=!0,keyboard:s=!0,scroll:c=!1,onEscapeKeyDown:f,onShow:d,onHide:p,container:m,autoFocus:h=!0,enforceFocus:v=!0,restoreFocus:y=!0,restoreFocusOptions:b,onEntered:w,onExit:x,onExiting:E,onEnter:k,onEntering:C,onExited:A,backdropClassName:N,manager:O,renderStaticNode:T=!1,...L},_)=>{const j=(0,t.useRef)();e=$(e,"offcanvas");const{onToggle:R}=(0,t.useContext)(fr)||{},[D,I]=(0,t.useState)(!1),F=co(i||"xs","up");(0,t.useEffect)((()=>{I(i?l&&!F:l)}),[l,i,F]);const M=S((()=>{null==R||R(),null==p||p()})),z=(0,t.useMemo)((()=>({onHide:M})),[M]),q=(0,t.useCallback)((t=>(0,P.jsx)("div",{...t,className:g()(`${e}-backdrop`,N)})),[N,e]),B=t=>(0,P.jsx)("div",{...t,...L,className:g()(n,i?`${e}-${i}`:e,`${e}-${a}`),"aria-labelledby":o,children:r});return(0,P.jsxs)(P.Fragment,{children:[!D&&(i||T)&&B({}),(0,P.jsx)(No.Provider,{value:z,children:(0,P.jsx)(Eo,{show:D,ref:_,backdrop:u,container:m,keyboard:s,autoFocus:h,enforceFocus:v&&!c,restoreFocus:y,restoreFocusOptions:b,onEscapeKeyDown:f,onShow:d,onHide:M,onEnter:(e,...t)=>{e&&(e.style.visibility="visible"),null==k||k(e,...t)},onEntering:C,onEntered:w,onExit:x,onExiting:E,onExited:(e,...t)=>{e&&(e.style.visibility=""),null==A||A(...t)},manager:O||(c?(j.current||(j.current=new zo({handleContainerOverflow:!1})),j.current):(Mo||(Mo=new Fo(void 0)),Mo)),transition:qo,backdropTransition:$o,renderBackdrop:q,renderDialog:B})})]})}));Bo.displayName="Offcanvas";var Uo=Object.assign(Bo,{Body:ko,Header:Lo,Title:_o});const Wo=t.forwardRef(((e,n)=>{const r=(0,t.useContext)(fr);return(0,P.jsx)(Uo,{ref:n,show:!(null==r||!r.expanded),...e,renderStaticNode:!0})}));Wo.displayName="NavbarOffcanvas";var Ho=Wo;const Vo=Ne("navbar-text",{Component:"span"}),Qo=t.forwardRef(((e,n)=>{const{bsPrefix:r,expand:o=!0,variant:a="light",bg:i,fixed:l,sticky:u,className:s,as:c="nav",expanded:f,onToggle:d,onSelect:p,collapseOnSelect:m=!1,...h}=k(e,{expanded:"onToggle"}),v=$(r,"navbar"),y=(0,t.useCallback)(((...e)=>{null==p||p(...e),m&&f&&(null==d||d(!1))}),[p,m,f,d]);void 0===h.role&&"nav"!==c&&(h.role="navigation");let b=`${v}-expand`;"string"==typeof o&&(b=`${b}-${o}`);const w=(0,t.useMemo)((()=>({onToggle:()=>null==d?void 0:d(!f),bsPrefix:v,expanded:!!f,expand:o})),[v,f,o,d]);return(0,P.jsx)(fr.Provider,{value:w,children:(0,P.jsx)(Wn.Provider,{value:y,children:(0,P.jsx)(c,{ref:n,...h,className:g()(s,v,o&&b,a&&`${v}-${a}`,i&&`bg-${i}`,u&&`sticky-${u}`,l&&`fixed-${l}`)})})})}));Qo.displayName="Navbar";var Ko=Object.assign(Qo,{Brand:Xr,Collapse:oo,Offcanvas:Ho,Text:Vo,Toggle:io});const Yo=t.forwardRef((({bsPrefix:e,fluid:t=!1,as:n="div",className:r,...o},a)=>{const i=$(e,"container"),l="string"==typeof t?`-${t}`:"-fluid";return(0,P.jsx)(n,{ref:a,...o,className:g()(r,t?`${i}${l}`:i)})}));Yo.displayName="Container";var Go=Yo,Xo=o(496),Jo=o.n(Xo);function Zo(e){return Zo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zo(e)}function ea(){ea=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,o){var a=new RegExp(e,r);return t.set(a,o||t.get(e)),ta(a,n.prototype)}function r(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){var o=r[n];if("number"==typeof o)t[n]=e[o];else{for(var a=0;void 0===e[o[a]]&&a+1<o.length;)a++;t[n]=e[o[a]]}return t}),Object.create(null))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ta(e,t)}(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);if(n){n.groups=r(n,this);var o=n.indices;o&&(o.groups=r(o,this))}return n},n.prototype[Symbol.replace]=function(n,o){if("string"==typeof o){var a=t.get(this);return e[Symbol.replace].call(this,n,o.replace(/\\$<([^>]+)>/g,(function(e,t){var n=a[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof o){var i=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=Zo(e[e.length-1])&&(e=[].slice.call(e)).push(r(e,i)),o.apply(this,e)}))}return e[Symbol.replace].call(this,n,o)},ea.apply(this,arguments)}function ta(e,t){return ta=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ta(e,t)}function na(){na=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,o){var a=t&&t.prototype instanceof d?t:d,i=Object.create(a.prototype),l=new S(o||[]);return r(i,"_invoke",{value:x(e,n,l)}),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var f={};function d(){}function p(){}function m(){}var h={};u(h,a,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(A([])));g&&g!==t&&n.call(g,a)&&(h=g);var y=m.prototype=d.prototype=Object.create(h);function b(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(r,a,i,l){var u=c(e[r],e,a);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"==Zo(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){o("next",e,i,l)}),(function(e){o("throw",e,i,l)})):t.resolve(f).then((function(e){s.value=e,i(s)}),(function(e){return o("throw",e,i,l)}))}l(u.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){o(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=E(i,n);if(l){if(l===f)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===f)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function E(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,E(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a \'"+n+"\' method")),f;var o=c(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,f;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function A(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:N}}function N(){return{value:void 0,done:!0}}return p.prototype=m,r(y,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:p,configurable:!0}),p.displayName=u(m,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,u(e,l,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},b(w.prototype),u(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new w(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(y),u(y,l,"Generator"),u(y,a,(function(){return this})),u(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=A,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(l&&u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function ra(e,t,n,r,o,a,i){try{var l=e[a](i),u=l.value}catch(e){return void n(e)}l.done?t(u):Promise.resolve(u).then(r,o)}function oa(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){ra(a,r,o,i,l,"next",e)}function l(e){ra(a,r,o,i,l,"throw",e)}i(void 0)}))}}function aa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Zo(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==Zo(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===Zo(o)?o:String(o)),r)}var o}var ia=["FIND","FILE","ENTITY","SELECT","COUNT","RECORD","PROPERTY","RECORDTYPE","REFERENCES","REFERENCED BY","WHICH","WITH","CREATED BY","CREATED BY ME","CREATED AT","CREATED ON","CREATED IN","CREATED BEFORE","CREATED UNTIL","CREATED AFTER","CREATED SINCE","SOMEONE","STORED AT","HAS A PROPERTY","HAS BEEN","ANY VERSION OF","FROM","INSERTED AT","INSERTED ON","INSERTED IN","INSERTED BY","INSERTED BY ME","INSERTED BEFORE","INSERTED UNTIL","INSERTED AFTER","INSERTED SINCE","UPDATED AT","UPDATED ON","UPDATED IN","UPDATED BY","UPDATED BY ME","UPDATED BEFORE","UPDATED UNTIL","UPDATED AFTER","UPDATED SINCE","SINCE","BEFORE","ON","IN","AFTER","UNTIL","AT","BY","BY ME"];function la(e){return e.map((function(e){var t=e;return t.indexOf(" ")>-1&&(t=e.indexOf(\'"\')>-1?"\'".concat(t,"\'"):\'"\'.concat(t,\'"\')),{original:e,normalized:e.trim().toLowerCase(),escaped:t}}))}function ua(e){return e.map((function(e){return{original:e,normalized:e.trim().toLowerCase(),escaped:e}}))}var sa=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._cql_words=ua(n||ia),this._terms=t||[],this._resolved_terms=void 0}var t,n,r,o,a,i,l;return t=e,n=[{key:"getSuggestions",value:(l=oa(na().mark((function e(t,n,r){return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=4;break}return e.next=3,this.getCqlSuggestions(n,r);case 3:case 6:return e.abrupt("return",e.sent);case 4:return e.next=6,this.getSearchTermSuggestions(n,r);case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"_do_resolve_terms",value:(i=oa(na().mark((function e(t){var n;return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!=typeof t){e.next=6;break}return e.next=3,t();case 3:n=e.sent,e.next=9;break;case 6:return e.next=8,t;case 8:n=e.sent;case 9:return e.next=11,la(n);case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)}))),function(e){return i.apply(this,arguments)})},{key:"_getTerms",value:(a=oa(na().mark((function e(){return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this._resolved_terms||(this._resolved_terms=this._do_resolve_terms(this._terms)),e.next=3,this._resolved_terms;case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"getSearchTermSuggestions",value:(o=oa(na().mark((function e(t,n){var r,o;return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getTerms();case 2:return r=e.sent,t===n&&(r=ua(["FIND","SELECT","COUNT"]).concat(r)),o=n.trim().toLowerCase(),e.abrupt("return",r.filter((function(e){return e.normalized.startsWith(o)})));case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"getCqlSuggestions",value:(r=oa(na().mark((function e(t,n){var r,o;return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this._cql_words,o=n.trim().toLowerCase(),e.t0=r.filter((function(e){return e.normalized.startsWith(o)})),e.next=5,this.getSearchTermSuggestions(t,n);case 5:return e.t1=e.sent,e.abrupt("return",e.t0.concat.call(e.t0,e.t1));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})}],n&&aa(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ca=function(e){return(e=e.toUpperCase().trim()).startsWith("FIND")||e.startsWith("COUNT")||e.startsWith("SELECT")},fa=function(e){return e.toUpperCase().trim().startsWith("SELECT")},da={"=":"=",">":">","≥":">=","<":"<","≤":"<=","≠":"!=",equals:"=",in:"in","not in":"not in","after date":">","since date":">=","until date":"<=","before date":"<","on date":"on","not on date":"not on"},pa={boolean:["is true","is false"],text:["equals","not equals","contains","not contains"],integer:["=","≠","≥","≤","<",">","range"],double:["=","≠","≥","≤","<",">","range"],datetime:["=","≠","on date","in","not on date","not in","after date","before date","until date","since date"]},ma={boolean:{"is true":function(e){return"(".concat(e," = TRUE)")},"is false":function(e){return"(".concat(e," = FALSE)")}},text:{contains:function(e,t,n){return"(".concat(e,\' LIKE "*\').concat(n,\'*")\')},"not equals":function(e,t,n){return"(NOT ".concat(e,\' = "\').concat(n,\'")\')},"not contains":function(e,t,n){return"(NOT ".concat(e,\' LIKE "*\').concat(n,\'*")\')}},integer:{range:function(e,t,n,r){return"(".concat(e," > ").concat(n[0]).concat(r,") AND (").concat(e," < ").concat(n[1]).concat(r,")")}},double:{range:function(e,t,n,r){return"(".concat(e," > ").concat(n[0]).concat(r,") AND (").concat(e," < ").concat(n[1]).concat(r,")")}},_default:{_default:function(e,t,n,r){n=n||"";var o=""!==(r=r||"")?"":-1===n.indexOf(\'"\')?\'"\':"\'";if(da[t])return"(".concat(e," ").concat(da[t]," ").concat(o).concat(n).concat(r).concat(o,")");throw new Error("Could not translate ".concat(e," ").concat(t," filter"),n)}}},ha=function(e){return function(t,n){var r="FIND RECORD";e&&(r+=\' "\'.concat(e,\'"\'));var o=" WITH ";if(t&&t.length>0){var a=ga(t).map((function(e){return"A PROPERTY LIKE \'*".concat(e.replaceAll("\'","\\\\\'"),"*\'")}));a.length&&(o=" AND ",r+=" WITH "+a.join(o))}var i=n.map((function(e){return function(e,t,n,r,o){if(e&&n){if(o=o||"",ma[e]){if(ma[e][n]||null===ma[e][n])return ma[e][n](t,n,r,o);if(ma[e]._default||null===ma[e]._default)return ma[e]._default(t,n,r,o)}return ma._default[n]?ma._default[n](t,n,r,o):ma._default._default(t,n,r,o)}}(e.datatype,e.property,e.operator,e.value,e.unit)}));return i.length>0&&(r+=o+i.join(" AND ")),r}},va=ea(/"([^"]*)" |\'([^\']*)\' |([^ ]+)/g,{dq:1,sq:2,nq:3}),ga=function(e){return Array.from((e+" ").matchAll(va),(function(e){return e[1]||e[2]||e[3]})).filter((function(e){return e}))};function ya(e,t,n,r,o,a){return{id:e,recordType:t,label:n||t||e,description:r||"Show only results of type ".concat(n||t||e),makeQuery:o||ha(t),filterDefinitions:a||[]}}var ba=function(){var e=oa(na().mark((function e(t,n,r){var o;return na().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new sa((function(){return[r+"-suggestion1",r+"-suggestion2",r+"-suggestion3",r+"-suggestion4",r+"-suggestion5",r+"-suggestion6",r+"-suggestion7",r+"-suggestion8",r+"-suggestion9",r+"-suggestion10",r+"-suggestion11",r+"-suggestion12",r+"-suggestion13",r+"-suggestion14",r+"-suggestion15"]}),ia),e.abrupt("return",o.getSuggestions(t,n,r));case 2:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}();function wa(e){return wa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wa(e)}function xa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ea(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xa(Object(n),!0).forEach((function(t){ka(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ka(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==wa(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==wa(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===wa(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ca(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Sa(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Sa(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Sa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Aa(){return Aa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Aa.apply(this,arguments)}var Na,Oa=n().createContext({}),Ta=function(e){var r=e.onChange,o=e.value,a=(0,t.useCallback)((function(e){var t={target:{value:[e.target.value,o[1]]}};r(t)}),[r,o]),i=(0,t.useCallback)((function(e){var t={target:{value:[o[0],e.target.value]}};r(t)}),[r,o]);return n().createElement(n().Fragment,null,n().createElement("input",Aa({type:"number"},e,{value:e.value[0],onChange:a,max:e.value[1]})),n().createElement("span",{className:"mx-1"},"to"),n().createElement("input",Aa({type:"number"},e,{value:e.value[1],onChange:i,min:e.value[0]})),e.unitElement)},Pa=function(e){var r=e.min,o=e.max,a=e.step,i=e.value,l=e.setValue,u=e.datatype,s=e.operator,c=e.unit,f=e.inputtype,d=(0,t.useCallback)((function(e){return l(e.target.value)}),[l]);if(u&&s){var p={className:"form-control form-control-sm",onChange:d,value:i,min:r,max:o};f&&(p.type=f),a&&(p.step=a);var m=c&&n().createElement("span",{className:"ms-1",title:"The unit"},c),h={boolean:{_default:null},integer:{_default:n().createElement(n().Fragment,null,n().createElement("input",Aa({},p,{type:"number",step:"1"})),m),range:n().createElement(Ta,Aa({unitElement:m},p,{step:"1"}))},double:{_default:n().createElement(n().Fragment,null,n().createElement("input",Aa({step:"0.001"},p,{type:"number"})),m),range:n().createElement(Ta,Aa({unitElement:m,step:"0.001"},p))},_default:{_default:n().createElement("input",p)}};if(h[u]){if(h[u][s]||null===h[u][s])return h[u][s];if(h[u]._default||null===h[u]._default)return h[u]._default}return h._default[s]?h._default[s]:h._default._default}};function La(){return n().createElement("div",{className:"caosdb-f-query-cql-hint",title:"You are using the expert search mode. Enter a valid CQL Query."},"CQL")}function _a(e){var r=e.tab,o=e.setActiveTab,a=e.isActiveTab,i=(0,t.useCallback)((function(){a||o(r)}),[r,o,a]),l="caosdb-f-query-tab"+(a?" active":"");return n().createElement("button",{type:"button",title:r.description,tabIndex:a?"-1":"0",className:l,onClick:a?void 0:i},r.label)}function ja(e){var r=e.filter,o=e.filterIdx,a=e.updateFilter,i=e.restoreOperator,l=e.restoreValue,u=Ca((0,t.useState)(r.operator||pa[r.datatype][0]),2),s=u[0],c=u[1],f=Ca((0,t.useState)(r.value||""),2),d=f[0],p=f[1],m=n().createElement(Pa,{datatype:r.datatype,operator:s,setValue:p,value:d,unit:r.unit,min:r.min,max:r.max,step:r.step,inputtype:r.inputtype});return(0,t.useEffect)((function(){i&&s!==i&&c(i)}),[i,s]),(0,t.useEffect)((function(){l&&d!==l&&p(l)}),[l,d]),(0,t.useEffect)((function(){s!==r.operator&&a(o,{restoreOperator:void 0,operator:s})}),[s,r.operator,o,a]),(0,t.useEffect)((function(){d!==r.value&&a(o,{restoreValue:void 0,value:d})}),[d,r.value,o,a]),n().createElement(n().Fragment,null,n().createElement("div",null,n().createElement("select",{className:"form-select form-select-sm",value:s,onChange:function(e){return c(e.target.value)}},pa[r.datatype].map((function(e,t){return n().createElement("option",{key:t},e)})))),n().createElement("div",{className:"d-flex"},m))}function Ra(e){var t=e.selected,r=e.filterDefinitions,o=e.onChange,a=e.title;return n().createElement("select",{title:a,className:"form-select form-select-sm",value:t,onChange:o},r.map((function(e,t){return n().createElement("option",{value:e.property,style:e.style,key:t},e.label||e.property)})))}function Da(e){var r=e.filterDefinitions,o=e.addFilter,a=(0,t.useCallback)((function(e){o(e.target.value)}),[o]);return n().createElement("div",null,n().createElement(Ra,{filterDefinitions:r.concat({property:"__add_filter__",label:"Add Filter",style:{display:"none"}}),selected:"__add_filter__",title:"Add Filter",onChange:a}))}function Ia(e){var r=e.filterDefinitions,o=e.filterIdx,a=e.activeFilters,i=e.updateFilter,l=e.setProperty,u=e.removeFilter,s=a&&a[o],c=(0,t.useCallback)((function(e){l(o,e.target.value)}),[l,o]),f=(0,t.useCallback)((function(){return u(o)}),[u,o]);return n().createElement(n().Fragment,null,n().createElement("div",{className:"caosdb-f-query-filter-property-selector"},n().createElement(Ra,{filterDefinitions:r,selected:s.property,onChange:c})),n().createElement(ja,{restoreValue:s.restoreValue,restoreOperator:s.restoreOperator,updateFilter:i,filterIdx:o,filter:s}),n().createElement("div",{className:"text-end flex-grow-1"},n().createElement("button",{type:"button",className:"btn btn-sm btn-outline-secondary",onClick:f},"Remove Filter")))}function Fa(e){var r=e.filterDefinitions,o=e.activeFilters,a=e.setActiveFilters,i=(0,t.useCallback)((function(e){a(o.filter((function(t,n){return n!==e})))}),[o,a]),l=(0,t.useCallback)((function(e,t){var n=[].concat(o);n[e]=Ea(Ea({},n[e]),t),a(n)}),[o,a]),u=(0,t.useCallback)((function(e,t){var n=r.filter((function(e){return e.property===t}))[0];l(e,{restoreValue:"",restoreOperator:pa[n.datatype][0],property:t,datatype:n.datatype,unit:n.unit,min:n.min,max:n.max,filter:n})}),[l,r]),s=(0,t.useCallback)((function(e){var t=r.filter((function(t){return t.property===e}))[0];a(o.concat({property:e,datatype:t.datatype,unit:t.unit,min:t.min,max:t.max,filter:t}))}),[o,a,r]);return n().createElement(n().Fragment,null,o.map((function(e,t){return n().createElement(Ia,{key:t,filterIdx:t,filterDefinitions:r,activeFilters:o,setActiveFilters:a,updateFilter:l,setProperty:u,removeFilter:i})})),n().createElement("div",{className:"d-flex"},n().createElement(Da,{filterDefinitions:r,addFilter:s}),o.length>0&&n().createElement("button",{type:"submit",title:"Search with filters",className:"btn btn-primary btn-sm ms-auto"},"Search")))}function Ma(e){var r=e.filterDefinitions,o=e.activeFilters,a=e.setActiveFilters,i=Ca((0,t.useState)(o.length>0),2),l=i[0],u=i[1],s=l?"Cancel Advanced Filtering":"Advanced Filtering";return n().createElement(n().Fragment,null,n().createElement("button",{type:"button",onClick:function(){return u(!l)},className:"btn ms-auto caosdb-f-query-filters-toggle",title:s},l?n().createElement("i",{className:"bi bi-x"}):n().createElement("i",{className:"bi bi-filter"})),l&&n().createElement("div",{className:"caosdb-f-query-tab-filters w-100"},n().createElement(Fa,{filterDefinitions:r,activeFilters:o,setActiveFilters:a})))}function za(e){var r=e.tabs,o=e.setActiveTab,a=e.activeTab,i=e.activeFilters,l=e.setActiveFilters,u=(0,t.useMemo)((function(){return a&&a.filterDefinitions&&a.filterDefinitions.length>0}),[a]);return n().createElement("div",{className:"caosdb-f-query-tab-list d-flex flex-wrap"},r.map((function(e){return n().createElement(_a,{isActiveTab:a.id===e.id,setActiveTab:o,key:e.label,tab:e})}))," ",u&&n().createElement(Ma,Aa({},a,{activeFilters:i,setActiveFilters:l})))}function qa(e){var t=e.isSubmitted,r=e.active;return t?n().createElement(Ie,{className:"align-self-center",size:"sm"}):n().createElement("button",{"aria-label":"search",title:"Search",type:"submit",disabled:!r},n().createElement("i",{className:"bi bi-search"}))}function $a(e){var t=e.suggestion,r=e.isHighlighted,o=e.onMouseEnter;return n().createElement("li",{onMouseEnter:o,className:r?"highlight":""},t.original)}function Ba(e){var t=e.suggestions,r=e.highlightIndex,o=e.selectSuggestion;return n().createElement(n().Fragment,null,t.map((function(e,t){return n().createElement($a,{onMouseEnter:function(){return o(t)},key:t,isHighlighted:r===t,suggestion:e})})))}function Ua(e){var r=e.unselectSuggestions,o=e.selectSuggestion,a=e.highlightIndex,i=e.suggestions,l=e.getInputRef,u=e.wordPos,s=e.word,c=e.xOffset,f=(0,t.useRef)(),d=n().createElement(Ba,{selectSuggestion:o,highlightIndex:a,suggestions:i});return(0,t.useEffect)((function(){a>-1&&f.current.scroll(0,24*a-48)}),[a]),(0,t.useEffect)((function(){var e=l(),t=Jo()(e.current,u),n=e.current.getBoundingClientRect().width;if(t.left>n){var r=Jo()(e.current,u+s.length).left-t.left;f.current.style.marginLeft="".concat(n-r,"px")}else t.left>8&&(f.current.style.marginLeft="".concat(t.left-8,"px"))}),[s,l,u]),n().createElement("div",{onMouseLeave:r,style:{paddingLeft:c},className:"caosdb-f-query-form-sug-container"},n().createElement("ol",{ref:f,className:"caosdb-f-query-form-sug"},d))}function Wa(e,t){var n,r,o,a,i;switch(t.type){case"onFocus":return Ea(Ea({},e),{},{refocus:!1,focus:!0});case"onBlur":return e.onClickValue?Ea(Ea({},e),{},{value:e.onClickValue,cursorPos:e.onClickCursorPos,onClickCursorPos:void 0,onClickValue:void 0,refocus:!0,open:!1}):Ea(Ea({},e),{},{focus:!1});case"onChange":return n=t.target.selectionEnd,r=t.target.value.slice(0,n).lastIndexOf(" ")+1,i=(a=(o=t.target.value.slice(r,n)).length>2)&&t.getSuggestionsCallback?t.getSuggestionsCallback(ca(t.target.value),t.target.value,o):null,Ea(Ea({},e),{},{onClickValue:void 0,onClickCursorPos:void 0,highlightIndex:-1,cursorPos:n,cursorPosNoCompletion:n,wordPos:r,value:t.target.value,valueNoCompletion:t.target.value,refocus:!1,word:o,open:a,unresolvedSuggestions:i});case"resolveSuggestions":return Ea(Ea({},e),{},{suggestions:t.suggestions});case"onArrowDown":if(e.open&&e.suggestions&&e.highlightIndex<e.suggestions.length-1){var l=e.highlightIndex+1,u=e.valueNoCompletion.slice(0,e.wordPos)+e.suggestions[l].escaped+e.valueNoCompletion.slice(e.cursorPosNoCompletion),s=e.wordPos+e.suggestions[l].escaped.length;return Ea(Ea({},e),{},{cursorPos:s,value:u,highlightIndex:l})}break;case"unselectSuggestions":return Ea(Ea({},e),{},{onClickCursorPos:void 0,onClickValue:void 0});case"selectSuggestion":if(t.index>-1&&t.index<e.suggestions.length){var c=e.valueNoCompletion.slice(0,e.wordPos)+e.suggestions[t.index].escaped+e.valueNoCompletion.slice(e.cursorPosNoCompletion)+" ",f=e.wordPos+e.suggestions[t.index].escaped.length+1;return Ea(Ea({},e),{},{onClickValue:c,onClickCursorPos:f})}break;case"restore":return Ea(Ea({},e),{},{value:t.value});case"onArrowUp":if(e.open&&e.highlightIndex>-1){var d=e.highlightIndex-1,p=d<0?e.valueNoCompletion:e.valueNoCompletion.slice(0,e.wordPos)+e.suggestions[d].escaped+e.valueNoCompletion.slice(e.cursorPosNoCompletion),m=d<0?e.cursorPosNoCompletion:e.wordPos+e.suggestions[d].escaped.length;return Ea(Ea({},e),{},{cursorPos:m,value:p,highlightIndex:d})}}return e}function Ha(e){var r=e.setQueryString,o=e.isCql,a=e.restoreQueryString,i=(0,t.useContext)(Oa),l=i.getSuggestionsCallback,u=i.isSubmitted,s=(0,t.useRef)(),c=(0,t.useRef)(),f=Ca((0,t.useReducer)(Wa,{refocus:!1,value:"",focus:!1,open:!1,word:"",highlightIndex:-1,unresolvedSuggestions:null,suggestions:null}),2),d=f[0],p=f[1];(0,t.useEffect)((function(){r(d.value)}),[d.value,r]),(0,t.useEffect)((function(){a&&p({type:"restore",value:a})}),[a]);var m=(0,t.useCallback)((function(){p({type:"onFocus"})}),[]),h=(0,t.useCallback)((function(){p({type:"onBlur"})}),[]),v=(0,t.useCallback)((function(){p({type:"onArrowUp"})}),[]),g=(0,t.useCallback)((function(){p({type:"onArrowDown"})}),[]),y=(0,t.useCallback)((function(e){p({type:"onChange",target:e.target,getSuggestionsCallback:l})}),[l]),b=(0,t.useCallback)((function(e){return"ArrowDown"===e.key?(e.preventDefault(),g(e)):"ArrowUp"===e.key?(e.preventDefault(),v(e)):void 0}),[v,g]),w=(0,t.useCallback)((function(){p({type:"unselectSuggestions"})}),[]),x=(0,t.useCallback)((function(e){p({type:"selectSuggestion",index:e})}),[]),E="caosdb-f-query-form";d.open&&(E+=" open"),d.focus&&(E+=" focus"),(0,t.useEffect)((function(){d.unresolvedSuggestions&&d.unresolvedSuggestions.then((function(e){p({type:"resolveSuggestions",suggestions:e})}))}),[d.unresolvedSuggestions]),(0,t.useEffect)((function(){s.current.setSelectionRange(d.cursorPos,d.cursorPos)}),[d.value,d.cursorPos]);var k=(0,t.useCallback)((function(){return s}),[s]);return(0,t.useEffect)((function(){d.refocus&&s.current.focus()}),[d]),n().createElement("div",{ref:c,className:E},n().createElement("div",{className:"d-flex"},o&&n().createElement(La,null),n().createElement("input",{disabled:u,className:"flex-grow-1","aria-label":"enter search terms",name:"query",title:"Enter search terms",onFocus:m,onBlur:h,onKeyDown:b,onChange:y,value:d.value,ref:s}),n().createElement(qa,{active:d.value.length>0,isSubmitted:u})),d.open&&d.suggestions&&n().createElement(Ua,{unselectSuggestions:w,selectSuggestion:x,word:d.word,wordPos:d.wordPos,getInputRef:k,suggestions:d.suggestions,highlightIndex:d.highlightIndex,xOffset:o?44:0}))}function Va(e){var r=e.submitCallback,o=e.tabs,a=e.defaultTab,i=e.getSuggestionsCallback,l=e.restoreCallback,u=e.storeCallback,s=e.restore?l(o):{},c=s.restoreQueryString,f=s.restoreActiveFilters,d=s.restoreActiveTab,p=Ca((0,t.useState)(!1),2),m=p[0],h=p[1],v=Ca((0,t.useState)(""),2),g=v[0],y=v[1],b=Ca((0,t.useState)(d||o[a]),2),w=b[0],x=b[1],E=Ca((0,t.useState)(f||[]),2),k=E[0],C=E[1],S=(0,t.useCallback)((function(e){e.preventDefault(),h(!0),u(w,k,g);var t=o.filter((function(e){return e.id===w.id}))[0]||{},n=ca(g),a=n&&fa(g),i=n||!t.makeQuery?function(e){return e}:t.makeQuery,l=a?-1:void 0;return r(i(g,k),l)}),[o,w,k,g,r,u]),A=ca(g),N=(0,t.useMemo)((function(){return{isSubmitted:m,queryString:g,getSuggestionsCallback:i}}),[g,i,m]),O=(0,t.useCallback)((function(e){x(e),C([])}),[C,x]);return n().createElement("form",{onSubmit:S},n().createElement(Oa.Provider,{value:N},n().createElement(Ha,{restoreQueryString:c,isCql:A,setQueryString:y}),!A&&n().createElement(za,{tabs:o,activeTab:w,setActiveTab:O,activeFilters:k,setActiveFilters:C})))}Va.AutoCompletion=sa,Va.defaultProps={submitCallback:function(e,t){console.log("submit query: ",e,t),setTimeout((function(){alert(e),window.location.href=window.location.href}),1e3)},tabs:(Na=function(e){return[{property:e+"-text-property",datatype:"text"},{property:e+"-datetime-property",datatype:"datetime"},{property:e+"-integer-property",datatype:"integer"},{property:e+"-double-property",datatype:"double",min:"-50",max:"50",unit:"m"},{property:e+"-boolean-property",datatype:"boolean"},{property:\'"\'.concat(e,\'-reference-property"."sub-property"\'),label:"sub-property of ".concat(e,"-reference-property"),datatype:"text"}]},[ya("all",void 0,"All","Show all matching results",ha(""),Na("all")),ya("dataset","Dataset","Dataset",void 0,ha("Dataset"),Na("dataset")),ya("event","Event","Event",void 0,ha("Event"),Na("event")),ya("person","Person","Person",void 0,ha("Person"),Na("person"))]),defaultTab:0,getSuggestionsCallback:ba,restoreCallback:function(e){var t={restoreActiveTab:window.localStorage["query.activeTab"]&&JSON.parse(window.localStorage["query.activeTab"]),restoreActiveFilters:window.localStorage["query.activeFilters"]&&JSON.parse(window.localStorage["query.activeFilters"]),restoreQueryString:window.localStorage["query.queryString"]||""};return t.restoreActiveTab&&0===e.filter((function(e){return e.id===t.restoreActiveTab.id})).length?(window.localStorage.removeItem("query.activeTab"),window.localStorage.removeItem("query.activeFilters"),window.localStorage.removeItem("query.queryString"),{}):t},storeCallback:function(e,t,n){window.localStorage.removeItem("query.activeTab"),window.localStorage.removeItem("query.activeFilters"),window.localStorage.removeItem("query.queryString"),e&&(window.localStorage["query.activeTab"]=JSON.stringify(e)),t&&t.length>0&&(window.localStorage["query.activeFilters"]=JSON.stringify(t)),n&&n.length>0&&(window.localStorage["query.queryString"]=n)},restore:!1};var Qa=0,Ka=void 0,Ya=function(e){"number"==typeof Ka&&clearTimeout(Ka);var t=e.getBoundingClientRect(),n=t.top,r=t.bottom;Qa===r-n?Ka=setTimeout((function(){Ka=void 0,window.pageYOffset>Qa?e.classList.add("condensed"):e.classList.remove("condensed")}),200):Qa=r-n},Ga=function(e){return(0,t.useEffect)((function(){return window.addEventListener("scroll",e.scrollHandler),function(){window.removeEventListener("scroll",e.scrollHandler)}}),[e.scrollHandler]),n().createElement(Go,null,n().createElement(Va,e))};function Xa(e){return Xa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xa(e)}function Ja(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Xa(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==Xa(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===Xa(o)?o:String(o)),r)}var o}Ga.propTypes={scrollHandler:h().func};var Za=new(function(){function e(t){var n=t.items,r=t.brand,o=t.user_component;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.items=n||[],this.brand=r||zr.name,this.update_listeners=[],this.user_component=o}var t,n;return t=e,(n=[{key:"registerUpdateListener",value:function(e){this.update_listeners.push(e)}},{key:"addLink",value:function(e){this.items.push(e),this.notifyUpdateListeners()}},{key:"notifyUpdateListeners",value:function(){this.update_listeners.forEach((function(e){return e()}))}}])&&Ja(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}())({items:[n().createElement(Yr.Link,{key:"0",href:"#action1"},"Home"),n().createElement(Yr.Link,{key:"1",href:"#action2"},"Link"),n().createElement(jr,{key:"2",title:"Link"},n().createElement(jr.Item,{href:"#action3"},"Action"),n().createElement(jr.Item,{href:"#action4"},"Another action"),n().createElement(jr.Divider,null),n().createElement(jr.Item,{href:"#action5"},"Something else here")),n().createElement(Yr.Link,{key:"3",href:"#",disabled:!0},"Link")],user_component:n().createElement(Mr,null)}),ei=function(){var e=(0,t.useRef)(),r=(0,t.useCallback)((function(){Ya(e.current)}),[e]);return n().createElement(Ko,{bg:"light",expand:"lg"},n().createElement(Go,{fluid:!0},n().createElement("span",{className:"d-lg-none d-inline"},Za.brand),n().createElement(Ko.Toggle,{"aria-controls":"navbarScroll"}),n().createElement(Ko.Collapse,{id:"navbarScroll"},n().createElement(Ko.Brand,{className:"d-none d-lg-inline"},Za.brand),n().createElement(Yr,{className:"me-auto my-2 my-lg-0"},Za.items.map((function(e,t){return n().createElement("span",{key:t},e)}))),n().createElement(Yr,{ref:e,className:"caosdb-f-query-panel me-lg-2 full"},n().createElement(Ga,{restore:!0,scrollHandler:r})),n().createElement(Yr,null,Za.user_component))))},ti=function(){return n().createElement("header",{className:"shadow-sm bg-light"},n().createElement(ei,null))};function ni(e){return ni="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ni(e)}function ri(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==ni(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!==ni(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===ni(o)?o:String(o)),r)}var o}function oi(e,t,n){return t&&ri(e.prototype,t),n&&ri(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var ai=new(oi((function e(t){var n=t.items,r=t.copyRight;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.items=n,this.copyRight=r})))({items:[n().createElement("a",{key:"0",className:"nav-link px-2",href:"https://www.gnu.org/licenses/agpl-3.0.en.html"},"License (AGPL-v3)"),n().createElement("a",{key:"1",className:"nav-link px-2",href:"https://gitlab.com/caosdb"},"Sources"),n().createElement("a",{key:"3",className:"nav-link px-2",href:"https://docs.indiscale.com/"},"Documentation")],copyRight:"© 2021 IndiScale GmbH"}),ii=function(){return n().createElement("footer",null,n().createElement("div",{className:"footer-border"}),n().createElement("div",{className:"footer-body"},n().createElement("div",{className:"container py-3 my-4"},n().createElement("ul",{className:"nav align-items-center justify-content-center pb-3 mb-3"},ai.items.map((function(e,t){var r=0===t?null:n().createElement("li",{className:"nav-item px-1"},"•");return n().createElement(n().Fragment,{key:t},r,n().createElement("li",{className:"nav-item"},e))}))),n().createElement("p",{className:"text-center"},ai.copyRight))))};function li(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ui(e){var r,o,a=e.loading||n().createElement(Ie,null),i=(r=(0,t.useState)(a),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return li(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?li(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=i[0],u=i[1];return(0,t.useEffect)((function(){var t=e.promise;e.then&&(t=t.then(e.then));var r=e.catch||function(e){return e=e&&e.message?e.message:e,n().createElement("span",null,"An unhandled error occured: ",e)};t.catch(r).then(u)}),[e.promise,e.then,e.catch]),l}function si(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ci=function(e){var r,o,a=e.name,i=e.value,l=e.icons,u=e.style,s=e.color,c=e.readOnly,f=e.onChange,d=e.onBlur,p=e.setValue,m=e.title,h=(r=(0,t.useState)(i||"false"),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],u=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return l}}(r,o)||function(e,t){if(e){if("string"==typeof e)return si(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?si(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),v=h[0],g=h[1];u=u||"check";var y,b={x:{true:"bi bi-x-square"+(s=s||{check:{true:" text-success",false:" text-body",partial:" color-light-green"},"check-fill":{true:" text-success",false:" text-body",partial:" color-light-green"},x:{true:" text-danger",false:" text-body",partial:" text-warning"},"x-fill":{true:" text-danger",false:" text-body",partial:" text-warning"}}[u]).true,false:"bi bi-square"+s.false,partial:"bi bi-slash-square"+s.partial},"x-fill":{true:"bi bi-x-square-fill"+s.true,false:"bi bi-square"+s.false,partial:"bi bi-slash-square-fill"+s.partial},check:{true:"bi bi-check-square"+s.true,false:"bi bi-square"+s.false,partial:"bi bi-slash-square"+s.partial},"check-fill":{true:"bi bi-check-square-fill"+s.true,false:"bi bi-square"+s.false,partial:"bi bi-slash-square-fill"+s.partial}},w={partial:"false",true:"false",false:"true"},x={};c||(y=n().createElement("input",{className:"caosdb-check-box-input",onChange:f,tabIndex:"-1",type:"hidden",name:a,value:v}),x.onClick=function(){p(a,w[v]),g(w[v])},x.onKeyDown=function(e){"Space"===e.code&&(p(a,w[v]),g(w[v]),e.preventDefault())},x.tabIndex="0",x.onBlur=d);var E=(l=l||{})[v]||n().createElement("i",{className:"ms-1 caosdb-checkbox-icon "+b[u][v]}),k="caosdb-checkbox d-flex align-items-center";return c&&(k+=" read-only"),n().createElement("span",{title:m,className:k,role:"checkbox","aria-checked":v},y,n().createElement("span",x,E))};ci.propTypes={name:h().string.isRequired,value:h().oneOf(["true","false"]),icons:h().object,style:h().string,color:h().object,readOnly:h().bool,onChange:h().func,onBlur:h().func,setValue:h().func,title:h().string};var fi=function(e){var t=e.className,r=e.children;return t=t||"",n().createElement("div",{className:"card mt-3 rounded shadow ".concat(t)},r)};fi.propTypes={className:h().string,children:h().oneOfType([h().arrayOf(h().node),h().node])},fi.Body=function(e){var t=e.children;return n().createElement("div",{className:"card-body"},t)},fi.Body.propTypes={children:h().oneOfType([h().arrayOf(h().node),h().node])},fi.Footer=function(e){var t=e.children;return n().createElement("div",{className:"card-footer d-flex justify-content-between"},t)},fi.Footer.propTypes={children:h().oneOfType([h().arrayOf(h().node),h().node])},fi.Title=function(e){var t=e.children;return n().createElement("h3",{className:"card-title"},t)},fi.Title.propTypes={children:h().oneOfType([h().arrayOf(h().node),h().node])},fi.Header=function(e){var t=e.title,r=e.children;return t=t?n().createElement(fi.Title,null,t):void 0,n().createElement("div",{className:"card-header"},t,r)},fi.Header.propTypes={title:h().node,children:h().oneOfType([h().arrayOf(h().node),h().node])};var di=o(379),pi=o.n(di),mi=o(795),hi=o.n(mi),vi=o(569),gi=o.n(vi),yi=o(565),bi=o.n(yi),wi=o(216),xi=o.n(wi),Ei=o(589),ki=o.n(Ei),Ci=o(550),Si={};Si.styleTagTransform=ki(),Si.setAttributes=bi(),Si.insert=gi().bind(null,"head"),Si.domAPI=hi(),Si.insertStyleElement=xi(),pi()(Ci.Z,Si),Ci.Z&&Ci.Z.locals&&Ci.Z.locals}(),a}()}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFVBQW9CLENBQzVCQSxJQUFBQSxRQUFrQkEsSUFBQUEsTUFDbEJBLElBQUFBLFFBSUppbkYsR0FBS3JRLE1BQVEsU0FBa0I3dEIsR0FBZSxJQUFaN2dELEVBQVE2Z0QsRUFBUjdnRCxTQUNoQyxPQUFPZ3lDLElBQUFBLGNBQUEsTUFBSUMsVUFBVSxjQUFjanlDLEVBQ3JDLEVBRUErK0UsR0FBS3JRLE1BQU1yMUIsVUFBWSxDQUNyQnI1QyxTQUFVbEksSUFBQUEsVUFBb0IsQ0FDNUJBLElBQUFBLFFBQWtCQSxJQUFBQSxNQUNsQkEsSUFBQUEsUUFJSmluRixHQUFLemUsT0FBUyxTQUFtQjdXLEdBQXNCLElBQW5CckssRUFBS3FLLEVBQUxySyxNQUFPcC9DLEVBQVF5cEQsRUFBUnpwRCxTQUV6QyxPQURBby9DLEVBQVFBLEVBQVFwTixJQUFBQSxjQUFDK3NDLEdBQUtyUSxNQUFLLEtBQUV0dkIsUUFBc0J2c0QsRUFFakRtL0MsSUFBQUEsY0FBQSxPQUFLQyxVQUFVLGVBQ1ptTixFQUNBcC9DLEVBR1AsRUFFQSsrRSxHQUFLemUsT0FBT2puQixVQUFZLENBQ3RCK0YsTUFBT3RuRCxJQUFBQSxLQUNQa0ksU0FBVWxJLElBQUFBLFVBQW9CLENBQzVCQSxJQUFBQSxRQUFrQkEsSUFBQUEsTUFDbEJBLElBQUFBLG9KQ3pEQSxHQUFVLENBQUMsRUFFZixHQUFRbXZDLGtCQUFvQixLQUM1QixHQUFRTCxjQUFnQixLQUVsQixHQUFRTixPQUFTLFVBQWMsS0FBTSxRQUUzQyxHQUFRVixPQUFTLEtBQ2pCLEdBQVFvQixtQkFBcUIsS0FFaEIsS0FBSSxLQUFTLElBS0osTUFBVyxhQUFpQiIsInNvdXJjZXMiOlsid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24/ZGRkNyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvY2xhc3NuYW1lcy9pbmRleC5qcz8zOGVkIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9pbmRleC5zY3NzPzRlY2QiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcz80NDI1Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzPzU2MTkiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2ludmFyaWFudC9icm93c2VyLmpzPzlkOGIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMtZXh0cmEvbGliL2FsbC5qcz9lZGI2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzLWV4dHJhL2xpYi91dGlscy9jcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlci5qcz9kOGZmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qcz81MWY2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzPzk3NjciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvbGliL1JlYWN0UHJvcFR5cGVzU2VjcmV0LmpzPzA3OTIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzPzg5MDciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcz82ZTdlIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5taW4uanM/NzFmMiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanM/ZDViNSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanM/YzYwNiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzP2Y3ZDUiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzPzBmY2EiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcz9iNzNjIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcz9lYmUzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcz9mZjdkIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzPzRlYTMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanM/NGRiZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvdGV4dGFyZWEtY2FyZXQvaW5kZXguanM/Y2VkYSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvd2FybmluZy93YXJuaW5nLmpzPzM3MTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzL2V4dGVybmFsIHVtZCB7XCJjb21tb25qc1wiOlwiQGluZGlzY2FsZS9jYW9zZGItd2VidWktaW5mby1zZXJ2aWNlXCIsXCJjb21tb25qczJcIjpcIkBpbmRpc2NhbGUvY2Fvc2RiLXdlYnVpLWluZm8tc2VydmljZVwiLFwiYW1kXCI6XCJDYW9zREJJbmZvU2VydmljZVwiLFwicm9vdFwiOlwiQ2Fvc0RCSW5mb1NlcnZpY2VcIn0/MWY5OSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvZXh0ZXJuYWwgdW1kIHtcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJSZWFjdFwiLFwicm9vdFwiOlwiUmVhY3RcIn0/ZjczNyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvd2VicGFjay9ib290c3RyYXA/NWNiNiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQ/MGYwNiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzPzJkMDQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzL3dlYnBhY2svcnVudGltZS9nbG9iYWw/Njg1NCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZD9iZjNkIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Pzk3NWEiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzL3dlYnBhY2svcnVudGltZS9ub25jZT9hYzk0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9JbmZvU2VydmljZS5qcz85YjNmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL1NlcnZlclZlcnNpb25JbmZvLmpzeD9kYjA0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzPzM2OWMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanM/YTE1ZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvdW5jb250cm9sbGFibGUvbGliL2VzbS91dGlscy5qcz9kOGQ2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy91bmNvbnRyb2xsYWJsZS9saWIvZXNtL2hvb2suanM/ZGI1YiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZUNvbW1pdHRlZFJlZi5qcz81YTdiIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC9ob29rcy9lc20vdXNlRXZlbnRDYWxsYmFjay5qcz9jNTFjIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC9ob29rcy9lc20vdXNlTW91bnRlZC5qcz9jZmQ0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC9ob29rcy9lc20vdXNlUHJldmlvdXMuanM/ZTQ1NSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZUlzb21vcnBoaWNFZmZlY3QuanM/ZTE4ZCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZVJlc2l6ZU9ic2VydmVyLmpzPzlmM2YiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9CdXR0b24uanM/NzJhYiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL0FuY2hvci5qcz84ZWQ5Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL1RoZW1lUHJvdmlkZXIuanM/YjAzYyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2V0UHJvdG90eXBlT2YuanM/MGExYyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9lc20vVHJhbnNpdGlvbkdyb3VwQ29udGV4dC5qcz8yZDQ2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwL2VzbS9UcmFuc2l0aW9uLmpzP2Q3ZjciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzTG9vc2UuanM/MDcwYiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9lc20vdXRpbHMvcmVmbG93LmpzPzM3NTciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9vd25lckRvY3VtZW50LmpzPzE1NTIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9oeXBoZW5hdGUuanM/NjIzNyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL2h5cGhlbmF0ZVN0eWxlLmpzPzdlNTQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9pc1RyYW5zZm9ybS5qcz8yYWQ5Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9lc20vY3NzLmpzP2UxOTYiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9nZXRDb21wdXRlZFN0eWxlLmpzP2E0ZGEiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9vd25lcldpbmRvdy5qcz81YTJmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9lc20vY2FuVXNlRE9NLmpzPzRhMDciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9hZGRFdmVudExpc3RlbmVyLmpzP2Q1MTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9saXN0ZW4uanM/ZmU5MyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL3JlbW92ZUV2ZW50TGlzdGVuZXIuanM/MDk0MyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL3RyYW5zaXRpb25FbmQuanM/ZmJkZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL3RyaWdnZXJFdmVudC5qcz80NzU0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL3RyYW5zaXRpb25FbmRMaXN0ZW5lci5qcz9kZDNmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL3RyaWdnZXJCcm93c2VyUmVmbG93LmpzPzQ1ODkiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L2hvb2tzL2VzbS91c2VNZXJnZWRSZWZzLmpzPzFhZTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vVHJhbnNpdGlvbldyYXBwZXIuanM/NjE0OCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9zYWZlRmluZERPTU5vZGUuanM/YmQ0YSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9GYWRlLmpzPzRhZmQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vQ2xvc2VCdXR0b24uanM/OTUwMyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9kaXZXaXRoQ2xhc3NOYW1lLmpzP2Q4MWIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9jYW1lbGl6ZS5qcz9iZDdiIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL2NyZWF0ZVdpdGhCc1ByZWZpeC5qcz8xMzMwIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL0FsZXJ0LmpzPzA2NDIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL2NvbXBvbmVudHMvTWVzc2FnZS5qc3g/Mjc1YiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nSW5mby5qc3g/MTdlOCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9zcmMvY29tcG9uZW50cy9Mb2dpbkZvcm0uanN4P2E1ZjMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9xdWVyeVNlbGVjdG9yQWxsLmpzPzc5YTMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L2hvb2tzL2VzbS91c2VGb3JjZVVwZGF0ZS5qcz9jODljIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vRHJvcGRvd25Db250ZXh0LmpzPzhiZTciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RlcXVhbC9kaXN0L2luZGV4Lm1qcz8yNmJiIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qcz83ZmUyIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvdy5qcz9lMzZjIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2luc3RhbmNlT2YuanM/ZDUyZSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21hdGguanM/N2I1MSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL3VzZXJBZ2VudC5qcz8xZThhIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzTGF5b3V0Vmlld3BvcnQuanM/ODkyZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanM/ZTdmNCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzPzhmMzIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvY29udGFpbnMuanM/MTk2OCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlTmFtZS5qcz9jMGEzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanM/YTFiZCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1RhYmxlRWxlbWVudC5qcz82OWNlIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qcz8zMDBhIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFBhcmVudE5vZGUuanM/MmRiMyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanM/MWFkMyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qcz84NGYzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvd2l0aGluLmpzPzYyOGUiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanM/MWZkNCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qcz9iYTY2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZXhwYW5kVG9IYXNoTWFwLmpzPzQ2NTEiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9lbnVtcy5qcz9kNWE4Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93LmpzPzFiYjQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRWYXJpYXRpb24uanM/YjhhMSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzP2I1OWQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvZXZlbnRMaXN0ZW5lcnMuanM/NDhkOSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzP2FhYmUiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudC5qcz9mNWZhIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvd1Njcm9sbC5qcz8xZTk2Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvd1Njcm9sbEJhclguanM/MDc0OCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1Njcm9sbFBhcmVudC5qcz9hNjQ1Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFNjcm9sbFBhcmVudC5qcz9jMGViIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzPzliYTQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzPzEzZWUiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Q2xpcHBpbmdSZWN0LmpzPzQ4MDgiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Vmlld3BvcnRSZWN0LmpzP2Q5YTIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0RG9jdW1lbnRSZWN0LmpzP2QwODYiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlT2Zmc2V0cy5qcz83NjQzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanM/MTliMSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9mbGlwLmpzPzA1NjciLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qcz81MGFiIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2hpZGUuanM/MDAwMSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQuanM/MDc2ZCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanM/ZWU5NyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEFsdEF4aXMuanM/ZmMwMiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzPzVmNDAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0Tm9kZVNjcm9sbC5qcz8yZmMxIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEhUTUxFbGVtZW50U2Nyb2xsLmpzPzVlNDIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9vcmRlck1vZGlmaWVycy5qcz80NTBjIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvY3JlYXRlUG9wcGVyLmpzPzY2ODUiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9wb3BwZXIuanM/NGQ4MCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzP2M2MzMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZUJ5TmFtZS5qcz80NDk0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanM/NGQ3MCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL3VzZVBvcHBlci5qcz8wMjA3Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC9ob29rcy9lc20vdXNlU2FmZVN0YXRlLmpzP2E5NTYiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9jb250YWlucy5qcz8yMjNmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vdXNlQ2xpY2tPdXRzaWRlLmpzPzNhN2MiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9tZXJnZU9wdGlvbnNXaXRoUG9wcGVyQ29uZmlnLmpzPzUyNzgiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9Ecm9wZG93bk1lbnUuanM/NDJhZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZUNhbGxiYWNrUmVmLmpzP2I0OGEiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZWFjdC1hcmlhL3Nzci9kaXN0L2ltcG9ydC5tanM/N2Y3OCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL0Ryb3Bkb3duVG9nZ2xlLmpzPzVjN2MiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9TZWxlY3RhYmxlQ29udGV4dC5qcz9kNDc5Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vTmF2Q29udGV4dC5qcz8yMzIwIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vRGF0YUtleS5qcz84ZjcwIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vRHJvcGRvd25JdGVtLmpzPzA0OTkiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS91c2VXaW5kb3cuanM/OWVmNCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL0Ryb3Bkb3duLmpzP2JkNjIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L2hvb2tzL2VzbS91c2VFdmVudExpc3RlbmVyLmpzP2EyZTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vRHJvcGRvd25Db250ZXh0LmpzPzQ3ZDYiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vRHJvcGRvd25JdGVtLmpzPzJmZTIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vSW5wdXRHcm91cENvbnRleHQuanM/YTRjNSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9OYXZiYXJDb250ZXh0LmpzPzMwNGIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vdXNlV3JhcHBlZFJlZldpdGhXYXJuaW5nLmpzPzk1MTMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vRHJvcGRvd25NZW51LmpzP2ZhOTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vQnV0dG9uLmpzP2ZkYTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vRHJvcGRvd25Ub2dnbGUuanM/YTI5ZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9Ecm9wZG93bi5qcz85Yjk4Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vVGFiQ29udGV4dC5qcz8yMmI3Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vTmF2SXRlbS5qcz9lY2IyIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL05hdkxpbmsuanM/MWZhMSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9OYXZEcm9wZG93bi5qcz9jNTExIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL1VzZXJDb21wb25lbnQuanN4P2Q2ZGIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL0JyYW5kaW5nLmpzP2E3ODMiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9OYXYuanM/NTRkMiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9DYXJkSGVhZGVyQ29udGV4dC5qcz9hYmUwIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL05hdkl0ZW0uanM/ZDVjNyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9OYXYuanM/ZTY3ZCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9OYXZiYXJCcmFuZC5qcz9iM2E4Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL2NyZWF0ZUNoYWluZWRGdW5jdGlvbi5qcz80MDI4Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL0NvbGxhcHNlLmpzP2QyM2QiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWJvb3RzdHJhcC9lc20vTmF2YmFyQ29sbGFwc2UuanM/YjZiMCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9OYXZiYXJUb2dnbGUuanM/NTY0ZiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZU1lZGlhUXVlcnkuanM/ZDU2ZSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZUJyZWFrcG9pbnQuanM/NTc2MiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL2FjdGl2ZUVsZW1lbnQuanM/ODQ5NyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL01vZGFsTWFuYWdlci5qcz84NmI5Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vZ2V0U2Nyb2xsYmFyV2lkdGguanM/YmUxMSIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL3VzZVdhaXRGb3JET01SZWYuanM/NWViMiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvdWkvZXNtL05vb3BUcmFuc2l0aW9uLmpzPzUxYWQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS9JbXBlcmF0aXZlVHJhbnNpdGlvbi5qcz9jMzc0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9AcmVzdGFydC91aS9lc20vTW9kYWwuanM/YmJlYiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvQHJlc3RhcnQvaG9va3MvZXNtL3VzZVdpbGxVbm1vdW50LmpzP2Y4YTYiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L2hvb2tzL2VzbS91c2VVcGRhdGVkUmVmLmpzPzNiNTAiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL0ByZXN0YXJ0L3VpL2VzbS91dGlscy5qcz80Y2IxIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL09mZmNhbnZhc0JvZHkuanM/MzY1MyIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9PZmZjYW52YXNUb2dnbGluZy5qcz9hZTk1Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL01vZGFsQ29udGV4dC5qcz9hMDlkIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL0Fic3RyYWN0TW9kYWxIZWFkZXIuanM/YWJlMiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9PZmZjYW52YXNIZWFkZXIuanM/MmY2MiIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9PZmZjYW52YXNUaXRsZS5qcz8xNDEzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9kb20taGVscGVycy9lc20vcmVtb3ZlQ2xhc3MuanM/YTFhMCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvcmVhY3QtYm9vdHN0cmFwL2VzbS9Cb290c3RyYXBNb2RhbE1hbmFnZXIuanM/NzllNCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9ub2RlX21vZHVsZXMvZG9tLWhlbHBlcnMvZXNtL2FkZENsYXNzLmpzPzJlMjkiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vbm9kZV9tb2R1bGVzL2RvbS1oZWxwZXJzL2VzbS9oYXNDbGFzcy5qcz80NTVlIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL09mZmNhbnZhcy5qcz9mNTI0Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL05hdmJhck9mZmNhbnZhcy5qcz80MzkzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL05hdmJhci5qcz80MTFmIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ib290c3RyYXAvZXNtL0NvbnRhaW5lci5qcz80OWQ4Iiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL1F1ZXJ5Rm9ybS5oZWxwZXJzLmpzPzcwOGQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL2NvbXBvbmVudHMvUXVlcnlGb3JtLmpzeD80MDMyIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL1F1ZXJ5UGFuZWwuanN4PzMwZDEiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL2NvbXBvbmVudHMvVG9wTmF2aWdhdGlvbkJhci5qc3g/ZWUwOCIsIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvQ2Fvc0RCQ29yZUNvbXBvbmVudHMvLi9zcmMvY29tcG9uZW50cy9IZWFkZXIuanN4P2I1ZmIiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL2NvbXBvbmVudHMvRm9vdGVyLmpzeD8xOGQzIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL0F3YWl0LmpzeD9hNDhkIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94LmpzeD9iYWNiIiwid2VicGFjazovL0Nhb3NEQldlYnVpMi9DYW9zREJDb3JlQ29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL0NhcmQuanN4PzEzNTQiLCJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyL0Nhb3NEQkNvcmVDb21wb25lbnRzLy4vc3JjL2luZGV4LnNjc3M/ZWQ3NSJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSwgKGZ1bmN0aW9uIHdlYnBhY2tMb2FkT3B0aW9uYWxFeHRlcm5hbE1vZHVsZSgpIHsgdHJ5IHsgcmV0dXJuIHJlcXVpcmUoXCJAaW5kaXNjYWxlL2Nhb3NkYi13ZWJ1aS1pbmZvLXNlcnZpY2VcIik7IH0gY2F0Y2goZSkge30gfSgpKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJSZWFjdFwiLCBcIkNhb3NEQkluZm9TZXJ2aWNlXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkNhb3NEQkNvcmVDb21wb25lbnRzXCJdID0gZmFjdG9yeShyZXF1aXJlKFwicmVhY3RcIiksIChmdW5jdGlvbiB3ZWJwYWNrTG9hZE9wdGlvbmFsRXh0ZXJuYWxNb2R1bGUoKSB7IHRyeSB7IHJldHVybiByZXF1aXJlKFwiQGluZGlzY2FsZS9jYW9zZGItd2VidWktaW5mby1zZXJ2aWNlXCIpOyB9IGNhdGNoKGUpIHt9IH0oKSkpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkNhb3NEQkNvcmVDb21wb25lbnRzXCJdID0gZmFjdG9yeShyb290W1wiUmVhY3RcIl0sIHJvb3RbXCJDYW9zREJJbmZvU2VydmljZVwiXSk7XG59KShzZWxmLCBmdW5jdGlvbihfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX182MzlfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMTg5X18pIHtcbnJldHVybiAiLCIvKiFcblx0Q29weXJpZ2h0IChjKSAyMDE4IEplZCBXYXRzb24uXG5cdExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG5cdGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cdHZhciBuYXRpdmVDb2RlU3RyaW5nID0gJ1tuYXRpdmUgY29kZV0nO1xuXG5cdGZ1bmN0aW9uIGNsYXNzTmFtZXMoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKCFhcmcpIGNvbnRpbnVlO1xuXG5cdFx0XHR2YXIgYXJnVHlwZSA9IHR5cGVvZiBhcmc7XG5cblx0XHRcdGlmIChhcmdUeXBlID09PSAnc3RyaW5nJyB8fCBhcmdUeXBlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRjbGFzc2VzLnB1c2goYXJnKTtcblx0XHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG5cdFx0XHRcdGlmIChhcmcubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dmFyIGlubmVyID0gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdFx0XHRcdGlmIChpbm5lcikge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGlubmVyKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoYXJnVHlwZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0aWYgKGFyZy50b1N0cmluZyAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyAmJiAhYXJnLnRvU3RyaW5nLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ1tuYXRpdmUgY29kZV0nKSkge1xuXHRcdFx0XHRcdGNsYXNzZXMucHVzaChhcmcudG9TdHJpbmcoKSk7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gYXJnKSB7XG5cdFx0XHRcdFx0aWYgKGhhc093bi5jYWxsKGFyZywga2V5KSAmJiBhcmdba2V5XSkge1xuXHRcdFx0XHRcdFx0Y2xhc3Nlcy5wdXNoKGtleSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0Y2xhc3NOYW1lcy5kZWZhdWx0ID0gY2xhc3NOYW1lcztcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGNsYXNzTmFtZXM7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZGVmaW5lLmFtZCA9PT0gJ29iamVjdCcgJiYgZGVmaW5lLmFtZCkge1xuXHRcdC8vIHJlZ2lzdGVyIGFzICdjbGFzc25hbWVzJywgY29uc2lzdGVudCB3aXRoIG5wbSBwYWNrYWdlIG5hbWVcblx0XHRkZWZpbmUoJ2NsYXNzbmFtZXMnLCBbXSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGNsYXNzTmFtZXM7XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0d2luZG93LmNsYXNzTmFtZXMgPSBjbGFzc05hbWVzO1xuXHR9XG59KCkpO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuY2Fvc2RiLWYtcXVlcnktY3FsLWhpbnR7Ym9yZGVyLXJhZGl1czoycmVtO2JhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTtjb2xvcjojMjYyNjI2O3BhZGRpbmc6LjFyZW0gLjRyZW19LmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3Vne2Rpc3BsYXk6bm9uZX1uYXYgLm5hdmJhci1jb2xsYXBzZXthbGlnbi1pdGVtczpzdGFydDtmbGV4LXdyYXA6d3JhcH1uYXYgLm5hdmJhci1jb2xsYXBzZSBmb3Jte2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4sLmNhb3NkYi1mLXF1ZXJ5LXBhbmVse21hcmdpbi10b3A6LjVyZW07d2lkdGg6MTAwJTtvcmRlcjoxfS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS1mb3JtLC5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktZm9ybXtvcmRlcjp1bnNldDtoZWlnaHQ6NDRweDtwYWRkaW5nLWxlZnQ6MnJlbTtwYWRkaW5nLXRvcDouNXJlbTtwYWRkaW5nLXJpZ2h0OjJyZW07cGFkZGluZy1ib3R0b206LjVyZW07Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjJyZW19LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm06aG92ZXIsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS1mb3JtOmhvdmVyLC5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktZm9ybS5mb2N1c3tib3gtc2hhZG93OjAgMXB4IDZweCByZ2JhKDMyLDMzLDM2LC4yOCl9LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMub3BlbiBvbC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1ZywuY2Fvc2RiLWYtcXVlcnktcGFuZWwgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMub3BlbiBvbC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1Z3ttYXJnaW4tdG9wOi41cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jazttYXgtaGVpZ2h0OjIwMHB4O3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93LXk6YXV0bztib3gtc2hhZG93OjAgNHB4IDZweCByZ2JhKDMyLDMzLDM2LC4yOCk7cGFkZGluZzowcHh9LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMub3BlbiBvbC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1ZyBsaSwuY2Fvc2RiLWYtcXVlcnktcGFuZWwgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMub3BlbiBvbC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1ZyBsaXtwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbTtoZWlnaHQ6MjRweDtsaXN0LXN0eWxlLXR5cGU6bm9uZX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiAuY2Fvc2RiLWYtcXVlcnktZm9ybS5mb2N1cy5vcGVuIG9sLmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3VnIGxpLmhpZ2hsaWdodCwuY2Fvc2RiLWYtcXVlcnktcGFuZWwgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMub3BlbiBvbC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1ZyBsaS5oaWdobGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZDlkOWQ5fS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS1mb3JtLmZvY3VzLm9wZW4gb2wuY2Fvc2RiLWYtcXVlcnktZm9ybS1zdWcgbGk6aG92ZXIsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS1mb3JtLmZvY3VzLm9wZW4gb2wuY2Fvc2RiLWYtcXVlcnktZm9ybS1zdWcgbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDlkOWQ5fS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS1mb3JtLmZvY3VzLnN1Ym1pdC5vcGVuIC5jYW9zZGItZi1xdWVyeS1mb3JtLXN1ZywuY2Fvc2RiLWYtcXVlcnktcGFuZWwgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0uZm9jdXMuc3VibWl0Lm9wZW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3Vne2Rpc3BsYXk6bm9uZX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiAuY2Fvc2RiLWYtcXVlcnktZm9ybSBidXR0b24sLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS1mb3JtIGJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7Ym9yZGVyOm5vbmV9LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0gaW5wdXQsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS1mb3JtIGlucHV0e2JvcmRlcjpub25lfS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS1mb3JtIGlucHV0OmZvY3VzLC5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS1mb3JtIGlucHV0OmZvY3VzLXZpc2libGUsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS1mb3JtIGlucHV0OmZvY3VzLC5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktZm9ybSBpbnB1dDpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiBmb3JtLC5jYW9zZGItZi1xdWVyeS1wYW5lbCBmb3Jte2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiAuY2Fvc2RiLWYtcXVlcnktdGFiLWxpc3QsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS10YWItbGlzdHttYXJnaW4tdG9wOi41cmVtO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiAuY2Fvc2RiLWYtcXVlcnktdGFiLWZpbHRlcnMsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVyc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwfS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyBpbnB1dC5mb3JtLWNvbnRyb2wsLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyBpbnB1dC5mb3JtLWNvbnRyb2x7ZGlzcGxheTp1bnNldDt3aWR0aDp1bnNldH0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkOmZvY3VzLXdpdGhpbiAuY2Fvc2RiLWYtcXVlcnktdGFiLC5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktdGFie2hlaWdodDo0NHB4O21hcmdpbi1yaWdodDoxcmVtO3BhZGRpbmc6NnB4O2JhY2tncm91bmQtY29sb3I6dW5zZXQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLWJvdHRvbTouMnJlbSBzb2xpZCByZ2JhKDAsMCwwLDApfS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluIC5jYW9zZGItZi1xdWVyeS10YWIuYWN0aXZlLC5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktdGFiLmFjdGl2ZXtib3JkZXItYm90dG9tOi4ycmVtIHNvbGlkIGdyYXl9LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZDpmb2N1cy13aXRoaW4gLmNhb3NkYi1mLXF1ZXJ5LWZpbHRlci1wcm9wZXJ0eS1zZWxlY3RvciwuY2Fvc2RiLWYtcXVlcnktcGFuZWwgLmNhb3NkYi1mLXF1ZXJ5LWZpbHRlci1wcm9wZXJ0eS1zZWxlY3RvcntmbGV4LWJhc2lzOjEwMCV9QG1lZGlhKG1pbi13aWR0aDogOTkycHgpey5jYW9zZGItZi1xdWVyeS1wYW5lbCAuY2Fvc2RiLWYtcXVlcnktdGFiLWZpbHRlcnN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCBtYXgtY29udGVudCBhdXRvIG1heC1jb250ZW50O2dyaWQtY29sdW1uLWdhcDouNXJlbTtwYWRkaW5nOi4ycmVtIDByZW19LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyBpbnB1dC5mb3JtLWNvbnRyb2x7ZGlzcGxheTp1bnNldDt3aWR0aDp1bnNldH0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2Vke21hcmdpbi10b3A6MDt3aWR0aDp1bnNldDtvcmRlcjp1bnNldH0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkIGZvcm17ZmxleC1kaXJlY3Rpb246cm93fS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQgLmNhb3NkYi1mLXF1ZXJ5LWZpbHRlcnMtdG9nZ2xle2Rpc3BsYXk6bm9uZX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkIC5jYW9zZGItZi1xdWVyeS10YWItbGlzdHttYXJnaW4tdG9wOjByZW19LmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZCAuY2Fvc2RiLWYtcXVlcnktdGFie2hlaWdodDozOHB4fS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQgLmNhb3NkYi1mLXF1ZXJ5LXRhYi1maWx0ZXJze2Rpc3BsYXk6bm9uZX0uY2Fvc2RiLWYtcXVlcnktcGFuZWwuY29uZGVuc2VkIC5jYW9zZGItZi1xdWVyeS1mb3Jte2hlaWdodDozOHB4O29yZGVyOjE7cGFkZGluZy1sZWZ0OjFyZW07cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1yaWdodDoxcmVtO3BhZGRpbmctYm90dG9tOi4zcmVtfS5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0gLmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3Vne2Rpc3BsYXk6bm9uZX19LnVzZXItY29tcG9uZW50IC5hbGVydHtwYWRkaW5nLXRvcDouMzc1cmVtO3BhZGRpbmctYm90dG9tOi4zNzVyZW07Zm9udC1zaXplOjFyZW07bWFyZ2luOjB9aGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjE1KTtib3JkZXItcmFkaXVzOjB9Zm9vdGVye2NvbG9yOiM4Nzg3ODd9Zm9vdGVyIC5uYXZ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2EwYTBhMH1mb290ZXIgLm5hdi1saW5re2NvbG9yOiM4Nzg3ODcgIWltcG9ydGFudH1mb290ZXIgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2ZDZkNmQgIWltcG9ydGFudH1mb290ZXIgLmZvb3Rlci1ib2R5e2JvcmRlci10b3A6MXB4IHNvbGlkICNiYWJhYmE7YmFja2dyb3VuZC1jb2xvcjojZDNkM2QzO21pbi1oZWlnaHQ6MjByZW19Zm9vdGVyIC5mb290ZXItYm9yZGVye2hlaWdodDozcmVtO2JveC1zaGFkb3c6MHB4IC01cHggN3B4IC01cHggcmdiYSgwLDAsMCwuNCkgaW5zZXQ7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAtNXB4IDdweCAtNXB4IHJnYmEoMCwwLDAsLjQpIGluc2V0Oy1tb3otYm94LXNoYWRvdzowcHggLTVweCA2cHggLTdweCByZ2JhKDAsMCwwLC40KSBpbnNldH0uY2Fvc2RiLWNoZWNrYm94e2N1cnNvcjpwb2ludGVyfS5jYW9zZGItY2hlY2tib3ggLmNhb3NkYi1jaGVja2JveC1pY29ue2ZvbnQtc2l6ZToxLjNlbX0uY2Fvc2RiLWNoZWNrYm94IC5jYW9zZGItY2hlY2stYm94LWlucHV0e2Rpc3BsYXk6bm9uZX0uY2Fvc2RiLWNoZWNrYm94LnJlYWQtb25seXtjdXJzb3I6YXV0b30uY29sb3ItbGlnaHQtZ3JlZW57Y29sb3I6I2I0ZTYwMH0ubWluaWNhcmR7Ym9yZGVyOjFweCBzb2xpZCByZWQ7d2lkdGg6NDAwcHg7ZGlzcGxheTpmbGV4fS5taW5pY2FyZCAubWluaWNhcmQtdGl0bGV7YmFja2dyb3VuZC1jb2xvcjpyZWR9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL2NvbXBvbmVudHMvUXVlcnlGb3JtLnNjc3NcIixcIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3NcIixcIndlYnBhY2s6Ly8uL3NyYy9pbmRleC5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUlBLHlCQUNFLGtCQUFBLENBQ0Esd0JBQUEsQ0FDQSxhQUFBLENBQ0EsbUJBQUEsQ0FHRix5QkFDRSxZQUFBLENBR0YscUJBQ0UsaUJBQUEsQ0FDQSxjQUFBLENBRUEsMEJBQ0UsWUFBQSxDQUNBLHFCQUFBLENBSUosbUVBRUUsZ0JBQUEsQ0FDQSxVQUFBLENBQ0EsT0FBQSxDQUVBLDZHQUNFLFdBQUEsQ0FDQSxXQUFBLENBQ0EsaUJBQUEsQ0FDQSxpQkFBQSxDQUNBLGtCQUFBLENBQ0Esb0JBQUEsQ0FDQSxxQkFBQSxDQUNBLHFCQUFBLENBQ0Esa0JBQUEsQ0FFQSxrUEFFRSx1Q0FBQSxDQUtFLHlMQUNFLGdCQUFBLENBQ0EscUJBQUEsQ0FDQSxvQkFBQSxDQUNBLGdCQUFBLENBQ0EsaUJBQUEsQ0FDQSxlQUFBLENBQ0EsdUNBQUEsQ0FDQSxXQUFBLENBRUEsK0xBQ0Usa0JBQUEsQ0FDQSxtQkFBQSxDQUNBLFdBQUEsQ0FDQSxvQkFBQSxDQUNBLG1OQUNFLHdCQUFBLENBRUYsMk1BQ0Usd0JBQUEsQ0FPSixtTUFDRSxZQUFBLENBTVIsMkhBQ0Usd0JBQUEsQ0FDQSxXQUFBLENBR0YseUhBQ0UsV0FBQSxDQUVBLDBSQUVFLFlBQUEsQ0FLTiw2RUFDRSxxQkFBQSxDQUdGLHFIQUNFLGdCQUFBLENBQ0EsaUJBQUEsQ0FDQSxrQkFBQSxDQUdGLDJIQUNFLFlBQUEsQ0FDQSxrQkFBQSxDQUNBLGNBQUEsQ0FFQSxpS0FDRSxhQUFBLENBQ0EsV0FBQSxDQUlKLDJHQUNFLFdBQUEsQ0FDQSxpQkFBQSxDQUNBLFdBQUEsQ0FDQSxzQkFBQSxDQUNBLFdBQUEsQ0FDQSx1Q0FBQSxDQUNBLHlIQUNFLDhCQUFBLENBSUoscUpBQ0UsZUFBQSxDQ3BFQSx5QkQwRUEsa0RBQ0UsWUFBQSxDQUNBLDhEQUFBLENBQ0EscUJBQUEsQ0FDQSxrQkFBQSxDQUVBLHFFQUNFLGFBQUEsQ0FDQSxXQUFBLENBS04sZ0NBQ0UsWUFBQSxDQUNBLFdBQUEsQ0FDQSxXQUFBLENBRUEscUNBQ0Usa0JBQUEsQ0FHRiwrREFDRSxZQUFBLENBR0YseURBQ0UsZUFBQSxDQUdGLG9EQUNFLFdBQUEsQ0FHRiw0REFDRSxZQUFBLENBR0YscURBQ0UsV0FBQSxDQUNBLE9BQUEsQ0FDQSxpQkFBQSxDQUNBLGlCQUFBLENBQ0Esa0JBQUEsQ0FDQSxvQkFBQSxDQUVBLDhFQUNFLFlBQUEsQ0FBQSxDRXBMUix1QkFDRSxtQkFBQSxDQUNBLHNCQUFBLENBQ0EsY0FBQSxDQUNBLFFBQUEsQ0FHRixPQUNFLHVDQUFBLENBQ0EsZUFBQSxDQUdGLE9BQ0UsYUFBQSxDQUVBLFlBQ0UsK0JBQUEsQ0FFRixpQkFDRSx3QkFBQSxDQUVGLHVCQUNFLHdCQUFBLENBRUYsb0JBQ0UsNEJBQUEsQ0FDQSx3QkE1QmdCLENBNkJoQixnQkFBQSxDQUVGLHNCQUNFLFdBQUEsQ0FDQSxpREFBQSxDQUNBLHlEQUFBLENBQ0Esc0RBQUEsQ0FJSixpQkFTRSxjQUFBLENBUkEsdUNBQ0UsZUFBQSxDQUdGLHlDQUNFLFlBQUEsQ0FLRiwyQkFDRSxXQUFBLENBSUosbUJBQ0UsYUFBQSxDQUdGLFVBQ0Usb0JBQUEsQ0FDQSxXQUFBLENBQ0EsWUFBQSxDQUVBLDBCQUNFLG9CQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcImJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1xcXCI7XFxuQGltcG9ydCBcXFwiYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzXFxcIjtcXG5AaW1wb3J0IFxcXCJib290c3RyYXAvc2Nzcy9taXhpbnNcXFwiO1xcblxcbi5jYW9zZGItZi1xdWVyeS1jcWwtaGludCB7XFxuICBib3JkZXItcmFkaXVzOiAycmVtO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHdoaXRlLCAxNSUpO1xcbiAgY29sb3I6IGxpZ2h0ZW4oYmxhY2ssIDE1JSk7XFxuICBwYWRkaW5nOiAwLjFyZW0gMC40cmVtO1xcbn1cXG5cXG4uY2Fvc2RiLWYtcXVlcnktZm9ybS1zdWcge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxubmF2IC5uYXZiYXItY29sbGFwc2Uge1xcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xcbiAgZmxleC13cmFwOiB3cmFwO1xcblxcbiAgZm9ybSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICB9XFxufVxcblxcbi5jYW9zZGItZi1xdWVyeS1wYW5lbC5jb25kZW5zZWQ6Zm9jdXMtd2l0aGluLFxcbi5jYW9zZGItZi1xdWVyeS1wYW5lbCB7XFxuICBtYXJnaW4tdG9wOiAwLjVyZW07XFxuICB3aWR0aDogMTAwJTtcXG4gIG9yZGVyOiAxO1xcblxcbiAgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0ge1xcbiAgICBvcmRlcjogdW5zZXQ7XFxuICAgIGhlaWdodDogNDRweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnJlbTtcXG5cXG4gICAgJjpob3ZlcixcXG4gICAgJi5mb2N1cyB7XFxuICAgICAgYm94LXNoYWRvdzogMCAxcHggNnB4IHJnYmEoMzIsIDMzLCAzNiwgMC4yOCk7XFxuICAgIH1cXG5cXG4gICAgJi5mb2N1cyB7XFxuICAgICAgJi5vcGVuIHtcXG4gICAgICAgIG9sLmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3VnIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgzMiwgMzMsIDM2LCAwLjI4KTtcXG4gICAgICAgICAgcGFkZGluZzogMHB4O1xcblxcbiAgICAgICAgICBsaSB7XFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcXG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxuICAgICAgICAgICAgJi5oaWdobGlnaHQge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKHdoaXRlLCAxNSUpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbih3aGl0ZSwgMTUlKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICAgJi5zdWJtaXQge1xcbiAgICAgICAgJi5vcGVuIHtcXG4gICAgICAgICAgLmNhb3NkYi1mLXF1ZXJ5LWZvcm0tc3VnIHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGJ1dHRvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG4gICAgICBib3JkZXI6IG5vbmU7XFxuICAgIH1cXG5cXG4gICAgaW5wdXQge1xcbiAgICAgIGJvcmRlcjogbm9uZTtcXG5cXG4gICAgICAmOmZvY3VzLFxcbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgZm9ybSB7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICB9XFxuXFxuICAuY2Fvc2RiLWYtcXVlcnktdGFiLWxpc3Qge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcXG4gIH1cXG5cXG4gIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGZsZXgtd3JhcDogd3JhcDtcXG5cXG4gICAgaW5wdXQuZm9ybS1jb250cm9sIHtcXG4gICAgICBkaXNwbGF5OiB1bnNldDtcXG4gICAgICB3aWR0aDogdW5zZXQ7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5jYW9zZGItZi1xdWVyeS10YWIge1xcbiAgICBoZWlnaHQ6IDQ0cHg7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcXG4gICAgcGFkZGluZzogNnB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgICYuYWN0aXZlIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgZ3JheTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNhb3NkYi1mLXF1ZXJ5LWZpbHRlci1wcm9wZXJ0eS1zZWxlY3RvciB7XFxuICAgIGZsZXgtYmFzaXM6IDEwMCU7XFxuICB9XFxufVxcblxcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcXG4gIC5jYW9zZGItZi1xdWVyeS1wYW5lbCB7XFxuICAgIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyB7XFxuICAgICAgZGlzcGxheTogZ3JpZDtcXG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IG1heC1jb250ZW50IGF1dG8gbWF4LWNvbnRlbnQ7XFxuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAwLjVyZW07XFxuICAgICAgcGFkZGluZzogMC4ycmVtIDByZW07XFxuXFxuICAgICAgaW5wdXQuZm9ybS1jb250cm9sIHtcXG4gICAgICAgIGRpc3BsYXk6IHVuc2V0O1xcbiAgICAgICAgd2lkdGg6IHVuc2V0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLmNhb3NkYi1mLXF1ZXJ5LXBhbmVsLmNvbmRlbnNlZCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICAgIHdpZHRoOiB1bnNldDtcXG4gICAgb3JkZXI6IHVuc2V0O1xcblxcbiAgICBmb3JtIHtcXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICB9XFxuXFxuICAgIC5jYW9zZGItZi1xdWVyeS1maWx0ZXJzLXRvZ2dsZSB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcblxcbiAgICAuY2Fvc2RiLWYtcXVlcnktdGFiLWxpc3Qge1xcbiAgICAgIG1hcmdpbi10b3A6IDByZW07XFxuICAgIH1cXG5cXG4gICAgLmNhb3NkYi1mLXF1ZXJ5LXRhYiB7XFxuICAgICAgaGVpZ2h0OiAzOHB4O1xcbiAgICB9XFxuXFxuICAgIC5jYW9zZGItZi1xdWVyeS10YWItZmlsdGVycyB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcblxcbiAgICAuY2Fvc2RiLWYtcXVlcnktZm9ybSB7XFxuICAgICAgaGVpZ2h0OiAzOHB4O1xcbiAgICAgIG9yZGVyOiAxO1xcbiAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gICAgICBwYWRkaW5nLXRvcDogMC4zcmVtO1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxuICAgICAgcGFkZGluZy1ib3R0b206IDAuM3JlbTtcXG5cXG4gICAgICAuY2Fvc2RiLWYtcXVlcnktZm9ybS1zdWcge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxcbi8vXFxuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxcbi8vXFxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcXG4vL1xcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cXG5cXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXFxuLy9cXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXFxuLy8gICAgbWRcXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxcbi8vICAgIG1kXFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXFxuLy8gICAgbWRcXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XFxuICBAaWYgbm90ICRuIHtcXG4gICAgQGVycm9yIFxcXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXFxcIjtcXG4gIH1cXG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xcbn1cXG5cXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXFxuLy9cXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXFxuLy8gICAgNTc2cHhcXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcXG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XFxuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XFxufVxcblxcbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2ZcXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXFxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxcbi8vXFxuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxcbi8vICAgIDc2Ny45OHB4XFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XFxuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XFxufVxcblxcbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXFxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXFxuLy9cXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcXG4vLyAgICBcXFwiXFxcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXFxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXFxuLy8gICAgXFxcIi1zbVxcXCJcXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcXFwiXFxcIiwgXFxcIi0jeyRuYW1lfVxcXCIpO1xcbn1cXG5cXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXFxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XFxuICBAaWYgJG1pbiB7XFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XFxuICAgICAgQGNvbnRlbnQ7XFxuICAgIH1cXG4gIH0gQGVsc2Uge1xcbiAgICBAY29udGVudDtcXG4gIH1cXG59XFxuXFxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xcbiAgQGlmICRtYXgge1xcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xcbiAgICAgIEBjb250ZW50O1xcbiAgICB9XFxuICB9IEBlbHNlIHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXFxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXFxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xcblxcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XFxuICAgICAgQGNvbnRlbnQ7XFxuICAgIH1cXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xcbiAgICAgIEBjb250ZW50O1xcbiAgICB9XFxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XFxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xcbiAgICAgIEBjb250ZW50O1xcbiAgICB9XFxuICB9XFxufVxcblxcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXFxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcXG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcXG5cXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xcbiAgICAgIEBjb250ZW50O1xcbiAgICB9XFxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XFxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xcbiAgICAgIEBjb250ZW50O1xcbiAgICB9XFxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XFxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XFxuICAgICAgQGNvbnRlbnQ7XFxuICAgIH1cXG4gIH1cXG59XFxuXCIsXCJAaW1wb3J0IFxcXCIuL2NvbXBvbmVudHMvUXVlcnlGb3JtXFxcIjtcXG5cXG4kZm9vdGVyLWJvZHktY29sb3I6IGxpZ2h0Z3JheTtcXG5cXG4udXNlci1jb21wb25lbnQgLmFsZXJ0IHtcXG4gIHBhZGRpbmctdG9wOiAwLjM3NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjM3NXJlbTtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIG1hcmdpbjogMDtcXG59XFxuXFxuaGVhZGVyIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuXFxuZm9vdGVyIHtcXG4gIGNvbG9yOiBkYXJrZW4oJGZvb3Rlci1ib2R5LWNvbG9yLCAzMCUpO1xcblxcbiAgLm5hdiB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGZvb3Rlci1ib2R5LWNvbG9yLCAyMCUpO1xcbiAgfVxcbiAgLm5hdi1saW5rIHtcXG4gICAgY29sb3I6IGRhcmtlbigkZm9vdGVyLWJvZHktY29sb3IsIDMwJSkgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5uYXYtbGluazpob3ZlciB7XFxuICAgIGNvbG9yOiBkYXJrZW4oJGZvb3Rlci1ib2R5LWNvbG9yLCA0MCUpICFpbXBvcnRhbnQ7XFxuICB9XFxuICAuZm9vdGVyLWJvZHkge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgZGFya2VuKCRmb290ZXItYm9keS1jb2xvciwgMTAlKTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1ib2R5LWNvbG9yO1xcbiAgICBtaW4taGVpZ2h0OiAyMHJlbTtcXG4gIH1cXG4gIC5mb290ZXItYm9yZGVyIHtcXG4gICAgaGVpZ2h0OiAzcmVtO1xcbiAgICBib3gtc2hhZG93OiAwcHggLTVweCA3cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuNCkgaW5zZXQ7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IC01cHggN3B4IC01cHggcmdiYSgwLCAwLCAwLCAwLjQpIGluc2V0O1xcbiAgICAtbW96LWJveC1zaGFkb3c6IDBweCAtNXB4IDZweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC40KSBpbnNldDtcXG4gIH1cXG59XFxuXFxuLmNhb3NkYi1jaGVja2JveCB7XFxuICAuY2Fvc2RiLWNoZWNrYm94LWljb24ge1xcbiAgICBmb250LXNpemU6IDEuM2VtO1xcbiAgfVxcblxcbiAgLmNhb3NkYi1jaGVjay1ib3gtaW5wdXQge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgY3Vyc29yOiBwb2ludGVyO1xcblxcbiAgJi5yZWFkLW9ubHkge1xcbiAgICBjdXJzb3I6IGF1dG87XFxuICB9XFxufVxcblxcbi5jb2xvci1saWdodC1ncmVlbiB7XFxuICBjb2xvcjogI2I0ZTYwMDtcXG59XFxuXFxuLm1pbmljYXJkIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcXG4gIHdpZHRoOiA0MDBweDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuXFxuICAubWluaWNhcmQtdGl0bGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogVXNlIGludmFyaWFudCgpIHRvIGFzc2VydCBzdGF0ZSB3aGljaCB5b3VyIHByb2dyYW0gYXNzdW1lcyB0byBiZSB0cnVlLlxuICpcbiAqIFByb3ZpZGUgc3ByaW50Zi1zdHlsZSBmb3JtYXQgKG9ubHkgJXMgaXMgc3VwcG9ydGVkKSBhbmQgYXJndW1lbnRzXG4gKiB0byBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgYnJva2UgYW5kIHdoYXQgeW91IHdlcmVcbiAqIGV4cGVjdGluZy5cbiAqXG4gKiBUaGUgaW52YXJpYW50IG1lc3NhZ2Ugd2lsbCBiZSBzdHJpcHBlZCBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGludmFyaWFudFxuICogd2lsbCByZW1haW4gdG8gZW5zdXJlIGxvZ2ljIGRvZXMgbm90IGRpZmZlciBpbiBwcm9kdWN0aW9uLlxuICovXG5cbnZhciBpbnZhcmlhbnQgPSBmdW5jdGlvbihjb25kaXRpb24sIGZvcm1hdCwgYSwgYiwgYywgZCwgZSwgZikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgcmVxdWlyZXMgYW4gZXJyb3IgbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdmFyIGVycm9yO1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICdNaW5pZmllZCBleGNlcHRpb24gb2NjdXJyZWQ7IHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCAnICtcbiAgICAgICAgJ2ZvciB0aGUgZnVsbCBlcnJvciBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFyZ3MgPSBbYSwgYiwgYywgZCwgZSwgZl07XG4gICAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgIGZvcm1hdC5yZXBsYWNlKC8lcy9nLCBmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107IH0pXG4gICAgICApO1xuICAgICAgZXJyb3IubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB9XG5cbiAgICBlcnJvci5mcmFtZXNUb1BvcCA9IDE7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgaW52YXJpYW50J3Mgb3duIGZyYW1lXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW52YXJpYW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gYWxsO1xuXG52YXIgX2NyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyID0gcmVxdWlyZSgnLi91dGlscy9jcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcicpO1xuXG52YXIgX2NyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gYWxsKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgdmFsaWRhdG9ycyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHZhbGlkYXRvcnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBmdW5jdGlvbiBhbGxQcm9wVHlwZXMoKSB7XG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICB9XG5cbiAgICB2YXIgZXJyb3IgPSBudWxsO1xuXG4gICAgdmFsaWRhdG9ycy5mb3JFYWNoKGZ1bmN0aW9uICh2YWxpZGF0b3IpIHtcbiAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc3VsdCA9IHZhbGlkYXRvci5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgIGVycm9yID0gcmVzdWx0O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG5cbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIyLmRlZmF1bHQpKGFsbFByb3BUeXBlcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcjtcbi8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cbi8vIE1vc3RseSB0YWtlbiBmcm9tIFJlYWN0UHJvcFR5cGVzLlxuXG5mdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICBmdW5jdGlvbiBjaGVja1R5cGUoaXNSZXF1aXJlZCwgcHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgdmFyIGNvbXBvbmVudE5hbWVTYWZlID0gY29tcG9uZW50TmFtZSB8fCAnPDxhbm9ueW1vdXM+Pic7XG4gICAgdmFyIHByb3BGdWxsTmFtZVNhZmUgPSBwcm9wRnVsbE5hbWUgfHwgcHJvcE5hbWU7XG5cbiAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgIHJldHVybiBuZXcgRXJyb3IoJ1JlcXVpcmVkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWVTYWZlICsgJ2Agd2FzIG5vdCBzcGVjaWZpZWQgJyArICgnaW4gYCcgKyBjb21wb25lbnROYW1lU2FmZSArICdgLicpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gNiA/IF9sZW4gLSA2IDogMCksIF9rZXkgPSA2OyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSA2XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGUuYXBwbHkodW5kZWZpbmVkLCBbcHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lU2FmZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZVNhZmVdLmNvbmNhdChhcmdzKSk7XG4gIH1cblxuICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgcmV0dXJuIGNoYWluZWRDaGVja1R5cGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTsiLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gcmVxdWlyZSgnLi9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQnKTtcblxuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpIHt9XG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0KCkge31cbmVtcHR5RnVuY3Rpb25XaXRoUmVzZXQucmVzZXRXYXJuaW5nQ2FjaGUgPSBlbXB0eUZ1bmN0aW9uO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBzaGltKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgaWYgKHNlY3JldCA9PT0gUmVhY3RQcm9wVHlwZXNTZWNyZXQpIHtcbiAgICAgIC8vIEl0IGlzIHN0aWxsIHNhZmUgd2hlbiBjYWxsZWQgZnJvbSBSZWFjdC5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcihcbiAgICAgICdDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiAnICtcbiAgICAgICdVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICk7XG4gICAgZXJyLm5hbWUgPSAnSW52YXJpYW50IFZpb2xhdGlvbic7XG4gICAgdGhyb3cgZXJyO1xuICB9O1xuICBzaGltLmlzUmVxdWlyZWQgPSBzaGltO1xuICBmdW5jdGlvbiBnZXRTaGltKCkge1xuICAgIHJldHVybiBzaGltO1xuICB9O1xuICAvLyBJbXBvcnRhbnQhXG4gIC8vIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBwcm9kdWN0aW9uIHZlcnNpb24gaW4gYC4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMuanNgLlxuICB2YXIgUmVhY3RQcm9wVHlwZXMgPSB7XG4gICAgYXJyYXk6IHNoaW0sXG4gICAgYmlnaW50OiBzaGltLFxuICAgIGJvb2w6IHNoaW0sXG4gICAgZnVuYzogc2hpbSxcbiAgICBudW1iZXI6IHNoaW0sXG4gICAgb2JqZWN0OiBzaGltLFxuICAgIHN0cmluZzogc2hpbSxcbiAgICBzeW1ib2w6IHNoaW0sXG5cbiAgICBhbnk6IHNoaW0sXG4gICAgYXJyYXlPZjogZ2V0U2hpbSxcbiAgICBlbGVtZW50OiBzaGltLFxuICAgIGVsZW1lbnRUeXBlOiBzaGltLFxuICAgIGluc3RhbmNlT2Y6IGdldFNoaW0sXG4gICAgbm9kZTogc2hpbSxcbiAgICBvYmplY3RPZjogZ2V0U2hpbSxcbiAgICBvbmVPZjogZ2V0U2hpbSxcbiAgICBvbmVPZlR5cGU6IGdldFNoaW0sXG4gICAgc2hhcGU6IGdldFNoaW0sXG4gICAgZXhhY3Q6IGdldFNoaW0sXG5cbiAgICBjaGVja1Byb3BUeXBlczogZW1wdHlGdW5jdGlvbldpdGhSZXNldCxcbiAgICByZXNldFdhcm5pbmdDYWNoZTogZW1wdHlGdW5jdGlvblxuICB9O1xuXG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG4iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBSZWFjdElzID0gcmVxdWlyZSgncmVhY3QtaXMnKTtcblxuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBkZXZlbG9wbWVudCBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICB2YXIgdGhyb3dPbkRpcmVjdEFjY2VzcyA9IHRydWU7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFR5cGVDaGVja2VycycpKFJlYWN0SXMuaXNFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcycpKCk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gJ1NFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxMX0JFX0ZJUkVEJztcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdFByb3BUeXBlc1NlY3JldDtcbiIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4vKlxuIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYWE9cmVxdWlyZShcInJlYWN0XCIpLGNhPXJlcXVpcmUoXCJzY2hlZHVsZXJcIik7ZnVuY3Rpb24gcChhKXtmb3IodmFyIGI9XCJodHRwczovL3JlYWN0anMub3JnL2RvY3MvZXJyb3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD1cIithLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWIrPVwiJmFyZ3NbXT1cIitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW2NdKTtyZXR1cm5cIk1pbmlmaWVkIFJlYWN0IGVycm9yICNcIithK1wiOyB2aXNpdCBcIitiK1wiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIn12YXIgZGE9bmV3IFNldCxlYT17fTtmdW5jdGlvbiBmYShhLGIpe2hhKGEsYik7aGEoYStcIkNhcHR1cmVcIixiKX1cbmZ1bmN0aW9uIGhhKGEsYil7ZWFbYV09Yjtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKWRhLmFkZChiW2FdKX1cbnZhciBpYT0hKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvdy5kb2N1bWVudHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCksamE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxrYT0vXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJC8sbGE9XG57fSxtYT17fTtmdW5jdGlvbiBvYShhKXtpZihqYS5jYWxsKG1hLGEpKXJldHVybiEwO2lmKGphLmNhbGwobGEsYSkpcmV0dXJuITE7aWYoa2EudGVzdChhKSlyZXR1cm4gbWFbYV09ITA7bGFbYV09ITA7cmV0dXJuITF9ZnVuY3Rpb24gcGEoYSxiLGMsZCl7aWYobnVsbCE9PWMmJjA9PT1jLnR5cGUpcmV0dXJuITE7c3dpdGNoKHR5cGVvZiBiKXtjYXNlIFwiZnVuY3Rpb25cIjpjYXNlIFwic3ltYm9sXCI6cmV0dXJuITA7Y2FzZSBcImJvb2xlYW5cIjppZihkKXJldHVybiExO2lmKG51bGwhPT1jKXJldHVybiFjLmFjY2VwdHNCb29sZWFuczthPWEudG9Mb3dlckNhc2UoKS5zbGljZSgwLDUpO3JldHVyblwiZGF0YS1cIiE9PWEmJlwiYXJpYS1cIiE9PWE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiBxYShhLGIsYyxkKXtpZihudWxsPT09Ynx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBifHxwYShhLGIsYyxkKSlyZXR1cm4hMDtpZihkKXJldHVybiExO2lmKG51bGwhPT1jKXN3aXRjaChjLnR5cGUpe2Nhc2UgMzpyZXR1cm4hYjtjYXNlIDQ6cmV0dXJuITE9PT1iO2Nhc2UgNTpyZXR1cm4gaXNOYU4oYik7Y2FzZSA2OnJldHVybiBpc05hTihiKXx8MT5ifXJldHVybiExfWZ1bmN0aW9uIHYoYSxiLGMsZCxlLGYsZyl7dGhpcy5hY2NlcHRzQm9vbGVhbnM9Mj09PWJ8fDM9PT1ifHw0PT09Yjt0aGlzLmF0dHJpYnV0ZU5hbWU9ZDt0aGlzLmF0dHJpYnV0ZU5hbWVzcGFjZT1lO3RoaXMubXVzdFVzZVByb3BlcnR5PWM7dGhpcy5wcm9wZXJ0eU5hbWU9YTt0aGlzLnR5cGU9Yjt0aGlzLnNhbml0aXplVVJMPWY7dGhpcy5yZW1vdmVFbXB0eVN0cmluZz1nfXZhciB6PXt9O1xuXCJjaGlsZHJlbiBkYW5nZXJvdXNseVNldElubmVySFRNTCBkZWZhdWx0VmFsdWUgZGVmYXVsdENoZWNrZWQgaW5uZXJIVE1MIHN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgc3R5bGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMCwhMSxhLG51bGwsITEsITEpfSk7W1tcImFjY2VwdENoYXJzZXRcIixcImFjY2VwdC1jaGFyc2V0XCJdLFtcImNsYXNzTmFtZVwiLFwiY2xhc3NcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXV0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hWzBdO3pbYl09bmV3IHYoYiwxLCExLGFbMV0sbnVsbCwhMSwhMSl9KTtbXCJjb250ZW50RWRpdGFibGVcIixcImRyYWdnYWJsZVwiLFwic3BlbGxDaGVja1wiLFwidmFsdWVcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMiwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbltcImF1dG9SZXZlcnNlXCIsXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCIsXCJmb2N1c2FibGVcIixcInByZXNlcnZlQWxwaGFcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMiwhMSxhLG51bGwsITEsITEpfSk7XCJhbGxvd0Z1bGxTY3JlZW4gYXN5bmMgYXV0b0ZvY3VzIGF1dG9QbGF5IGNvbnRyb2xzIGRlZmF1bHQgZGVmZXIgZGlzYWJsZWQgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgZGlzYWJsZVJlbW90ZVBsYXliYWNrIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDMsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJjaGVja2VkXCIsXCJtdWx0aXBsZVwiLFwibXV0ZWRcIixcInNlbGVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDMsITAsYSxudWxsLCExLCExKX0pO1tcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDQsITEsYSxudWxsLCExLCExKX0pO1tcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNiwhMSxhLG51bGwsITEsITEpfSk7W1wicm93U3BhblwiLFwic3RhcnRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsNSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTt2YXIgcmE9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiBzYShhKXtyZXR1cm4gYVsxXS50b1VwcGVyQ2FzZSgpfVxuXCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShyYSxcbnNhKTt6W2JdPW5ldyB2KGIsMSwhMSxhLG51bGwsITEsITEpfSk7XCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEsITEpfSk7W1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsc2EpO3pbYl09bmV3IHYoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSwhMSl9KTtbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSwhMSl9KTtcbnoueGxpbmtIcmVmPW5ldyB2KFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCwhMSk7W1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt6W2FdPW5ldyB2KGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMCwhMCl9KTtcbmZ1bmN0aW9uIHRhKGEsYixjLGQpe3ZhciBlPXouaGFzT3duUHJvcGVydHkoYik/eltiXTpudWxsO2lmKG51bGwhPT1lPzAhPT1lLnR5cGU6ZHx8ISgyPGIubGVuZ3RoKXx8XCJvXCIhPT1iWzBdJiZcIk9cIiE9PWJbMF18fFwiblwiIT09YlsxXSYmXCJOXCIhPT1iWzFdKXFhKGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT9vYShiKSYmKG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOmEuc2V0QXR0cmlidXRlKGIsXCJcIitjKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/Mz09PWUudHlwZT8hMTpcIlwiOmM6KGI9ZS5hdHRyaWJ1dGVOYW1lLGQ9ZS5hdHRyaWJ1dGVOYW1lc3BhY2UsbnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6KGU9ZS50eXBlLGM9Mz09PWV8fDQ9PT1lJiYhMD09PWM/XCJcIjpcIlwiK2MsZD9hLnNldEF0dHJpYnV0ZU5TKGQsYixjKTphLnNldEF0dHJpYnV0ZShiLGMpKSl9XG52YXIgdWE9YWEuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQsdmE9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksd2E9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSx5YT1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksemE9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLEFhPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxCYT1TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIiksQ2E9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksRGE9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLEVhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxGYT1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxHYT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxIYT1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKTtTeW1ib2wuZm9yKFwicmVhY3Quc2NvcGVcIik7U3ltYm9sLmZvcihcInJlYWN0LmRlYnVnX3RyYWNlX21vZGVcIik7XG52YXIgSWE9U3ltYm9sLmZvcihcInJlYWN0Lm9mZnNjcmVlblwiKTtTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKTtTeW1ib2wuZm9yKFwicmVhY3QuY2FjaGVcIik7U3ltYm9sLmZvcihcInJlYWN0LnRyYWNpbmdfbWFya2VyXCIpO3ZhciBKYT1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gS2EoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPUphJiZhW0phXXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfXZhciBBPU9iamVjdC5hc3NpZ24sTGE7ZnVuY3Rpb24gTWEoYSl7aWYodm9pZCAwPT09TGEpdHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKGMpe3ZhciBiPWMuc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7TGE9YiYmYlsxXXx8XCJcIn1yZXR1cm5cIlxcblwiK0xhK2F9dmFyIE5hPSExO1xuZnVuY3Rpb24gT2EoYSxiKXtpZighYXx8TmEpcmV0dXJuXCJcIjtOYT0hMDt2YXIgYz1FcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT12b2lkIDA7dHJ5e2lmKGIpaWYoYj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCk7fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5wcm90b3R5cGUsXCJwcm9wc1wiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO319KSxcIm9iamVjdFwiPT09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QoYixbXSl9Y2F0Y2gobCl7dmFyIGQ9bH1SZWZsZWN0LmNvbnN0cnVjdChhLFtdLGIpfWVsc2V7dHJ5e2IuY2FsbCgpfWNhdGNoKGwpe2Q9bH1hLmNhbGwoYi5wcm90b3R5cGUpfWVsc2V7dHJ5e3Rocm93IEVycm9yKCk7fWNhdGNoKGwpe2Q9bH1hKCl9fWNhdGNoKGwpe2lmKGwmJmQmJlwic3RyaW5nXCI9PT10eXBlb2YgbC5zdGFjayl7Zm9yKHZhciBlPWwuc3RhY2suc3BsaXQoXCJcXG5cIiksXG5mPWQuc3RhY2suc3BsaXQoXCJcXG5cIiksZz1lLmxlbmd0aC0xLGg9Zi5sZW5ndGgtMTsxPD1nJiYwPD1oJiZlW2ddIT09ZltoXTspaC0tO2Zvcig7MTw9ZyYmMDw9aDtnLS0saC0tKWlmKGVbZ10hPT1mW2hdKXtpZigxIT09Z3x8MSE9PWgpe2RvIGlmKGctLSxoLS0sMD5ofHxlW2ddIT09ZltoXSl7dmFyIGs9XCJcXG5cIitlW2ddLnJlcGxhY2UoXCIgYXQgbmV3IFwiLFwiIGF0IFwiKTthLmRpc3BsYXlOYW1lJiZrLmluY2x1ZGVzKFwiPGFub255bW91cz5cIikmJihrPWsucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsYS5kaXNwbGF5TmFtZSkpO3JldHVybiBrfXdoaWxlKDE8PWcmJjA8PWgpfWJyZWFrfX19ZmluYWxseXtOYT0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1jfXJldHVybihhPWE/YS5kaXNwbGF5TmFtZXx8YS5uYW1lOlwiXCIpP01hKGEpOlwiXCJ9XG5mdW5jdGlvbiBQYShhKXtzd2l0Y2goYS50YWcpe2Nhc2UgNTpyZXR1cm4gTWEoYS50eXBlKTtjYXNlIDE2OnJldHVybiBNYShcIkxhenlcIik7Y2FzZSAxMzpyZXR1cm4gTWEoXCJTdXNwZW5zZVwiKTtjYXNlIDE5OnJldHVybiBNYShcIlN1c3BlbnNlTGlzdFwiKTtjYXNlIDA6Y2FzZSAyOmNhc2UgMTU6cmV0dXJuIGE9T2EoYS50eXBlLCExKSxhO2Nhc2UgMTE6cmV0dXJuIGE9T2EoYS50eXBlLnJlbmRlciwhMSksYTtjYXNlIDE6cmV0dXJuIGE9T2EoYS50eXBlLCEwKSxhO2RlZmF1bHQ6cmV0dXJuXCJcIn19XG5mdW5jdGlvbiBRYShhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBhLmRpc3BsYXlOYW1lfHxhLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKXJldHVybiBhO3N3aXRjaChhKXtjYXNlIHlhOnJldHVyblwiRnJhZ21lbnRcIjtjYXNlIHdhOnJldHVyblwiUG9ydGFsXCI7Y2FzZSBBYTpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB6YTpyZXR1cm5cIlN0cmljdE1vZGVcIjtjYXNlIEVhOnJldHVyblwiU3VzcGVuc2VcIjtjYXNlIEZhOnJldHVyblwiU3VzcGVuc2VMaXN0XCJ9aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhKXN3aXRjaChhLiQkdHlwZW9mKXtjYXNlIENhOnJldHVybihhLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIEJhOnJldHVybihhLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIERhOnZhciBiPWEucmVuZGVyO2E9YS5kaXNwbGF5TmFtZTthfHwoYT1iLmRpc3BsYXlOYW1lfHxcbmIubmFtZXx8XCJcIixhPVwiXCIhPT1hP1wiRm9yd2FyZFJlZihcIithK1wiKVwiOlwiRm9yd2FyZFJlZlwiKTtyZXR1cm4gYTtjYXNlIEdhOnJldHVybiBiPWEuZGlzcGxheU5hbWV8fG51bGwsbnVsbCE9PWI/YjpRYShhLnR5cGUpfHxcIk1lbW9cIjtjYXNlIEhhOmI9YS5fcGF5bG9hZDthPWEuX2luaXQ7dHJ5e3JldHVybiBRYShhKGIpKX1jYXRjaChjKXt9fXJldHVybiBudWxsfVxuZnVuY3Rpb24gUmEoYSl7dmFyIGI9YS50eXBlO3N3aXRjaChhLnRhZyl7Y2FzZSAyNDpyZXR1cm5cIkNhY2hlXCI7Y2FzZSA5OnJldHVybihiLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuQ29uc3VtZXJcIjtjYXNlIDEwOnJldHVybihiLl9jb250ZXh0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIikrXCIuUHJvdmlkZXJcIjtjYXNlIDE4OnJldHVyblwiRGVoeWRyYXRlZEZyYWdtZW50XCI7Y2FzZSAxMTpyZXR1cm4gYT1iLnJlbmRlcixhPWEuZGlzcGxheU5hbWV8fGEubmFtZXx8XCJcIixiLmRpc3BsYXlOYW1lfHwoXCJcIiE9PWE/XCJGb3J3YXJkUmVmKFwiK2ErXCIpXCI6XCJGb3J3YXJkUmVmXCIpO2Nhc2UgNzpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSA1OnJldHVybiBiO2Nhc2UgNDpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgMzpyZXR1cm5cIlJvb3RcIjtjYXNlIDY6cmV0dXJuXCJUZXh0XCI7Y2FzZSAxNjpyZXR1cm4gUWEoYik7Y2FzZSA4OnJldHVybiBiPT09emE/XCJTdHJpY3RNb2RlXCI6XCJNb2RlXCI7Y2FzZSAyMjpyZXR1cm5cIk9mZnNjcmVlblwiO1xuY2FzZSAxMjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSAyMTpyZXR1cm5cIlNjb3BlXCI7Y2FzZSAxMzpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSAxOTpyZXR1cm5cIlN1c3BlbnNlTGlzdFwiO2Nhc2UgMjU6cmV0dXJuXCJUcmFjaW5nTWFya2VyXCI7Y2FzZSAxOmNhc2UgMDpjYXNlIDE3OmNhc2UgMjpjYXNlIDE0OmNhc2UgMTU6aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGIuZGlzcGxheU5hbWV8fGIubmFtZXx8bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGIpcmV0dXJuIGJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gU2EoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlIFwiYm9vbGVhblwiOmNhc2UgXCJudW1iZXJcIjpjYXNlIFwic3RyaW5nXCI6Y2FzZSBcInVuZGVmaW5lZFwiOnJldHVybiBhO2Nhc2UgXCJvYmplY3RcIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVyblwiXCJ9fVxuZnVuY3Rpb24gVGEoYSl7dmFyIGI9YS50eXBlO3JldHVybihhPWEubm9kZU5hbWUpJiZcImlucHV0XCI9PT1hLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1ifHxcInJhZGlvXCI9PT1iKX1cbmZ1bmN0aW9uIFVhKGEpe3ZhciBiPVRhKGEpP1wiY2hlY2tlZFwiOlwidmFsdWVcIixjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYiksZD1cIlwiK2FbYl07aWYoIWEuaGFzT3duUHJvcGVydHkoYikmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuZ2V0JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5zZXQpe3ZhciBlPWMuZ2V0LGY9Yy5zZXQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihhKXtkPVwiXCIrYTtmLmNhbGwodGhpcyxhKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtlbnVtZXJhYmxlOmMuZW51bWVyYWJsZX0pO3JldHVybntnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBkfSxzZXRWYWx1ZTpmdW5jdGlvbihhKXtkPVwiXCIrYX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7YS5fdmFsdWVUcmFja2VyPVxubnVsbDtkZWxldGUgYVtiXX19fX1mdW5jdGlvbiBWYShhKXthLl92YWx1ZVRyYWNrZXJ8fChhLl92YWx1ZVRyYWNrZXI9VWEoYSkpfWZ1bmN0aW9uIFdhKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPWEuX3ZhbHVlVHJhY2tlcjtpZighYilyZXR1cm4hMDt2YXIgYz1iLmdldFZhbHVlKCk7dmFyIGQ9XCJcIjthJiYoZD1UYShhKT9hLmNoZWNrZWQ/XCJ0cnVlXCI6XCJmYWxzZVwiOmEudmFsdWUpO2E9ZDtyZXR1cm4gYSE9PWM/KGIuc2V0VmFsdWUoYSksITApOiExfWZ1bmN0aW9uIFhhKGEpe2E9YXx8KFwidW5kZWZpbmVkXCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKTtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBhLmFjdGl2ZUVsZW1lbnR8fGEuYm9keX1jYXRjaChiKXtyZXR1cm4gYS5ib2R5fX1cbmZ1bmN0aW9uIFlhKGEsYil7dmFyIGM9Yi5jaGVja2VkO3JldHVybiBBKHt9LGIse2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOm51bGwhPWM/YzphLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1mdW5jdGlvbiBaYShhLGIpe3ZhciBjPW51bGw9PWIuZGVmYXVsdFZhbHVlP1wiXCI6Yi5kZWZhdWx0VmFsdWUsZD1udWxsIT1iLmNoZWNrZWQ/Yi5jaGVja2VkOmIuZGVmYXVsdENoZWNrZWQ7Yz1TYShudWxsIT1iLnZhbHVlP2IudmFsdWU6Yyk7YS5fd3JhcHBlclN0YXRlPXtpbml0aWFsQ2hlY2tlZDpkLGluaXRpYWxWYWx1ZTpjLGNvbnRyb2xsZWQ6XCJjaGVja2JveFwiPT09Yi50eXBlfHxcInJhZGlvXCI9PT1iLnR5cGU/bnVsbCE9Yi5jaGVja2VkOm51bGwhPWIudmFsdWV9fWZ1bmN0aW9uIGFiKGEsYil7Yj1iLmNoZWNrZWQ7bnVsbCE9YiYmdGEoYSxcImNoZWNrZWRcIixiLCExKX1cbmZ1bmN0aW9uIGJiKGEsYil7YWIoYSxiKTt2YXIgYz1TYShiLnZhbHVlKSxkPWIudHlwZTtpZihudWxsIT1jKWlmKFwibnVtYmVyXCI9PT1kKXtpZigwPT09YyYmXCJcIj09PWEudmFsdWV8fGEudmFsdWUhPWMpYS52YWx1ZT1cIlwiK2N9ZWxzZSBhLnZhbHVlIT09XCJcIitjJiYoYS52YWx1ZT1cIlwiK2MpO2Vsc2UgaWYoXCJzdWJtaXRcIj09PWR8fFwicmVzZXRcIj09PWQpe2EucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIik7cmV0dXJufWIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKT9jYihhLGIudHlwZSxjKTpiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpJiZjYihhLGIudHlwZSxTYShiLmRlZmF1bHRWYWx1ZSkpO251bGw9PWIuY2hlY2tlZCYmbnVsbCE9Yi5kZWZhdWx0Q2hlY2tlZCYmKGEuZGVmYXVsdENoZWNrZWQ9ISFiLmRlZmF1bHRDaGVja2VkKX1cbmZ1bmN0aW9uIGRiKGEsYixjKXtpZihiLmhhc093blByb3BlcnR5KFwidmFsdWVcIil8fGIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikpe3ZhciBkPWIudHlwZTtpZighKFwic3VibWl0XCIhPT1kJiZcInJlc2V0XCIhPT1kfHx2b2lkIDAhPT1iLnZhbHVlJiZudWxsIT09Yi52YWx1ZSkpcmV0dXJuO2I9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlO2N8fGI9PT1hLnZhbHVlfHwoYS52YWx1ZT1iKTthLmRlZmF1bHRWYWx1ZT1ifWM9YS5uYW1lO1wiXCIhPT1jJiYoYS5uYW1lPVwiXCIpO2EuZGVmYXVsdENoZWNrZWQ9ISFhLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWQ7XCJcIiE9PWMmJihhLm5hbWU9Yyl9XG5mdW5jdGlvbiBjYihhLGIsYyl7aWYoXCJudW1iZXJcIiE9PWJ8fFhhKGEub3duZXJEb2N1bWVudCkhPT1hKW51bGw9PWM/YS5kZWZhdWx0VmFsdWU9XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmEuZGVmYXVsdFZhbHVlIT09XCJcIitjJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitjKX12YXIgZWI9QXJyYXkuaXNBcnJheTtcbmZ1bmN0aW9uIGZiKGEsYixjLGQpe2E9YS5vcHRpb25zO2lmKGIpe2I9e307Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspYltcIiRcIitjW2VdXT0hMDtmb3IoYz0wO2M8YS5sZW5ndGg7YysrKWU9Yi5oYXNPd25Qcm9wZXJ0eShcIiRcIithW2NdLnZhbHVlKSxhW2NdLnNlbGVjdGVkIT09ZSYmKGFbY10uc2VsZWN0ZWQ9ZSksZSYmZCYmKGFbY10uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2M9XCJcIitTYShjKTtiPW51bGw7Zm9yKGU9MDtlPGEubGVuZ3RoO2UrKyl7aWYoYVtlXS52YWx1ZT09PWMpe2FbZV0uc2VsZWN0ZWQ9ITA7ZCYmKGFbZV0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PWJ8fGFbZV0uZGlzYWJsZWR8fChiPWFbZV0pfW51bGwhPT1iJiYoYi5zZWxlY3RlZD0hMCl9fVxuZnVuY3Rpb24gZ2IoYSxiKXtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXRocm93IEVycm9yKHAoOTEpKTtyZXR1cm4gQSh7fSxiLHt2YWx1ZTp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCxjaGlsZHJlbjpcIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWV9KX1mdW5jdGlvbiBoYihhLGIpe3ZhciBjPWIudmFsdWU7aWYobnVsbD09Yyl7Yz1iLmNoaWxkcmVuO2I9Yi5kZWZhdWx0VmFsdWU7aWYobnVsbCE9Yyl7aWYobnVsbCE9Yil0aHJvdyBFcnJvcihwKDkyKSk7aWYoZWIoYykpe2lmKDE8Yy5sZW5ndGgpdGhyb3cgRXJyb3IocCg5MykpO2M9Y1swXX1iPWN9bnVsbD09YiYmKGI9XCJcIik7Yz1ifWEuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOlNhKGMpfX1cbmZ1bmN0aW9uIGliKGEsYil7dmFyIGM9U2EoYi52YWx1ZSksZD1TYShiLmRlZmF1bHRWYWx1ZSk7bnVsbCE9YyYmKGM9XCJcIitjLGMhPT1hLnZhbHVlJiYoYS52YWx1ZT1jKSxudWxsPT1iLmRlZmF1bHRWYWx1ZSYmYS5kZWZhdWx0VmFsdWUhPT1jJiYoYS5kZWZhdWx0VmFsdWU9YykpO251bGwhPWQmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2QpfWZ1bmN0aW9uIGpiKGEpe3ZhciBiPWEudGV4dENvbnRlbnQ7Yj09PWEuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJlwiXCIhPT1iJiZudWxsIT09YiYmKGEudmFsdWU9Yil9ZnVuY3Rpb24ga2IoYSl7c3dpdGNoKGEpe2Nhc2UgXCJzdmdcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7Y2FzZSBcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1cbmZ1bmN0aW9uIGxiKGEsYil7cmV0dXJuIG51bGw9PWF8fFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT09YT9rYihiKTpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI9PT1hJiZcImZvcmVpZ25PYmplY3RcIj09PWI/XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI6YX1cbnZhciBtYixuYj1mdW5jdGlvbihhKXtyZXR1cm5cInVuZGVmaW5lZFwiIT09dHlwZW9mIE1TQXBwJiZNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbihiLGMsZCxlKXtNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBhKGIsYyxkLGUpfSl9OmF9KGZ1bmN0aW9uKGEsYil7aWYoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkl8fFwiaW5uZXJIVE1MXCJpbiBhKWEuaW5uZXJIVE1MPWI7ZWxzZXttYj1tYnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTttYi5pbm5lckhUTUw9XCI8c3ZnPlwiK2IudmFsdWVPZigpLnRvU3RyaW5nKCkrXCI8L3N2Zz5cIjtmb3IoYj1tYi5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7Yi5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGIuZmlyc3RDaGlsZCl9fSk7XG5mdW5jdGlvbiBvYihhLGIpe2lmKGIpe3ZhciBjPWEuZmlyc3RDaGlsZDtpZihjJiZjPT09YS5sYXN0Q2hpbGQmJjM9PT1jLm5vZGVUeXBlKXtjLm5vZGVWYWx1ZT1iO3JldHVybn19YS50ZXh0Q29udGVudD1ifVxudmFyIHBiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxhc3BlY3RSYXRpbzohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsXG56b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tlV2lkdGg6ITB9LHFiPVtcIldlYmtpdFwiLFwibXNcIixcIk1velwiLFwiT1wiXTtPYmplY3Qua2V5cyhwYikuZm9yRWFjaChmdW5jdGlvbihhKXtxYi5mb3JFYWNoKGZ1bmN0aW9uKGIpe2I9YithLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyaW5nKDEpO3BiW2JdPXBiW2FdfSl9KTtmdW5jdGlvbiByYihhLGIsYyl7cmV0dXJuIG51bGw9PWJ8fFwiYm9vbGVhblwiPT09dHlwZW9mIGJ8fFwiXCI9PT1iP1wiXCI6Y3x8XCJudW1iZXJcIiE9PXR5cGVvZiBifHwwPT09Ynx8cGIuaGFzT3duUHJvcGVydHkoYSkmJnBiW2FdPyhcIlwiK2IpLnRyaW0oKTpiK1wicHhcIn1cbmZ1bmN0aW9uIHNiKGEsYil7YT1hLnN0eWxlO2Zvcih2YXIgYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe3ZhciBkPTA9PT1jLmluZGV4T2YoXCItLVwiKSxlPXJiKGMsYltjXSxkKTtcImZsb2F0XCI9PT1jJiYoYz1cImNzc0Zsb2F0XCIpO2Q/YS5zZXRQcm9wZXJ0eShjLGUpOmFbY109ZX19dmFyIHRiPUEoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7XG5mdW5jdGlvbiB1YihhLGIpe2lmKGIpe2lmKHRiW2FdJiYobnVsbCE9Yi5jaGlsZHJlbnx8bnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCgxMzcsYSkpO2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpe2lmKG51bGwhPWIuY2hpbGRyZW4pdGhyb3cgRXJyb3IocCg2MCkpO2lmKFwib2JqZWN0XCIhPT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTHx8IShcIl9faHRtbFwiaW4gYi5kYW5nZXJvdXNseVNldElubmVySFRNTCkpdGhyb3cgRXJyb3IocCg2MSkpO31pZihudWxsIT1iLnN0eWxlJiZcIm9iamVjdFwiIT09dHlwZW9mIGIuc3R5bGUpdGhyb3cgRXJyb3IocCg2MikpO319XG5mdW5jdGlvbiB2YihhLGIpe2lmKC0xPT09YS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2UgXCJjb2xvci1wcm9maWxlXCI6Y2FzZSBcImZvbnQtZmFjZVwiOmNhc2UgXCJmb250LWZhY2Utc3JjXCI6Y2FzZSBcImZvbnQtZmFjZS11cmlcIjpjYXNlIFwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2UgXCJmb250LWZhY2UtbmFtZVwiOmNhc2UgXCJtaXNzaW5nLWdseXBoXCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19dmFyIHdiPW51bGw7ZnVuY3Rpb24geGIoYSl7YT1hLnRhcmdldHx8YS5zcmNFbGVtZW50fHx3aW5kb3c7YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGE9YS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7cmV0dXJuIDM9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphfXZhciB5Yj1udWxsLHpiPW51bGwsQWI9bnVsbDtcbmZ1bmN0aW9uIEJiKGEpe2lmKGE9Q2IoYSkpe2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiB5Yil0aHJvdyBFcnJvcihwKDI4MCkpO3ZhciBiPWEuc3RhdGVOb2RlO2ImJihiPURiKGIpLHliKGEuc3RhdGVOb2RlLGEudHlwZSxiKSl9fWZ1bmN0aW9uIEViKGEpe3piP0FiP0FiLnB1c2goYSk6QWI9W2FdOnpiPWF9ZnVuY3Rpb24gRmIoKXtpZih6Yil7dmFyIGE9emIsYj1BYjtBYj16Yj1udWxsO0JiKGEpO2lmKGIpZm9yKGE9MDthPGIubGVuZ3RoO2ErKylCYihiW2FdKX19ZnVuY3Rpb24gR2IoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBIYigpe312YXIgSWI9ITE7ZnVuY3Rpb24gSmIoYSxiLGMpe2lmKEliKXJldHVybiBhKGIsYyk7SWI9ITA7dHJ5e3JldHVybiBHYihhLGIsYyl9ZmluYWxseXtpZihJYj0hMSxudWxsIT09emJ8fG51bGwhPT1BYilIYigpLEZiKCl9fVxuZnVuY3Rpb24gS2IoYSxiKXt2YXIgYz1hLnN0YXRlTm9kZTtpZihudWxsPT09YylyZXR1cm4gbnVsbDt2YXIgZD1EYihjKTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtjPWRbYl07YTpzd2l0Y2goYil7Y2FzZSBcIm9uQ2xpY2tcIjpjYXNlIFwib25DbGlja0NhcHR1cmVcIjpjYXNlIFwib25Eb3VibGVDbGlja1wiOmNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRG93blwiOmNhc2UgXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZU1vdmVcIjpjYXNlIFwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VVcFwiOmNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VFbnRlclwiOihkPSFkLmRpc2FibGVkKXx8KGE9YS50eXBlLGQ9IShcImJ1dHRvblwiPT09YXx8XCJpbnB1dFwiPT09YXx8XCJzZWxlY3RcIj09PWF8fFwidGV4dGFyZWFcIj09PWEpKTthPSFkO2JyZWFrIGE7ZGVmYXVsdDphPSExfWlmKGEpcmV0dXJuIG51bGw7aWYoYyYmXCJmdW5jdGlvblwiIT09XG50eXBlb2YgYyl0aHJvdyBFcnJvcihwKDIzMSxiLHR5cGVvZiBjKSk7cmV0dXJuIGN9dmFyIExiPSExO2lmKGlhKXRyeXt2YXIgTWI9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KE1iLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtMYj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixNYixNYik7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsTWIsTWIpfWNhdGNoKGEpe0xiPSExfWZ1bmN0aW9uIE5iKGEsYixjLGQsZSxmLGcsaCxrKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMyk7dHJ5e2IuYXBwbHkoYyxsKX1jYXRjaChtKXt0aGlzLm9uRXJyb3IobSl9fXZhciBPYj0hMSxQYj1udWxsLFFiPSExLFJiPW51bGwsU2I9e29uRXJyb3I6ZnVuY3Rpb24oYSl7T2I9ITA7UGI9YX19O2Z1bmN0aW9uIFRiKGEsYixjLGQsZSxmLGcsaCxrKXtPYj0hMTtQYj1udWxsO05iLmFwcGx5KFNiLGFyZ3VtZW50cyl9XG5mdW5jdGlvbiBVYihhLGIsYyxkLGUsZixnLGgsayl7VGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKE9iKXtpZihPYil7dmFyIGw9UGI7T2I9ITE7UGI9bnVsbH1lbHNlIHRocm93IEVycm9yKHAoMTk4KSk7UWJ8fChRYj0hMCxSYj1sKX19ZnVuY3Rpb24gVmIoYSl7dmFyIGI9YSxjPWE7aWYoYS5hbHRlcm5hdGUpZm9yKDtiLnJldHVybjspYj1iLnJldHVybjtlbHNle2E9YjtkbyBiPWEsMCE9PShiLmZsYWdzJjQwOTgpJiYoYz1iLnJldHVybiksYT1iLnJldHVybjt3aGlsZShhKX1yZXR1cm4gMz09PWIudGFnP2M6bnVsbH1mdW5jdGlvbiBXYihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1hLm1lbW9pemVkU3RhdGU7bnVsbD09PWImJihhPWEuYWx0ZXJuYXRlLG51bGwhPT1hJiYoYj1hLm1lbW9pemVkU3RhdGUpKTtpZihudWxsIT09YilyZXR1cm4gYi5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIFhiKGEpe2lmKFZiKGEpIT09YSl0aHJvdyBFcnJvcihwKDE4OCkpO31cbmZ1bmN0aW9uIFliKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO2lmKCFiKXtiPVZiKGEpO2lmKG51bGw9PT1iKXRocm93IEVycm9yKHAoMTg4KSk7cmV0dXJuIGIhPT1hP251bGw6YX1mb3IodmFyIGM9YSxkPWI7Oyl7dmFyIGU9Yy5yZXR1cm47aWYobnVsbD09PWUpYnJlYWs7dmFyIGY9ZS5hbHRlcm5hdGU7aWYobnVsbD09PWYpe2Q9ZS5yZXR1cm47aWYobnVsbCE9PWQpe2M9ZDtjb250aW51ZX1icmVha31pZihlLmNoaWxkPT09Zi5jaGlsZCl7Zm9yKGY9ZS5jaGlsZDtmOyl7aWYoZj09PWMpcmV0dXJuIFhiKGUpLGE7aWYoZj09PWQpcmV0dXJuIFhiKGUpLGI7Zj1mLnNpYmxpbmd9dGhyb3cgRXJyb3IocCgxODgpKTt9aWYoYy5yZXR1cm4hPT1kLnJldHVybiljPWUsZD1mO2Vsc2V7Zm9yKHZhciBnPSExLGg9ZS5jaGlsZDtoOyl7aWYoaD09PWMpe2c9ITA7Yz1lO2Q9ZjticmVha31pZihoPT09ZCl7Zz0hMDtkPWU7Yz1mO2JyZWFrfWg9aC5zaWJsaW5nfWlmKCFnKXtmb3IoaD1mLmNoaWxkO2g7KXtpZihoPT09XG5jKXtnPSEwO2M9ZjtkPWU7YnJlYWt9aWYoaD09PWQpe2c9ITA7ZD1mO2M9ZTticmVha31oPWguc2libGluZ31pZighZyl0aHJvdyBFcnJvcihwKDE4OSkpO319aWYoYy5hbHRlcm5hdGUhPT1kKXRocm93IEVycm9yKHAoMTkwKSk7fWlmKDMhPT1jLnRhZyl0aHJvdyBFcnJvcihwKDE4OCkpO3JldHVybiBjLnN0YXRlTm9kZS5jdXJyZW50PT09Yz9hOmJ9ZnVuY3Rpb24gWmIoYSl7YT1ZYihhKTtyZXR1cm4gbnVsbCE9PWE/JGIoYSk6bnVsbH1mdW5jdGlvbiAkYihhKXtpZig1PT09YS50YWd8fDY9PT1hLnRhZylyZXR1cm4gYTtmb3IoYT1hLmNoaWxkO251bGwhPT1hOyl7dmFyIGI9JGIoYSk7aWYobnVsbCE9PWIpcmV0dXJuIGI7YT1hLnNpYmxpbmd9cmV0dXJuIG51bGx9XG52YXIgYWM9Y2EudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxiYz1jYS51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxjYz1jYS51bnN0YWJsZV9zaG91bGRZaWVsZCxkYz1jYS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsQj1jYS51bnN0YWJsZV9ub3csZWM9Y2EudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsZmM9Y2EudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksZ2M9Y2EudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksaGM9Y2EudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksaWM9Y2EudW5zdGFibGVfTG93UHJpb3JpdHksamM9Y2EudW5zdGFibGVfSWRsZVByaW9yaXR5LGtjPW51bGwsbGM9bnVsbDtmdW5jdGlvbiBtYyhhKXtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uQ29tbWl0RmliZXJSb290KXRyeXtsYy5vbkNvbW1pdEZpYmVyUm9vdChrYyxhLHZvaWQgMCwxMjg9PT0oYS5jdXJyZW50LmZsYWdzJjEyOCkpfWNhdGNoKGIpe319XG52YXIgb2M9TWF0aC5jbHozMj9NYXRoLmNsejMyOm5jLHBjPU1hdGgubG9nLHFjPU1hdGguTE4yO2Z1bmN0aW9uIG5jKGEpe2E+Pj49MDtyZXR1cm4gMD09PWE/MzI6MzEtKHBjKGEpL3FjfDApfDB9dmFyIHJjPTY0LHNjPTQxOTQzMDQ7XG5mdW5jdGlvbiB0YyhhKXtzd2l0Y2goYSYtYSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGEmNDE5NDI0MDtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybiBhJjEzMDAyMzQyNDtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDEwNzM3NDE4MjQ7XG5kZWZhdWx0OnJldHVybiBhfX1mdW5jdGlvbiB1YyhhLGIpe3ZhciBjPWEucGVuZGluZ0xhbmVzO2lmKDA9PT1jKXJldHVybiAwO3ZhciBkPTAsZT1hLnN1c3BlbmRlZExhbmVzLGY9YS5waW5nZWRMYW5lcyxnPWMmMjY4NDM1NDU1O2lmKDAhPT1nKXt2YXIgaD1nJn5lOzAhPT1oP2Q9dGMoaCk6KGYmPWcsMCE9PWYmJihkPXRjKGYpKSl9ZWxzZSBnPWMmfmUsMCE9PWc/ZD10YyhnKTowIT09ZiYmKGQ9dGMoZikpO2lmKDA9PT1kKXJldHVybiAwO2lmKDAhPT1iJiZiIT09ZCYmMD09PShiJmUpJiYoZT1kJi1kLGY9YiYtYixlPj1mfHwxNj09PWUmJjAhPT0oZiY0MTk0MjQwKSkpcmV0dXJuIGI7MCE9PShkJjQpJiYoZHw9YyYxNik7Yj1hLmVudGFuZ2xlZExhbmVzO2lmKDAhPT1iKWZvcihhPWEuZW50YW5nbGVtZW50cyxiJj1kOzA8YjspYz0zMS1vYyhiKSxlPTE8PGMsZHw9YVtjXSxiJj1+ZTtyZXR1cm4gZH1cbmZ1bmN0aW9uIHZjKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiBiKzI1MDtjYXNlIDg6Y2FzZSAxNjpjYXNlIDMyOmNhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGIrNUUzO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6cmV0dXJuLTE7Y2FzZSAxMzQyMTc3Mjg6Y2FzZSAyNjg0MzU0NTY6Y2FzZSA1MzY4NzA5MTI6Y2FzZSAxMDczNzQxODI0OnJldHVybi0xO2RlZmF1bHQ6cmV0dXJuLTF9fVxuZnVuY3Rpb24gd2MoYSxiKXtmb3IodmFyIGM9YS5zdXNwZW5kZWRMYW5lcyxkPWEucGluZ2VkTGFuZXMsZT1hLmV4cGlyYXRpb25UaW1lcyxmPWEucGVuZGluZ0xhbmVzOzA8Zjspe3ZhciBnPTMxLW9jKGYpLGg9MTw8ZyxrPWVbZ107aWYoLTE9PT1rKXtpZigwPT09KGgmYyl8fDAhPT0oaCZkKSllW2ddPXZjKGgsYil9ZWxzZSBrPD1iJiYoYS5leHBpcmVkTGFuZXN8PWgpO2YmPX5ofX1mdW5jdGlvbiB4YyhhKXthPWEucGVuZGluZ0xhbmVzJi0xMDczNzQxODI1O3JldHVybiAwIT09YT9hOmEmMTA3Mzc0MTgyND8xMDczNzQxODI0OjB9ZnVuY3Rpb24geWMoKXt2YXIgYT1yYztyYzw8PTE7MD09PShyYyY0MTk0MjQwKSYmKHJjPTY0KTtyZXR1cm4gYX1mdW5jdGlvbiB6YyhhKXtmb3IodmFyIGI9W10sYz0wOzMxPmM7YysrKWIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEFjKGEsYixjKXthLnBlbmRpbmdMYW5lc3w9Yjs1MzY4NzA5MTIhPT1iJiYoYS5zdXNwZW5kZWRMYW5lcz0wLGEucGluZ2VkTGFuZXM9MCk7YT1hLmV2ZW50VGltZXM7Yj0zMS1vYyhiKTthW2JdPWN9ZnVuY3Rpb24gQmMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcyZ+YjthLnBlbmRpbmdMYW5lcz1iO2Euc3VzcGVuZGVkTGFuZXM9MDthLnBpbmdlZExhbmVzPTA7YS5leHBpcmVkTGFuZXMmPWI7YS5tdXRhYmxlUmVhZExhbmVzJj1iO2EuZW50YW5nbGVkTGFuZXMmPWI7Yj1hLmVudGFuZ2xlbWVudHM7dmFyIGQ9YS5ldmVudFRpbWVzO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yzspe3ZhciBlPTMxLW9jKGMpLGY9MTw8ZTtiW2VdPTA7ZFtlXT0tMTthW2VdPS0xO2MmPX5mfX1cbmZ1bmN0aW9uIENjKGEsYil7dmFyIGM9YS5lbnRhbmdsZWRMYW5lc3w9Yjtmb3IoYT1hLmVudGFuZ2xlbWVudHM7Yzspe3ZhciBkPTMxLW9jKGMpLGU9MTw8ZDtlJmJ8YVtkXSZiJiYoYVtkXXw9Yik7YyY9fmV9fXZhciBDPTA7ZnVuY3Rpb24gRGMoYSl7YSY9LWE7cmV0dXJuIDE8YT80PGE/MCE9PShhJjI2ODQzNTQ1NSk/MTY6NTM2ODcwOTEyOjQ6MX12YXIgRWMsRmMsR2MsSGMsSWMsSmM9ITEsS2M9W10sTGM9bnVsbCxNYz1udWxsLE5jPW51bGwsT2M9bmV3IE1hcCxQYz1uZXcgTWFwLFFjPVtdLFJjPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0IHN1Ym1pdFwiLnNwbGl0KFwiIFwiKTtcbmZ1bmN0aW9uIFNjKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJmb2N1c2luXCI6Y2FzZSBcImZvY3Vzb3V0XCI6TGM9bnVsbDticmVhaztjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdsZWF2ZVwiOk1jPW51bGw7YnJlYWs7Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJtb3VzZW91dFwiOk5jPW51bGw7YnJlYWs7Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpPYy5kZWxldGUoYi5wb2ludGVySWQpO2JyZWFrO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpQYy5kZWxldGUoYi5wb2ludGVySWQpfX1cbmZ1bmN0aW9uIFRjKGEsYixjLGQsZSxmKXtpZihudWxsPT09YXx8YS5uYXRpdmVFdmVudCE9PWYpcmV0dXJuIGE9e2Jsb2NrZWRPbjpiLGRvbUV2ZW50TmFtZTpjLGV2ZW50U3lzdGVtRmxhZ3M6ZCxuYXRpdmVFdmVudDpmLHRhcmdldENvbnRhaW5lcnM6W2VdfSxudWxsIT09YiYmKGI9Q2IoYiksbnVsbCE9PWImJkZjKGIpKSxhO2EuZXZlbnRTeXN0ZW1GbGFnc3w9ZDtiPWEudGFyZ2V0Q29udGFpbmVycztudWxsIT09ZSYmLTE9PT1iLmluZGV4T2YoZSkmJmIucHVzaChlKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIFVjKGEsYixjLGQsZSl7c3dpdGNoKGIpe2Nhc2UgXCJmb2N1c2luXCI6cmV0dXJuIExjPVRjKExjLGEsYixjLGQsZSksITA7Y2FzZSBcImRyYWdlbnRlclwiOnJldHVybiBNYz1UYyhNYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJtb3VzZW92ZXJcIjpyZXR1cm4gTmM9VGMoTmMsYSxiLGMsZCxlKSwhMDtjYXNlIFwicG9pbnRlcm92ZXJcIjp2YXIgZj1lLnBvaW50ZXJJZDtPYy5zZXQoZixUYyhPYy5nZXQoZil8fG51bGwsYSxiLGMsZCxlKSk7cmV0dXJuITA7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGY9ZS5wb2ludGVySWQsUGMuc2V0KGYsVGMoUGMuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpLCEwfXJldHVybiExfVxuZnVuY3Rpb24gVmMoYSl7dmFyIGI9V2MoYS50YXJnZXQpO2lmKG51bGwhPT1iKXt2YXIgYz1WYihiKTtpZihudWxsIT09YylpZihiPWMudGFnLDEzPT09Yil7aWYoYj1XYihjKSxudWxsIT09Yil7YS5ibG9ja2VkT249YjtJYyhhLnByaW9yaXR5LGZ1bmN0aW9uKCl7R2MoYyl9KTtyZXR1cm59fWVsc2UgaWYoMz09PWImJmMuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2EuYmxvY2tlZE9uPTM9PT1jLnRhZz9jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX1hLmJsb2NrZWRPbj1udWxsfVxuZnVuY3Rpb24gWGMoYSl7aWYobnVsbCE9PWEuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgYj1hLnRhcmdldENvbnRhaW5lcnM7MDxiLmxlbmd0aDspe3ZhciBjPVljKGEuZG9tRXZlbnROYW1lLGEuZXZlbnRTeXN0ZW1GbGFncyxiWzBdLGEubmF0aXZlRXZlbnQpO2lmKG51bGw9PT1jKXtjPWEubmF0aXZlRXZlbnQ7dmFyIGQ9bmV3IGMuY29uc3RydWN0b3IoYy50eXBlLGMpO3diPWQ7Yy50YXJnZXQuZGlzcGF0Y2hFdmVudChkKTt3Yj1udWxsfWVsc2UgcmV0dXJuIGI9Q2IoYyksbnVsbCE9PWImJkZjKGIpLGEuYmxvY2tlZE9uPWMsITE7Yi5zaGlmdCgpfXJldHVybiEwfWZ1bmN0aW9uIFpjKGEsYixjKXtYYyhhKSYmYy5kZWxldGUoYil9ZnVuY3Rpb24gJGMoKXtKYz0hMTtudWxsIT09TGMmJlhjKExjKSYmKExjPW51bGwpO251bGwhPT1NYyYmWGMoTWMpJiYoTWM9bnVsbCk7bnVsbCE9PU5jJiZYYyhOYykmJihOYz1udWxsKTtPYy5mb3JFYWNoKFpjKTtQYy5mb3JFYWNoKFpjKX1cbmZ1bmN0aW9uIGFkKGEsYil7YS5ibG9ja2VkT249PT1iJiYoYS5ibG9ja2VkT249bnVsbCxKY3x8KEpjPSEwLGNhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soY2EudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksJGMpKSl9XG5mdW5jdGlvbiBiZChhKXtmdW5jdGlvbiBiKGIpe3JldHVybiBhZChiLGEpfWlmKDA8S2MubGVuZ3RoKXthZChLY1swXSxhKTtmb3IodmFyIGM9MTtjPEtjLmxlbmd0aDtjKyspe3ZhciBkPUtjW2NdO2QuYmxvY2tlZE9uPT09YSYmKGQuYmxvY2tlZE9uPW51bGwpfX1udWxsIT09TGMmJmFkKExjLGEpO251bGwhPT1NYyYmYWQoTWMsYSk7bnVsbCE9PU5jJiZhZChOYyxhKTtPYy5mb3JFYWNoKGIpO1BjLmZvckVhY2goYik7Zm9yKGM9MDtjPFFjLmxlbmd0aDtjKyspZD1RY1tjXSxkLmJsb2NrZWRPbj09PWEmJihkLmJsb2NrZWRPbj1udWxsKTtmb3IoOzA8UWMubGVuZ3RoJiYoYz1RY1swXSxudWxsPT09Yy5ibG9ja2VkT24pOylWYyhjKSxudWxsPT09Yy5ibG9ja2VkT24mJlFjLnNoaWZ0KCl9dmFyIGNkPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLGRkPSEwO1xuZnVuY3Rpb24gZWQoYSxiLGMsZCl7dmFyIGU9QyxmPWNkLnRyYW5zaXRpb247Y2QudHJhbnNpdGlvbj1udWxsO3RyeXtDPTEsZmQoYSxiLGMsZCl9ZmluYWxseXtDPWUsY2QudHJhbnNpdGlvbj1mfX1mdW5jdGlvbiBnZChhLGIsYyxkKXt2YXIgZT1DLGY9Y2QudHJhbnNpdGlvbjtjZC50cmFuc2l0aW9uPW51bGw7dHJ5e0M9NCxmZChhLGIsYyxkKX1maW5hbGx5e0M9ZSxjZC50cmFuc2l0aW9uPWZ9fVxuZnVuY3Rpb24gZmQoYSxiLGMsZCl7aWYoZGQpe3ZhciBlPVljKGEsYixjLGQpO2lmKG51bGw9PT1lKWhkKGEsYixkLGlkLGMpLFNjKGEsZCk7ZWxzZSBpZihVYyhlLGEsYixjLGQpKWQuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihTYyhhLGQpLGImNCYmLTE8UmMuaW5kZXhPZihhKSl7Zm9yKDtudWxsIT09ZTspe3ZhciBmPUNiKGUpO251bGwhPT1mJiZFYyhmKTtmPVljKGEsYixjLGQpO251bGw9PT1mJiZoZChhLGIsZCxpZCxjKTtpZihmPT09ZSlicmVhaztlPWZ9bnVsbCE9PWUmJmQuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBoZChhLGIsZCxudWxsLGMpfX12YXIgaWQ9bnVsbDtcbmZ1bmN0aW9uIFljKGEsYixjLGQpe2lkPW51bGw7YT14YihkKTthPVdjKGEpO2lmKG51bGwhPT1hKWlmKGI9VmIoYSksbnVsbD09PWIpYT1udWxsO2Vsc2UgaWYoYz1iLnRhZywxMz09PWMpe2E9V2IoYik7aWYobnVsbCE9PWEpcmV0dXJuIGE7YT1udWxsfWVsc2UgaWYoMz09PWMpe2lmKGIuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpcmV0dXJuIDM9PT1iLnRhZz9iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7YT1udWxsfWVsc2UgYiE9PWEmJihhPW51bGwpO2lkPWE7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBqZChhKXtzd2l0Y2goYSl7Y2FzZSBcImNhbmNlbFwiOmNhc2UgXCJjbGlja1wiOmNhc2UgXCJjbG9zZVwiOmNhc2UgXCJjb250ZXh0bWVudVwiOmNhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdzdGFydFwiOmNhc2UgXCJkcm9wXCI6Y2FzZSBcImZvY3VzaW5cIjpjYXNlIFwiZm9jdXNvdXRcIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwiaW52YWxpZFwiOmNhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcImtleXVwXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZXVwXCI6Y2FzZSBcInBhc3RlXCI6Y2FzZSBcInBhdXNlXCI6Y2FzZSBcInBsYXlcIjpjYXNlIFwicG9pbnRlcmNhbmNlbFwiOmNhc2UgXCJwb2ludGVyZG93blwiOmNhc2UgXCJwb2ludGVydXBcIjpjYXNlIFwicmF0ZWNoYW5nZVwiOmNhc2UgXCJyZXNldFwiOmNhc2UgXCJyZXNpemVcIjpjYXNlIFwic2Vla2VkXCI6Y2FzZSBcInN1Ym1pdFwiOmNhc2UgXCJ0b3VjaGNhbmNlbFwiOmNhc2UgXCJ0b3VjaGVuZFwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6Y2FzZSBcInZvbHVtZWNoYW5nZVwiOmNhc2UgXCJjaGFuZ2VcIjpjYXNlIFwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZSBcInRleHRJbnB1dFwiOmNhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6Y2FzZSBcImJlZm9yZWJsdXJcIjpjYXNlIFwiYWZ0ZXJibHVyXCI6Y2FzZSBcImJlZm9yZWlucHV0XCI6Y2FzZSBcImJsdXJcIjpjYXNlIFwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2UgXCJmb2N1c1wiOmNhc2UgXCJoYXNoY2hhbmdlXCI6Y2FzZSBcInBvcHN0YXRlXCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJzZWxlY3RzdGFydFwiOnJldHVybiAxO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNlb3V0XCI6Y2FzZSBcIm1vdXNlb3ZlclwiOmNhc2UgXCJwb2ludGVybW92ZVwiOmNhc2UgXCJwb2ludGVyb3V0XCI6Y2FzZSBcInBvaW50ZXJvdmVyXCI6Y2FzZSBcInNjcm9sbFwiOmNhc2UgXCJ0b2dnbGVcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcIndoZWVsXCI6Y2FzZSBcIm1vdXNlZW50ZXJcIjpjYXNlIFwibW91c2VsZWF2ZVwiOmNhc2UgXCJwb2ludGVyZW50ZXJcIjpjYXNlIFwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDQ7XG5jYXNlIFwibWVzc2FnZVwiOnN3aXRjaChlYygpKXtjYXNlIGZjOnJldHVybiAxO2Nhc2UgZ2M6cmV0dXJuIDQ7Y2FzZSBoYzpjYXNlIGljOnJldHVybiAxNjtjYXNlIGpjOnJldHVybiA1MzY4NzA5MTI7ZGVmYXVsdDpyZXR1cm4gMTZ9ZGVmYXVsdDpyZXR1cm4gMTZ9fXZhciBrZD1udWxsLGxkPW51bGwsbWQ9bnVsbDtmdW5jdGlvbiBuZCgpe2lmKG1kKXJldHVybiBtZDt2YXIgYSxiPWxkLGM9Yi5sZW5ndGgsZCxlPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGY9ZS5sZW5ndGg7Zm9yKGE9MDthPGMmJmJbYV09PT1lW2FdO2ErKyk7dmFyIGc9Yy1hO2ZvcihkPTE7ZDw9ZyYmYltjLWRdPT09ZVtmLWRdO2QrKyk7cmV0dXJuIG1kPWUuc2xpY2UoYSwxPGQ/MS1kOnZvaWQgMCl9XG5mdW5jdGlvbiBvZChhKXt2YXIgYj1hLmtleUNvZGU7XCJjaGFyQ29kZVwiaW4gYT8oYT1hLmNoYXJDb2RlLDA9PT1hJiYxMz09PWImJihhPTEzKSk6YT1iOzEwPT09YSYmKGE9MTMpO3JldHVybiAzMjw9YXx8MTM9PT1hP2E6MH1mdW5jdGlvbiBwZCgpe3JldHVybiEwfWZ1bmN0aW9uIHFkKCl7cmV0dXJuITF9XG5mdW5jdGlvbiByZChhKXtmdW5jdGlvbiBiKGIsZCxlLGYsZyl7dGhpcy5fcmVhY3ROYW1lPWI7dGhpcy5fdGFyZ2V0SW5zdD1lO3RoaXMudHlwZT1kO3RoaXMubmF0aXZlRXZlbnQ9Zjt0aGlzLnRhcmdldD1nO3RoaXMuY3VycmVudFRhcmdldD1udWxsO2Zvcih2YXIgYyBpbiBhKWEuaGFzT3duUHJvcGVydHkoYykmJihiPWFbY10sdGhpc1tjXT1iP2IoZik6ZltjXSk7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPWYuZGVmYXVsdFByZXZlbnRlZD9mLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1mLnJldHVyblZhbHVlKT9wZDpxZDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXFkO3JldHVybiB0aGlzfUEoYi5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT09dHlwZW9mIGEucmV0dXJuVmFsdWUmJlxuKGEucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXBkKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5uYXRpdmVFdmVudDthJiYoYS5zdG9wUHJvcGFnYXRpb24/YS5zdG9wUHJvcGFnYXRpb24oKTpcInVua25vd25cIiE9PXR5cGVvZiBhLmNhbmNlbEJ1YmJsZSYmKGEuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBkKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OnBkfSk7cmV0dXJuIGJ9XG52YXIgc2Q9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihhKXtyZXR1cm4gYS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sdGQ9cmQoc2QpLHVkPUEoe30sc2Qse3ZpZXc6MCxkZXRhaWw6MH0pLHZkPXJkKHVkKSx3ZCx4ZCx5ZCxBZD1BKHt9LHVkLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hLnJlbGF0ZWRUYXJnZXQ/YS5mcm9tRWxlbWVudD09PWEuc3JjRWxlbWVudD9hLnRvRWxlbWVudDphLmZyb21FbGVtZW50OmEucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGEpe2lmKFwibW92ZW1lbnRYXCJpblxuYSlyZXR1cm4gYS5tb3ZlbWVudFg7YSE9PXlkJiYoeWQmJlwibW91c2Vtb3ZlXCI9PT1hLnR5cGU/KHdkPWEuc2NyZWVuWC15ZC5zY3JlZW5YLHhkPWEuc2NyZWVuWS15ZC5zY3JlZW5ZKTp4ZD13ZD0wLHlkPWEpO3JldHVybiB3ZH0sbW92ZW1lbnRZOmZ1bmN0aW9uKGEpe3JldHVyblwibW92ZW1lbnRZXCJpbiBhP2EubW92ZW1lbnRZOnhkfX0pLEJkPXJkKEFkKSxDZD1BKHt9LEFkLHtkYXRhVHJhbnNmZXI6MH0pLERkPXJkKENkKSxFZD1BKHt9LHVkLHtyZWxhdGVkVGFyZ2V0OjB9KSxGZD1yZChFZCksR2Q9QSh7fSxzZCx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksSGQ9cmQoR2QpLElkPUEoe30sc2Qse2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuXCJjbGlwYm9hcmREYXRhXCJpbiBhP2EuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSxKZD1yZChJZCksS2Q9QSh7fSxzZCx7ZGF0YTowfSksTGQ9cmQoS2QpLE1kPXtFc2M6XCJFc2NhcGVcIixcblNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LE5kPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLDExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLFxuMTE5OlwiRjhcIiwxMjA6XCJGOVwiLDEyMTpcIkYxMFwiLDEyMjpcIkYxMVwiLDEyMzpcIkYxMlwiLDE0NDpcIk51bUxvY2tcIiwxNDU6XCJTY3JvbGxMb2NrXCIsMjI0OlwiTWV0YVwifSxPZD17QWx0OlwiYWx0S2V5XCIsQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gUGQoYSl7dmFyIGI9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gYi5nZXRNb2RpZmllclN0YXRlP2IuZ2V0TW9kaWZpZXJTdGF0ZShhKTooYT1PZFthXSk/ISFiW2FdOiExfWZ1bmN0aW9uIHpkKCl7cmV0dXJuIFBkfVxudmFyIFFkPUEoe30sdWQse2tleTpmdW5jdGlvbihhKXtpZihhLmtleSl7dmFyIGI9TWRbYS5rZXldfHxhLmtleTtpZihcIlVuaWRlbnRpZmllZFwiIT09YilyZXR1cm4gYn1yZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/KGE9b2QoYSksMTM9PT1hP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP05kW2Eua2V5Q29kZV18fFwiVW5pZGVudGlmaWVkXCI6XCJcIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6emQsY2hhckNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlP29kKGEpOjB9LGtleUNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oYSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09XG5hLnR5cGU/b2QoYSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9hLmtleUNvZGU6MH19KSxSZD1yZChRZCksU2Q9QSh7fSxBZCx7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSxUZD1yZChTZCksVWQ9QSh7fSx1ZCx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOnpkfSksVmQ9cmQoVWQpLFdkPUEoe30sc2Qse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksWGQ9cmQoV2QpLFlkPUEoe30sQWQse2RlbHRhWDpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWFwiaW4gYT9hLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpbiBhPy1hLndoZWVsRGVsdGFYOjB9LFxuZGVsdGFZOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFZXCJpbiBhP2EuZGVsdGFZOlwid2hlZWxEZWx0YVlcImluIGE/LWEud2hlZWxEZWx0YVk6XCJ3aGVlbERlbHRhXCJpbiBhPy1hLndoZWVsRGVsdGE6MH0sZGVsdGFaOjAsZGVsdGFNb2RlOjB9KSxaZD1yZChZZCksJGQ9WzksMTMsMjcsMzJdLGFlPWlhJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyxiZT1udWxsO2lhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJihiZT1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciBjZT1pYSYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIWJlLGRlPWlhJiYoIWFlfHxiZSYmODxiZSYmMTE+PWJlKSxlZT1TdHJpbmcuZnJvbUNoYXJDb2RlKDMyKSxmZT0hMTtcbmZ1bmN0aW9uIGdlKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJrZXl1cFwiOnJldHVybi0xIT09JGQuaW5kZXhPZihiLmtleUNvZGUpO2Nhc2UgXCJrZXlkb3duXCI6cmV0dXJuIDIyOSE9PWIua2V5Q29kZTtjYXNlIFwia2V5cHJlc3NcIjpjYXNlIFwibW91c2Vkb3duXCI6Y2FzZSBcImZvY3Vzb3V0XCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gaGUoYSl7YT1hLmRldGFpbDtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJlwiZGF0YVwiaW4gYT9hLmRhdGE6bnVsbH12YXIgaWU9ITE7ZnVuY3Rpb24gamUoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGhlKGIpO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDMyIT09Yi53aGljaClyZXR1cm4gbnVsbDtmZT0hMDtyZXR1cm4gZWU7Y2FzZSBcInRleHRJbnB1dFwiOnJldHVybiBhPWIuZGF0YSxhPT09ZWUmJmZlP251bGw6YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbmZ1bmN0aW9uIGtlKGEsYil7aWYoaWUpcmV0dXJuXCJjb21wb3NpdGlvbmVuZFwiPT09YXx8IWFlJiZnZShhLGIpPyhhPW5kKCksbWQ9bGQ9a2Q9bnVsbCxpZT0hMSxhKTpudWxsO3N3aXRjaChhKXtjYXNlIFwicGFzdGVcIjpyZXR1cm4gbnVsbDtjYXNlIFwia2V5cHJlc3NcIjppZighKGIuY3RybEtleXx8Yi5hbHRLZXl8fGIubWV0YUtleSl8fGIuY3RybEtleSYmYi5hbHRLZXkpe2lmKGIuY2hhciYmMTxiLmNoYXIubGVuZ3RoKXJldHVybiBiLmNoYXI7aWYoYi53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShiLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gZGUmJlwia29cIiE9PWIubG9jYWxlP251bGw6Yi5kYXRhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxudmFyIGxlPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLFwiZGF0ZXRpbWUtbG9jYWxcIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIG1lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1iPyEhbGVbYS50eXBlXTpcInRleHRhcmVhXCI9PT1iPyEwOiExfWZ1bmN0aW9uIG5lKGEsYixjLGQpe0ViKGQpO2I9b2UoYixcIm9uQ2hhbmdlXCIpOzA8Yi5sZW5ndGgmJihjPW5ldyB0ZChcIm9uQ2hhbmdlXCIsXCJjaGFuZ2VcIixudWxsLGMsZCksYS5wdXNoKHtldmVudDpjLGxpc3RlbmVyczpifSkpfXZhciBwZT1udWxsLHFlPW51bGw7ZnVuY3Rpb24gcmUoYSl7c2UoYSwwKX1mdW5jdGlvbiB0ZShhKXt2YXIgYj11ZShhKTtpZihXYShiKSlyZXR1cm4gYX1cbmZ1bmN0aW9uIHZlKGEsYil7aWYoXCJjaGFuZ2VcIj09PWEpcmV0dXJuIGJ9dmFyIHdlPSExO2lmKGlhKXt2YXIgeGU7aWYoaWEpe3ZhciB5ZT1cIm9uaW5wdXRcImluIGRvY3VtZW50O2lmKCF5ZSl7dmFyIHplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7emUuc2V0QXR0cmlidXRlKFwib25pbnB1dFwiLFwicmV0dXJuO1wiKTt5ZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgemUub25pbnB1dH14ZT15ZX1lbHNlIHhlPSExO3dlPXhlJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpfWZ1bmN0aW9uIEFlKCl7cGUmJihwZS5kZXRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixCZSkscWU9cGU9bnVsbCl9ZnVuY3Rpb24gQmUoYSl7aWYoXCJ2YWx1ZVwiPT09YS5wcm9wZXJ0eU5hbWUmJnRlKHFlKSl7dmFyIGI9W107bmUoYixxZSxhLHhiKGEpKTtKYihyZSxiKX19XG5mdW5jdGlvbiBDZShhLGIsYyl7XCJmb2N1c2luXCI9PT1hPyhBZSgpLHBlPWIscWU9YyxwZS5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixCZSkpOlwiZm9jdXNvdXRcIj09PWEmJkFlKCl9ZnVuY3Rpb24gRGUoYSl7aWYoXCJzZWxlY3Rpb25jaGFuZ2VcIj09PWF8fFwia2V5dXBcIj09PWF8fFwia2V5ZG93blwiPT09YSlyZXR1cm4gdGUocWUpfWZ1bmN0aW9uIEVlKGEsYil7aWYoXCJjbGlja1wiPT09YSlyZXR1cm4gdGUoYil9ZnVuY3Rpb24gRmUoYSxiKXtpZihcImlucHV0XCI9PT1hfHxcImNoYW5nZVwiPT09YSlyZXR1cm4gdGUoYil9ZnVuY3Rpb24gR2UoYSxiKXtyZXR1cm4gYT09PWImJigwIT09YXx8MS9hPT09MS9iKXx8YSE9PWEmJmIhPT1ifXZhciBIZT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpHZTtcbmZ1bmN0aW9uIEllKGEsYil7aWYoSGUoYSxiKSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT09dHlwZW9mIGF8fG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGJ8fG51bGw9PT1iKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKGEpLGQ9T2JqZWN0LmtleXMoYik7aWYoYy5sZW5ndGghPT1kLmxlbmd0aClyZXR1cm4hMTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2lmKCFqYS5jYWxsKGIsZSl8fCFIZShhW2VdLGJbZV0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEplKGEpe2Zvcig7YSYmYS5maXJzdENoaWxkOylhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX1cbmZ1bmN0aW9uIEtlKGEsYil7dmFyIGM9SmUoYSk7YT0wO2Zvcih2YXIgZDtjOyl7aWYoMz09PWMubm9kZVR5cGUpe2Q9YStjLnRleHRDb250ZW50Lmxlbmd0aDtpZihhPD1iJiZkPj1iKXJldHVybntub2RlOmMsb2Zmc2V0OmItYX07YT1kfWE6e2Zvcig7Yzspe2lmKGMubmV4dFNpYmxpbmcpe2M9Yy5uZXh0U2libGluZzticmVhayBhfWM9Yy5wYXJlbnROb2RlfWM9dm9pZCAwfWM9SmUoYyl9fWZ1bmN0aW9uIExlKGEsYil7cmV0dXJuIGEmJmI/YT09PWI/ITA6YSYmMz09PWEubm9kZVR5cGU/ITE6YiYmMz09PWIubm9kZVR5cGU/TGUoYSxiLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIGE/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPyEhKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMTYpOiExOiExfVxuZnVuY3Rpb24gTWUoKXtmb3IodmFyIGE9d2luZG93LGI9WGEoKTtiIGluc3RhbmNlb2YgYS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYz1cInN0cmluZ1wiPT09dHlwZW9mIGIuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGQpe2M9ITF9aWYoYylhPWIuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO2I9WGEoYS5kb2N1bWVudCl9cmV0dXJuIGJ9ZnVuY3Rpb24gTmUoYSl7dmFyIGI9YSYmYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiJiYoXCJpbnB1dFwiPT09YiYmKFwidGV4dFwiPT09YS50eXBlfHxcInNlYXJjaFwiPT09YS50eXBlfHxcInRlbFwiPT09YS50eXBlfHxcInVybFwiPT09YS50eXBlfHxcInBhc3N3b3JkXCI9PT1hLnR5cGUpfHxcInRleHRhcmVhXCI9PT1ifHxcInRydWVcIj09PWEuY29udGVudEVkaXRhYmxlKX1cbmZ1bmN0aW9uIE9lKGEpe3ZhciBiPU1lKCksYz1hLmZvY3VzZWRFbGVtLGQ9YS5zZWxlY3Rpb25SYW5nZTtpZihiIT09YyYmYyYmYy5vd25lckRvY3VtZW50JiZMZShjLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGMpKXtpZihudWxsIT09ZCYmTmUoYykpaWYoYj1kLnN0YXJ0LGE9ZC5lbmQsdm9pZCAwPT09YSYmKGE9YiksXCJzZWxlY3Rpb25TdGFydFwiaW4gYyljLnNlbGVjdGlvblN0YXJ0PWIsYy5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oYSxjLnZhbHVlLmxlbmd0aCk7ZWxzZSBpZihhPShiPWMub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZiLmRlZmF1bHRWaWV3fHx3aW5kb3csYS5nZXRTZWxlY3Rpb24pe2E9YS5nZXRTZWxlY3Rpb24oKTt2YXIgZT1jLnRleHRDb250ZW50Lmxlbmd0aCxmPU1hdGgubWluKGQuc3RhcnQsZSk7ZD12b2lkIDA9PT1kLmVuZD9mOk1hdGgubWluKGQuZW5kLGUpOyFhLmV4dGVuZCYmZj5kJiYoZT1kLGQ9ZixmPWUpO2U9S2UoYyxmKTt2YXIgZz1LZShjLFxuZCk7ZSYmZyYmKDEhPT1hLnJhbmdlQ291bnR8fGEuYW5jaG9yTm9kZSE9PWUubm9kZXx8YS5hbmNob3JPZmZzZXQhPT1lLm9mZnNldHx8YS5mb2N1c05vZGUhPT1nLm5vZGV8fGEuZm9jdXNPZmZzZXQhPT1nLm9mZnNldCkmJihiPWIuY3JlYXRlUmFuZ2UoKSxiLnNldFN0YXJ0KGUubm9kZSxlLm9mZnNldCksYS5yZW1vdmVBbGxSYW5nZXMoKSxmPmQ/KGEuYWRkUmFuZ2UoYiksYS5leHRlbmQoZy5ub2RlLGcub2Zmc2V0KSk6KGIuc2V0RW5kKGcubm9kZSxnLm9mZnNldCksYS5hZGRSYW5nZShiKSkpfWI9W107Zm9yKGE9YzthPWEucGFyZW50Tm9kZTspMT09PWEubm9kZVR5cGUmJmIucHVzaCh7ZWxlbWVudDphLGxlZnQ6YS5zY3JvbGxMZWZ0LHRvcDphLnNjcm9sbFRvcH0pO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmZvY3VzJiZjLmZvY3VzKCk7Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKylhPWJbY10sYS5lbGVtZW50LnNjcm9sbExlZnQ9YS5sZWZ0LGEuZWxlbWVudC5zY3JvbGxUb3A9YS50b3B9fVxudmFyIFBlPWlhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsUWU9bnVsbCxSZT1udWxsLFNlPW51bGwsVGU9ITE7XG5mdW5jdGlvbiBVZShhLGIsYyl7dmFyIGQ9Yy53aW5kb3c9PT1jP2MuZG9jdW1lbnQ6OT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQ7VGV8fG51bGw9PVFlfHxRZSE9PVhhKGQpfHwoZD1RZSxcInNlbGVjdGlvblN0YXJ0XCJpbiBkJiZOZShkKT9kPXtzdGFydDpkLnNlbGVjdGlvblN0YXJ0LGVuZDpkLnNlbGVjdGlvbkVuZH06KGQ9KGQub3duZXJEb2N1bWVudCYmZC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpLGQ9e2FuY2hvck5vZGU6ZC5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpkLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ZC5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ZC5mb2N1c09mZnNldH0pLFNlJiZJZShTZSxkKXx8KFNlPWQsZD1vZShSZSxcIm9uU2VsZWN0XCIpLDA8ZC5sZW5ndGgmJihiPW5ldyB0ZChcIm9uU2VsZWN0XCIsXCJzZWxlY3RcIixudWxsLGIsYyksYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpkfSksYi50YXJnZXQ9UWUpKSl9XG5mdW5jdGlvbiBWZShhLGIpe3ZhciBjPXt9O2NbYS50b0xvd2VyQ2FzZSgpXT1iLnRvTG93ZXJDYXNlKCk7Y1tcIldlYmtpdFwiK2FdPVwid2Via2l0XCIrYjtjW1wiTW96XCIrYV09XCJtb3pcIitiO3JldHVybiBjfXZhciBXZT17YW5pbWF0aW9uZW5kOlZlKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOlZlKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6VmUoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25lbmQ6VmUoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxYZT17fSxZZT17fTtcbmlhJiYoWWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgV2UuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgV2UuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgV2UuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgV2UudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtmdW5jdGlvbiBaZShhKXtpZihYZVthXSlyZXR1cm4gWGVbYV07aWYoIVdlW2FdKXJldHVybiBhO3ZhciBiPVdlW2FdLGM7Zm9yKGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpJiZjIGluIFllKXJldHVybiBYZVthXT1iW2NdO3JldHVybiBhfXZhciAkZT1aZShcImFuaW1hdGlvbmVuZFwiKSxhZj1aZShcImFuaW1hdGlvbml0ZXJhdGlvblwiKSxiZj1aZShcImFuaW1hdGlvbnN0YXJ0XCIpLGNmPVplKFwidHJhbnNpdGlvbmVuZFwiKSxkZj1uZXcgTWFwLGVmPVwiYWJvcnQgYXV4Q2xpY2sgY2FuY2VsIGNhblBsYXkgY2FuUGxheVRocm91Z2ggY2xpY2sgY2xvc2UgY29udGV4dE1lbnUgY29weSBjdXQgZHJhZyBkcmFnRW5kIGRyYWdFbnRlciBkcmFnRXhpdCBkcmFnTGVhdmUgZHJhZ092ZXIgZHJhZ1N0YXJ0IGRyb3AgZHVyYXRpb25DaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgZ290UG9pbnRlckNhcHR1cmUgaW5wdXQgaW52YWxpZCBrZXlEb3duIGtleVByZXNzIGtleVVwIGxvYWQgbG9hZGVkRGF0YSBsb2FkZWRNZXRhZGF0YSBsb2FkU3RhcnQgbG9zdFBvaW50ZXJDYXB0dXJlIG1vdXNlRG93biBtb3VzZU1vdmUgbW91c2VPdXQgbW91c2VPdmVyIG1vdXNlVXAgcGFzdGUgcGF1c2UgcGxheSBwbGF5aW5nIHBvaW50ZXJDYW5jZWwgcG9pbnRlckRvd24gcG9pbnRlck1vdmUgcG9pbnRlck91dCBwb2ludGVyT3ZlciBwb2ludGVyVXAgcHJvZ3Jlc3MgcmF0ZUNoYW5nZSByZXNldCByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdWJtaXQgc3VzcGVuZCB0aW1lVXBkYXRlIHRvdWNoQ2FuY2VsIHRvdWNoRW5kIHRvdWNoU3RhcnQgdm9sdW1lQ2hhbmdlIHNjcm9sbCB0b2dnbGUgdG91Y2hNb3ZlIHdhaXRpbmcgd2hlZWxcIi5zcGxpdChcIiBcIik7XG5mdW5jdGlvbiBmZihhLGIpe2RmLnNldChhLGIpO2ZhKGIsW2FdKX1mb3IodmFyIGdmPTA7Z2Y8ZWYubGVuZ3RoO2dmKyspe3ZhciBoZj1lZltnZl0samY9aGYudG9Mb3dlckNhc2UoKSxrZj1oZlswXS50b1VwcGVyQ2FzZSgpK2hmLnNsaWNlKDEpO2ZmKGpmLFwib25cIitrZil9ZmYoJGUsXCJvbkFuaW1hdGlvbkVuZFwiKTtmZihhZixcIm9uQW5pbWF0aW9uSXRlcmF0aW9uXCIpO2ZmKGJmLFwib25BbmltYXRpb25TdGFydFwiKTtmZihcImRibGNsaWNrXCIsXCJvbkRvdWJsZUNsaWNrXCIpO2ZmKFwiZm9jdXNpblwiLFwib25Gb2N1c1wiKTtmZihcImZvY3Vzb3V0XCIsXCJvbkJsdXJcIik7ZmYoY2YsXCJvblRyYW5zaXRpb25FbmRcIik7aGEoXCJvbk1vdXNlRW50ZXJcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtoYShcIm9uTW91c2VMZWF2ZVwiLFtcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl0pO2hhKFwib25Qb2ludGVyRW50ZXJcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSk7XG5oYShcIm9uUG9pbnRlckxlYXZlXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO2ZhKFwib25DaGFuZ2VcIixcImNoYW5nZSBjbGljayBmb2N1c2luIGZvY3Vzb3V0IGlucHV0IGtleWRvd24ga2V5dXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpKTtmYShcIm9uU2VsZWN0XCIsXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpO2ZhKFwib25CZWZvcmVJbnB1dFwiLFtcImNvbXBvc2l0aW9uZW5kXCIsXCJrZXlwcmVzc1wiLFwidGV4dElucHV0XCIsXCJwYXN0ZVwiXSk7ZmEoXCJvbkNvbXBvc2l0aW9uRW5kXCIsXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7ZmEoXCJvbkNvbXBvc2l0aW9uU3RhcnRcIixcImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpO1xuZmEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIGxmPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksbWY9bmV3IFNldChcImNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHRvZ2dsZVwiLnNwbGl0KFwiIFwiKS5jb25jYXQobGYpKTtcbmZ1bmN0aW9uIG5mKGEsYixjKXt2YXIgZD1hLnR5cGV8fFwidW5rbm93bi1ldmVudFwiO2EuY3VycmVudFRhcmdldD1jO1ViKGQsYix2b2lkIDAsYSk7YS5jdXJyZW50VGFyZ2V0PW51bGx9XG5mdW5jdGlvbiBzZShhLGIpe2I9MCE9PShiJjQpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgZD1hW2NdLGU9ZC5ldmVudDtkPWQubGlzdGVuZXJzO2E6e3ZhciBmPXZvaWQgMDtpZihiKWZvcih2YXIgZz1kLmxlbmd0aC0xOzA8PWc7Zy0tKXt2YXIgaD1kW2ddLGs9aC5pbnN0YW5jZSxsPWguY3VycmVudFRhcmdldDtoPWgubGlzdGVuZXI7aWYoayE9PWYmJmUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO25mKGUsaCxsKTtmPWt9ZWxzZSBmb3IoZz0wO2c8ZC5sZW5ndGg7ZysrKXtoPWRbZ107az1oLmluc3RhbmNlO2w9aC5jdXJyZW50VGFyZ2V0O2g9aC5saXN0ZW5lcjtpZihrIT09ZiYmZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGE7bmYoZSxoLGwpO2Y9a319fWlmKFFiKXRocm93IGE9UmIsUWI9ITEsUmI9bnVsbCxhO31cbmZ1bmN0aW9uIEQoYSxiKXt2YXIgYz1iW29mXTt2b2lkIDA9PT1jJiYoYz1iW29mXT1uZXcgU2V0KTt2YXIgZD1hK1wiX19idWJibGVcIjtjLmhhcyhkKXx8KHBmKGIsYSwyLCExKSxjLmFkZChkKSl9ZnVuY3Rpb24gcWYoYSxiLGMpe3ZhciBkPTA7YiYmKGR8PTQpO3BmKGMsYSxkLGIpfXZhciByZj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHNmKGEpe2lmKCFhW3JmXSl7YVtyZl09ITA7ZGEuZm9yRWFjaChmdW5jdGlvbihiKXtcInNlbGVjdGlvbmNoYW5nZVwiIT09YiYmKG1mLmhhcyhiKXx8cWYoYiwhMSxhKSxxZihiLCEwLGEpKX0pO3ZhciBiPTk9PT1hLm5vZGVUeXBlP2E6YS5vd25lckRvY3VtZW50O251bGw9PT1ifHxiW3JmXXx8KGJbcmZdPSEwLHFmKFwic2VsZWN0aW9uY2hhbmdlXCIsITEsYikpfX1cbmZ1bmN0aW9uIHBmKGEsYixjLGQpe3N3aXRjaChqZChiKSl7Y2FzZSAxOnZhciBlPWVkO2JyZWFrO2Nhc2UgNDplPWdkO2JyZWFrO2RlZmF1bHQ6ZT1mZH1jPWUuYmluZChudWxsLGIsYyxhKTtlPXZvaWQgMDshTGJ8fFwidG91Y2hzdGFydFwiIT09YiYmXCJ0b3VjaG1vdmVcIiE9PWImJlwid2hlZWxcIiE9PWJ8fChlPSEwKTtkP3ZvaWQgMCE9PWU/YS5hZGRFdmVudExpc3RlbmVyKGIsYyx7Y2FwdHVyZTohMCxwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCEwKTp2b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse3Bhc3NpdmU6ZX0pOmEuYWRkRXZlbnRMaXN0ZW5lcihiLGMsITEpfVxuZnVuY3Rpb24gaGQoYSxiLGMsZCxlKXt2YXIgZj1kO2lmKDA9PT0oYiYxKSYmMD09PShiJjIpJiZudWxsIT09ZClhOmZvcig7Oyl7aWYobnVsbD09PWQpcmV0dXJuO3ZhciBnPWQudGFnO2lmKDM9PT1nfHw0PT09Zyl7dmFyIGg9ZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihoPT09ZXx8OD09PWgubm9kZVR5cGUmJmgucGFyZW50Tm9kZT09PWUpYnJlYWs7aWYoND09PWcpZm9yKGc9ZC5yZXR1cm47bnVsbCE9PWc7KXt2YXIgaz1nLnRhZztpZigzPT09a3x8ND09PWspaWYoaz1nLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGs9PT1lfHw4PT09ay5ub2RlVHlwZSYmay5wYXJlbnROb2RlPT09ZSlyZXR1cm47Zz1nLnJldHVybn1mb3IoO251bGwhPT1oOyl7Zz1XYyhoKTtpZihudWxsPT09ZylyZXR1cm47az1nLnRhZztpZig1PT09a3x8Nj09PWspe2Q9Zj1nO2NvbnRpbnVlIGF9aD1oLnBhcmVudE5vZGV9fWQ9ZC5yZXR1cm59SmIoZnVuY3Rpb24oKXt2YXIgZD1mLGU9eGIoYyksZz1bXTtcbmE6e3ZhciBoPWRmLmdldChhKTtpZih2b2lkIDAhPT1oKXt2YXIgaz10ZCxuPWE7c3dpdGNoKGEpe2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDA9PT1vZChjKSlicmVhayBhO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6az1SZDticmVhaztjYXNlIFwiZm9jdXNpblwiOm49XCJmb2N1c1wiO2s9RmQ7YnJlYWs7Y2FzZSBcImZvY3Vzb3V0XCI6bj1cImJsdXJcIjtrPUZkO2JyZWFrO2Nhc2UgXCJiZWZvcmVibHVyXCI6Y2FzZSBcImFmdGVyYmx1clwiOms9RmQ7YnJlYWs7Y2FzZSBcImNsaWNrXCI6aWYoMj09PWMuYnV0dG9uKWJyZWFrIGE7Y2FzZSBcImF1eGNsaWNrXCI6Y2FzZSBcImRibGNsaWNrXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJtb3VzZW1vdmVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJtb3VzZW91dFwiOmNhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwiY29udGV4dG1lbnVcIjprPUJkO2JyZWFrO2Nhc2UgXCJkcmFnXCI6Y2FzZSBcImRyYWdlbmRcIjpjYXNlIFwiZHJhZ2VudGVyXCI6Y2FzZSBcImRyYWdleGl0XCI6Y2FzZSBcImRyYWdsZWF2ZVwiOmNhc2UgXCJkcmFnb3ZlclwiOmNhc2UgXCJkcmFnc3RhcnRcIjpjYXNlIFwiZHJvcFwiOms9XG5EZDticmVhaztjYXNlIFwidG91Y2hjYW5jZWxcIjpjYXNlIFwidG91Y2hlbmRcIjpjYXNlIFwidG91Y2htb3ZlXCI6Y2FzZSBcInRvdWNoc3RhcnRcIjprPVZkO2JyZWFrO2Nhc2UgJGU6Y2FzZSBhZjpjYXNlIGJmOms9SGQ7YnJlYWs7Y2FzZSBjZjprPVhkO2JyZWFrO2Nhc2UgXCJzY3JvbGxcIjprPXZkO2JyZWFrO2Nhc2UgXCJ3aGVlbFwiOms9WmQ7YnJlYWs7Y2FzZSBcImNvcHlcIjpjYXNlIFwiY3V0XCI6Y2FzZSBcInBhc3RlXCI6az1KZDticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcInBvaW50ZXJjYW5jZWxcIjpjYXNlIFwicG9pbnRlcmRvd25cIjpjYXNlIFwicG9pbnRlcm1vdmVcIjpjYXNlIFwicG9pbnRlcm91dFwiOmNhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVydXBcIjprPVRkfXZhciB0PTAhPT0oYiY0KSxKPSF0JiZcInNjcm9sbFwiPT09YSx4PXQ/bnVsbCE9PWg/aCtcIkNhcHR1cmVcIjpudWxsOmg7dD1bXTtmb3IodmFyIHc9ZCx1O251bGwhPT1cbnc7KXt1PXc7dmFyIEY9dS5zdGF0ZU5vZGU7NT09PXUudGFnJiZudWxsIT09RiYmKHU9RixudWxsIT09eCYmKEY9S2Iodyx4KSxudWxsIT1GJiZ0LnB1c2godGYodyxGLHUpKSkpO2lmKEopYnJlYWs7dz13LnJldHVybn0wPHQubGVuZ3RoJiYoaD1uZXcgayhoLG4sbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6aCxsaXN0ZW5lcnM6dH0pKX19aWYoMD09PShiJjcpKXthOntoPVwibW91c2VvdmVyXCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hO2s9XCJtb3VzZW91dFwiPT09YXx8XCJwb2ludGVyb3V0XCI9PT1hO2lmKGgmJmMhPT13YiYmKG49Yy5yZWxhdGVkVGFyZ2V0fHxjLmZyb21FbGVtZW50KSYmKFdjKG4pfHxuW3VmXSkpYnJlYWsgYTtpZihrfHxoKXtoPWUud2luZG93PT09ZT9lOihoPWUub3duZXJEb2N1bWVudCk/aC5kZWZhdWx0Vmlld3x8aC5wYXJlbnRXaW5kb3c6d2luZG93O2lmKGspe2lmKG49Yy5yZWxhdGVkVGFyZ2V0fHxjLnRvRWxlbWVudCxrPWQsbj1uP1djKG4pOm51bGwsbnVsbCE9PVxubiYmKEo9VmIobiksbiE9PUp8fDUhPT1uLnRhZyYmNiE9PW4udGFnKSluPW51bGx9ZWxzZSBrPW51bGwsbj1kO2lmKGshPT1uKXt0PUJkO0Y9XCJvbk1vdXNlTGVhdmVcIjt4PVwib25Nb3VzZUVudGVyXCI7dz1cIm1vdXNlXCI7aWYoXCJwb2ludGVyb3V0XCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hKXQ9VGQsRj1cIm9uUG9pbnRlckxlYXZlXCIseD1cIm9uUG9pbnRlckVudGVyXCIsdz1cInBvaW50ZXJcIjtKPW51bGw9PWs/aDp1ZShrKTt1PW51bGw9PW4/aDp1ZShuKTtoPW5ldyB0KEYsdytcImxlYXZlXCIsayxjLGUpO2gudGFyZ2V0PUo7aC5yZWxhdGVkVGFyZ2V0PXU7Rj1udWxsO1djKGUpPT09ZCYmKHQ9bmV3IHQoeCx3K1wiZW50ZXJcIixuLGMsZSksdC50YXJnZXQ9dSx0LnJlbGF0ZWRUYXJnZXQ9SixGPXQpO0o9RjtpZihrJiZuKWI6e3Q9azt4PW47dz0wO2Zvcih1PXQ7dTt1PXZmKHUpKXcrKzt1PTA7Zm9yKEY9eDtGO0Y9dmYoRikpdSsrO2Zvcig7MDx3LXU7KXQ9dmYodCksdy0tO2Zvcig7MDx1LXc7KXg9XG52Zih4KSx1LS07Zm9yKDt3LS07KXtpZih0PT09eHx8bnVsbCE9PXgmJnQ9PT14LmFsdGVybmF0ZSlicmVhayBiO3Q9dmYodCk7eD12Zih4KX10PW51bGx9ZWxzZSB0PW51bGw7bnVsbCE9PWsmJndmKGcsaCxrLHQsITEpO251bGwhPT1uJiZudWxsIT09SiYmd2YoZyxKLG4sdCwhMCl9fX1hOntoPWQ/dWUoZCk6d2luZG93O2s9aC5ub2RlTmFtZSYmaC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKFwic2VsZWN0XCI9PT1rfHxcImlucHV0XCI9PT1rJiZcImZpbGVcIj09PWgudHlwZSl2YXIgbmE9dmU7ZWxzZSBpZihtZShoKSlpZih3ZSluYT1GZTtlbHNle25hPURlO3ZhciB4YT1DZX1lbHNlKGs9aC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWsudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWgudHlwZXx8XCJyYWRpb1wiPT09aC50eXBlKSYmKG5hPUVlKTtpZihuYSYmKG5hPW5hKGEsZCkpKXtuZShnLG5hLGMsZSk7YnJlYWsgYX14YSYmeGEoYSxoLGQpO1wiZm9jdXNvdXRcIj09PWEmJih4YT1oLl93cmFwcGVyU3RhdGUpJiZcbnhhLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT1oLnR5cGUmJmNiKGgsXCJudW1iZXJcIixoLnZhbHVlKX14YT1kP3VlKGQpOndpbmRvdztzd2l0Y2goYSl7Y2FzZSBcImZvY3VzaW5cIjppZihtZSh4YSl8fFwidHJ1ZVwiPT09eGEuY29udGVudEVkaXRhYmxlKVFlPXhhLFJlPWQsU2U9bnVsbDticmVhaztjYXNlIFwiZm9jdXNvdXRcIjpTZT1SZT1RZT1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZWRvd25cIjpUZT0hMDticmVhaztjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJkcmFnZW5kXCI6VGU9ITE7VWUoZyxjLGUpO2JyZWFrO2Nhc2UgXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihQZSlicmVhaztjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOlVlKGcsYyxlKX12YXIgJGE7aWYoYWUpYjp7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbnN0YXJ0XCI6dmFyIGJhPVwib25Db21wb3NpdGlvblN0YXJ0XCI7YnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpiYT1cIm9uQ29tcG9zaXRpb25FbmRcIjtcbmJyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6YmE9XCJvbkNvbXBvc2l0aW9uVXBkYXRlXCI7YnJlYWsgYn1iYT12b2lkIDB9ZWxzZSBpZT9nZShhLGMpJiYoYmE9XCJvbkNvbXBvc2l0aW9uRW5kXCIpOlwia2V5ZG93blwiPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoYmE9XCJvbkNvbXBvc2l0aW9uU3RhcnRcIik7YmEmJihkZSYmXCJrb1wiIT09Yy5sb2NhbGUmJihpZXx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PWJhP1wib25Db21wb3NpdGlvbkVuZFwiPT09YmEmJmllJiYoJGE9bmQoKSk6KGtkPWUsbGQ9XCJ2YWx1ZVwiaW4ga2Q/a2QudmFsdWU6a2QudGV4dENvbnRlbnQsaWU9ITApKSx4YT1vZShkLGJhKSwwPHhhLmxlbmd0aCYmKGJhPW5ldyBMZChiYSxhLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmJhLGxpc3RlbmVyczp4YX0pLCRhP2JhLmRhdGE9JGE6KCRhPWhlKGMpLG51bGwhPT0kYSYmKGJhLmRhdGE9JGEpKSkpO2lmKCRhPWNlP2plKGEsYyk6a2UoYSxjKSlkPW9lKGQsXCJvbkJlZm9yZUlucHV0XCIpLFxuMDxkLmxlbmd0aCYmKGU9bmV3IExkKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLGMsZSksZy5wdXNoKHtldmVudDplLGxpc3RlbmVyczpkfSksZS5kYXRhPSRhKX1zZShnLGIpfSl9ZnVuY3Rpb24gdGYoYSxiLGMpe3JldHVybntpbnN0YW5jZTphLGxpc3RlbmVyOmIsY3VycmVudFRhcmdldDpjfX1mdW5jdGlvbiBvZShhLGIpe2Zvcih2YXIgYz1iK1wiQ2FwdHVyZVwiLGQ9W107bnVsbCE9PWE7KXt2YXIgZT1hLGY9ZS5zdGF0ZU5vZGU7NT09PWUudGFnJiZudWxsIT09ZiYmKGU9ZixmPUtiKGEsYyksbnVsbCE9ZiYmZC51bnNoaWZ0KHRmKGEsZixlKSksZj1LYihhLGIpLG51bGwhPWYmJmQucHVzaCh0ZihhLGYsZSkpKTthPWEucmV0dXJufXJldHVybiBkfWZ1bmN0aW9uIHZmKGEpe2lmKG51bGw9PT1hKXJldHVybiBudWxsO2RvIGE9YS5yZXR1cm47d2hpbGUoYSYmNSE9PWEudGFnKTtyZXR1cm4gYT9hOm51bGx9XG5mdW5jdGlvbiB3ZihhLGIsYyxkLGUpe2Zvcih2YXIgZj1iLl9yZWFjdE5hbWUsZz1bXTtudWxsIT09YyYmYyE9PWQ7KXt2YXIgaD1jLGs9aC5hbHRlcm5hdGUsbD1oLnN0YXRlTm9kZTtpZihudWxsIT09ayYmaz09PWQpYnJlYWs7NT09PWgudGFnJiZudWxsIT09bCYmKGg9bCxlPyhrPUtiKGMsZiksbnVsbCE9ayYmZy51bnNoaWZ0KHRmKGMsayxoKSkpOmV8fChrPUtiKGMsZiksbnVsbCE9ayYmZy5wdXNoKHRmKGMsayxoKSkpKTtjPWMucmV0dXJufTAhPT1nLmxlbmd0aCYmYS5wdXNoKHtldmVudDpiLGxpc3RlbmVyczpnfSl9dmFyIHhmPS9cXHJcXG4/L2cseWY9L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIHpmKGEpe3JldHVybihcInN0cmluZ1wiPT09dHlwZW9mIGE/YTpcIlwiK2EpLnJlcGxhY2UoeGYsXCJcXG5cIikucmVwbGFjZSh5ZixcIlwiKX1mdW5jdGlvbiBBZihhLGIsYyl7Yj16ZihiKTtpZih6ZihhKSE9PWImJmMpdGhyb3cgRXJyb3IocCg0MjUpKTt9ZnVuY3Rpb24gQmYoKXt9XG52YXIgQ2Y9bnVsbCxEZj1udWxsO2Z1bmN0aW9uIEVmKGEsYil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09YXx8XCJub3NjcmlwdFwiPT09YXx8XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm51bWJlclwiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfVxudmFyIEZmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLEdmPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxIZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOnZvaWQgMCxKZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBIZj9mdW5jdGlvbihhKXtyZXR1cm4gSGYucmVzb2x2ZShudWxsKS50aGVuKGEpLmNhdGNoKElmKX06RmY7ZnVuY3Rpb24gSWYoYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSl9XG5mdW5jdGlvbiBLZihhLGIpe3ZhciBjPWIsZD0wO2Rve3ZhciBlPWMubmV4dFNpYmxpbmc7YS5yZW1vdmVDaGlsZChjKTtpZihlJiY4PT09ZS5ub2RlVHlwZSlpZihjPWUuZGF0YSxcIi8kXCI9PT1jKXtpZigwPT09ZCl7YS5yZW1vdmVDaGlsZChlKTtiZChiKTtyZXR1cm59ZC0tfWVsc2VcIiRcIiE9PWMmJlwiJD9cIiE9PWMmJlwiJCFcIiE9PWN8fGQrKztjPWV9d2hpbGUoYyk7YmQoYil9ZnVuY3Rpb24gTGYoYSl7Zm9yKDtudWxsIT1hO2E9YS5uZXh0U2libGluZyl7dmFyIGI9YS5ub2RlVHlwZTtpZigxPT09Ynx8Mz09PWIpYnJlYWs7aWYoOD09PWIpe2I9YS5kYXRhO2lmKFwiJFwiPT09Ynx8XCIkIVwiPT09Ynx8XCIkP1wiPT09YilicmVhaztpZihcIi8kXCI9PT1iKXJldHVybiBudWxsfX1yZXR1cm4gYX1cbmZ1bmN0aW9uIE1mKGEpe2E9YS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIkXCI9PT1jfHxcIiQhXCI9PT1jfHxcIiQ/XCI9PT1jKXtpZigwPT09YilyZXR1cm4gYTtiLS19ZWxzZVwiLyRcIj09PWMmJmIrK31hPWEucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfXZhciBOZj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxPZj1cIl9fcmVhY3RGaWJlciRcIitOZixQZj1cIl9fcmVhY3RQcm9wcyRcIitOZix1Zj1cIl9fcmVhY3RDb250YWluZXIkXCIrTmYsb2Y9XCJfX3JlYWN0RXZlbnRzJFwiK05mLFFmPVwiX19yZWFjdExpc3RlbmVycyRcIitOZixSZj1cIl9fcmVhY3RIYW5kbGVzJFwiK05mO1xuZnVuY3Rpb24gV2MoYSl7dmFyIGI9YVtPZl07aWYoYilyZXR1cm4gYjtmb3IodmFyIGM9YS5wYXJlbnROb2RlO2M7KXtpZihiPWNbdWZdfHxjW09mXSl7Yz1iLmFsdGVybmF0ZTtpZihudWxsIT09Yi5jaGlsZHx8bnVsbCE9PWMmJm51bGwhPT1jLmNoaWxkKWZvcihhPU1mKGEpO251bGwhPT1hOyl7aWYoYz1hW09mXSlyZXR1cm4gYzthPU1mKGEpfXJldHVybiBifWE9YztjPWEucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBDYihhKXthPWFbT2ZdfHxhW3VmXTtyZXR1cm4hYXx8NSE9PWEudGFnJiY2IT09YS50YWcmJjEzIT09YS50YWcmJjMhPT1hLnRhZz9udWxsOmF9ZnVuY3Rpb24gdWUoYSl7aWYoNT09PWEudGFnfHw2PT09YS50YWcpcmV0dXJuIGEuc3RhdGVOb2RlO3Rocm93IEVycm9yKHAoMzMpKTt9ZnVuY3Rpb24gRGIoYSl7cmV0dXJuIGFbUGZdfHxudWxsfXZhciBTZj1bXSxUZj0tMTtmdW5jdGlvbiBVZihhKXtyZXR1cm57Y3VycmVudDphfX1cbmZ1bmN0aW9uIEUoYSl7MD5UZnx8KGEuY3VycmVudD1TZltUZl0sU2ZbVGZdPW51bGwsVGYtLSl9ZnVuY3Rpb24gRyhhLGIpe1RmKys7U2ZbVGZdPWEuY3VycmVudDthLmN1cnJlbnQ9Yn12YXIgVmY9e30sSD1VZihWZiksV2Y9VWYoITEpLFhmPVZmO2Z1bmN0aW9uIFlmKGEsYil7dmFyIGM9YS50eXBlLmNvbnRleHRUeXBlcztpZighYylyZXR1cm4gVmY7dmFyIGQ9YS5zdGF0ZU5vZGU7aWYoZCYmZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PT09YilyZXR1cm4gZC5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dDt2YXIgZT17fSxmO2ZvcihmIGluIGMpZVtmXT1iW2ZdO2QmJihhPWEuc3RhdGVOb2RlLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD1iLGEuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ9ZSk7cmV0dXJuIGV9XG5mdW5jdGlvbiBaZihhKXthPWEuY2hpbGRDb250ZXh0VHlwZXM7cmV0dXJuIG51bGwhPT1hJiZ2b2lkIDAhPT1hfWZ1bmN0aW9uICRmKCl7RShXZik7RShIKX1mdW5jdGlvbiBhZyhhLGIsYyl7aWYoSC5jdXJyZW50IT09VmYpdGhyb3cgRXJyb3IocCgxNjgpKTtHKEgsYik7RyhXZixjKX1mdW5jdGlvbiBiZyhhLGIsYyl7dmFyIGQ9YS5zdGF0ZU5vZGU7Yj1iLmNoaWxkQ29udGV4dFR5cGVzO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBkLmdldENoaWxkQ29udGV4dClyZXR1cm4gYztkPWQuZ2V0Q2hpbGRDb250ZXh0KCk7Zm9yKHZhciBlIGluIGQpaWYoIShlIGluIGIpKXRocm93IEVycm9yKHAoMTA4LFJhKGEpfHxcIlVua25vd25cIixlKSk7cmV0dXJuIEEoe30sYyxkKX1cbmZ1bmN0aW9uIGNnKGEpe2E9KGE9YS5zdGF0ZU5vZGUpJiZhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0fHxWZjtYZj1ILmN1cnJlbnQ7RyhILGEpO0coV2YsV2YuY3VycmVudCk7cmV0dXJuITB9ZnVuY3Rpb24gZGcoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKCFkKXRocm93IEVycm9yKHAoMTY5KSk7Yz8oYT1iZyhhLGIsWGYpLGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9YSxFKFdmKSxFKEgpLEcoSCxhKSk6RShXZik7RyhXZixjKX12YXIgZWc9bnVsbCxmZz0hMSxnZz0hMTtmdW5jdGlvbiBoZyhhKXtudWxsPT09ZWc/ZWc9W2FdOmVnLnB1c2goYSl9ZnVuY3Rpb24gaWcoYSl7Zmc9ITA7aGcoYSl9XG5mdW5jdGlvbiBqZygpe2lmKCFnZyYmbnVsbCE9PWVnKXtnZz0hMDt2YXIgYT0wLGI9Qzt0cnl7dmFyIGM9ZWc7Zm9yKEM9MTthPGMubGVuZ3RoO2ErKyl7dmFyIGQ9Y1thXTtkbyBkPWQoITApO3doaWxlKG51bGwhPT1kKX1lZz1udWxsO2ZnPSExfWNhdGNoKGUpe3Rocm93IG51bGwhPT1lZyYmKGVnPWVnLnNsaWNlKGErMSkpLGFjKGZjLGpnKSxlO31maW5hbGx5e0M9YixnZz0hMX19cmV0dXJuIG51bGx9dmFyIGtnPVtdLGxnPTAsbWc9bnVsbCxuZz0wLG9nPVtdLHBnPTAscWc9bnVsbCxyZz0xLHNnPVwiXCI7ZnVuY3Rpb24gdGcoYSxiKXtrZ1tsZysrXT1uZztrZ1tsZysrXT1tZzttZz1hO25nPWJ9XG5mdW5jdGlvbiB1ZyhhLGIsYyl7b2dbcGcrK109cmc7b2dbcGcrK109c2c7b2dbcGcrK109cWc7cWc9YTt2YXIgZD1yZzthPXNnO3ZhciBlPTMyLW9jKGQpLTE7ZCY9figxPDxlKTtjKz0xO3ZhciBmPTMyLW9jKGIpK2U7aWYoMzA8Zil7dmFyIGc9ZS1lJTU7Zj0oZCYoMTw8ZyktMSkudG9TdHJpbmcoMzIpO2Q+Pj1nO2UtPWc7cmc9MTw8MzItb2MoYikrZXxjPDxlfGQ7c2c9ZithfWVsc2Ugcmc9MTw8ZnxjPDxlfGQsc2c9YX1mdW5jdGlvbiB2ZyhhKXtudWxsIT09YS5yZXR1cm4mJih0ZyhhLDEpLHVnKGEsMSwwKSl9ZnVuY3Rpb24gd2coYSl7Zm9yKDthPT09bWc7KW1nPWtnWy0tbGddLGtnW2xnXT1udWxsLG5nPWtnWy0tbGddLGtnW2xnXT1udWxsO2Zvcig7YT09PXFnOylxZz1vZ1stLXBnXSxvZ1twZ109bnVsbCxzZz1vZ1stLXBnXSxvZ1twZ109bnVsbCxyZz1vZ1stLXBnXSxvZ1twZ109bnVsbH12YXIgeGc9bnVsbCx5Zz1udWxsLEk9ITEsemc9bnVsbDtcbmZ1bmN0aW9uIEFnKGEsYil7dmFyIGM9QmcoNSxudWxsLG51bGwsMCk7Yy5lbGVtZW50VHlwZT1cIkRFTEVURURcIjtjLnN0YXRlTm9kZT1iO2MucmV0dXJuPWE7Yj1hLmRlbGV0aW9ucztudWxsPT09Yj8oYS5kZWxldGlvbnM9W2NdLGEuZmxhZ3N8PTE2KTpiLnB1c2goYyl9XG5mdW5jdGlvbiBDZyhhLGIpe3N3aXRjaChhLnRhZyl7Y2FzZSA1OnZhciBjPWEudHlwZTtiPTEhPT1iLm5vZGVUeXBlfHxjLnRvTG93ZXJDYXNlKCkhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/bnVsbDpiO3JldHVybiBudWxsIT09Yj8oYS5zdGF0ZU5vZGU9Yix4Zz1hLHlnPUxmKGIuZmlyc3RDaGlsZCksITApOiExO2Nhc2UgNjpyZXR1cm4gYj1cIlwiPT09YS5wZW5kaW5nUHJvcHN8fDMhPT1iLm5vZGVUeXBlP251bGw6YixudWxsIT09Yj8oYS5zdGF0ZU5vZGU9Yix4Zz1hLHlnPW51bGwsITApOiExO2Nhc2UgMTM6cmV0dXJuIGI9OCE9PWIubm9kZVR5cGU/bnVsbDpiLG51bGwhPT1iPyhjPW51bGwhPT1xZz97aWQ6cmcsb3ZlcmZsb3c6c2d9Om51bGwsYS5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmIsdHJlZUNvbnRleHQ6YyxyZXRyeUxhbmU6MTA3Mzc0MTgyNH0sYz1CZygxOCxudWxsLG51bGwsMCksYy5zdGF0ZU5vZGU9YixjLnJldHVybj1hLGEuY2hpbGQ9Yyx4Zz1hLHlnPVxubnVsbCwhMCk6ITE7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gRGcoYSl7cmV0dXJuIDAhPT0oYS5tb2RlJjEpJiYwPT09KGEuZmxhZ3MmMTI4KX1mdW5jdGlvbiBFZyhhKXtpZihJKXt2YXIgYj15ZztpZihiKXt2YXIgYz1iO2lmKCFDZyhhLGIpKXtpZihEZyhhKSl0aHJvdyBFcnJvcihwKDQxOCkpO2I9TGYoYy5uZXh0U2libGluZyk7dmFyIGQ9eGc7YiYmQ2coYSxiKT9BZyhkLGMpOihhLmZsYWdzPWEuZmxhZ3MmLTQwOTd8MixJPSExLHhnPWEpfX1lbHNle2lmKERnKGEpKXRocm93IEVycm9yKHAoNDE4KSk7YS5mbGFncz1hLmZsYWdzJi00MDk3fDI7ST0hMTt4Zz1hfX19ZnVuY3Rpb24gRmcoYSl7Zm9yKGE9YS5yZXR1cm47bnVsbCE9PWEmJjUhPT1hLnRhZyYmMyE9PWEudGFnJiYxMyE9PWEudGFnOylhPWEucmV0dXJuO3hnPWF9XG5mdW5jdGlvbiBHZyhhKXtpZihhIT09eGcpcmV0dXJuITE7aWYoIUkpcmV0dXJuIEZnKGEpLEk9ITAsITE7dmFyIGI7KGI9MyE9PWEudGFnKSYmIShiPTUhPT1hLnRhZykmJihiPWEudHlwZSxiPVwiaGVhZFwiIT09YiYmXCJib2R5XCIhPT1iJiYhRWYoYS50eXBlLGEubWVtb2l6ZWRQcm9wcykpO2lmKGImJihiPXlnKSl7aWYoRGcoYSkpdGhyb3cgSGcoKSxFcnJvcihwKDQxOCkpO2Zvcig7YjspQWcoYSxiKSxiPUxmKGIubmV4dFNpYmxpbmcpfUZnKGEpO2lmKDEzPT09YS50YWcpe2E9YS5tZW1vaXplZFN0YXRlO2E9bnVsbCE9PWE/YS5kZWh5ZHJhdGVkOm51bGw7aWYoIWEpdGhyb3cgRXJyb3IocCgzMTcpKTthOnthPWEubmV4dFNpYmxpbmc7Zm9yKGI9MDthOyl7aWYoOD09PWEubm9kZVR5cGUpe3ZhciBjPWEuZGF0YTtpZihcIi8kXCI9PT1jKXtpZigwPT09Yil7eWc9TGYoYS5uZXh0U2libGluZyk7YnJlYWsgYX1iLS19ZWxzZVwiJFwiIT09YyYmXCIkIVwiIT09YyYmXCIkP1wiIT09Y3x8YisrfWE9YS5uZXh0U2libGluZ315Zz1cbm51bGx9fWVsc2UgeWc9eGc/TGYoYS5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpOm51bGw7cmV0dXJuITB9ZnVuY3Rpb24gSGcoKXtmb3IodmFyIGE9eWc7YTspYT1MZihhLm5leHRTaWJsaW5nKX1mdW5jdGlvbiBJZygpe3lnPXhnPW51bGw7ST0hMX1mdW5jdGlvbiBKZyhhKXtudWxsPT09emc/emc9W2FdOnpnLnB1c2goYSl9dmFyIEtnPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO2Z1bmN0aW9uIExnKGEsYil7aWYoYSYmYS5kZWZhdWx0UHJvcHMpe2I9QSh7fSxiKTthPWEuZGVmYXVsdFByb3BzO2Zvcih2YXIgYyBpbiBhKXZvaWQgMD09PWJbY10mJihiW2NdPWFbY10pO3JldHVybiBifXJldHVybiBifXZhciBNZz1VZihudWxsKSxOZz1udWxsLE9nPW51bGwsUGc9bnVsbDtmdW5jdGlvbiBRZygpe1BnPU9nPU5nPW51bGx9ZnVuY3Rpb24gUmcoYSl7dmFyIGI9TWcuY3VycmVudDtFKE1nKTthLl9jdXJyZW50VmFsdWU9Yn1cbmZ1bmN0aW9uIFNnKGEsYixjKXtmb3IoO251bGwhPT1hOyl7dmFyIGQ9YS5hbHRlcm5hdGU7KGEuY2hpbGRMYW5lcyZiKSE9PWI/KGEuY2hpbGRMYW5lc3w9YixudWxsIT09ZCYmKGQuY2hpbGRMYW5lc3w9YikpOm51bGwhPT1kJiYoZC5jaGlsZExhbmVzJmIpIT09YiYmKGQuY2hpbGRMYW5lc3w9Yik7aWYoYT09PWMpYnJlYWs7YT1hLnJldHVybn19ZnVuY3Rpb24gVGcoYSxiKXtOZz1hO1BnPU9nPW51bGw7YT1hLmRlcGVuZGVuY2llcztudWxsIT09YSYmbnVsbCE9PWEuZmlyc3RDb250ZXh0JiYoMCE9PShhLmxhbmVzJmIpJiYoVWc9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfVxuZnVuY3Rpb24gVmcoYSl7dmFyIGI9YS5fY3VycmVudFZhbHVlO2lmKFBnIT09YSlpZihhPXtjb250ZXh0OmEsbWVtb2l6ZWRWYWx1ZTpiLG5leHQ6bnVsbH0sbnVsbD09PU9nKXtpZihudWxsPT09TmcpdGhyb3cgRXJyb3IocCgzMDgpKTtPZz1hO05nLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6YX19ZWxzZSBPZz1PZy5uZXh0PWE7cmV0dXJuIGJ9dmFyIFdnPW51bGw7ZnVuY3Rpb24gWGcoYSl7bnVsbD09PVdnP1dnPVthXTpXZy5wdXNoKGEpfWZ1bmN0aW9uIFlnKGEsYixjLGQpe3ZhciBlPWIuaW50ZXJsZWF2ZWQ7bnVsbD09PWU/KGMubmV4dD1jLFhnKGIpKTooYy5uZXh0PWUubmV4dCxlLm5leHQ9Yyk7Yi5pbnRlcmxlYXZlZD1jO3JldHVybiBaZyhhLGQpfVxuZnVuY3Rpb24gWmcoYSxiKXthLmxhbmVzfD1iO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiYoYy5sYW5lc3w9Yik7Yz1hO2ZvcihhPWEucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PWIsYz1hLmFsdGVybmF0ZSxudWxsIT09YyYmKGMuY2hpbGRMYW5lc3w9YiksYz1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1jLnRhZz9jLnN0YXRlTm9kZTpudWxsfXZhciAkZz0hMTtmdW5jdGlvbiBhaChhKXthLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6YS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowfSxlZmZlY3RzOm51bGx9fVxuZnVuY3Rpb24gYmgoYSxiKXthPWEudXBkYXRlUXVldWU7Yi51cGRhdGVRdWV1ZT09PWEmJihiLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6YS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmEuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmEubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmEuc2hhcmVkLGVmZmVjdHM6YS5lZmZlY3RzfSl9ZnVuY3Rpb24gY2goYSxiKXtyZXR1cm57ZXZlbnRUaW1lOmEsbGFuZTpiLHRhZzowLHBheWxvYWQ6bnVsbCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH19XG5mdW5jdGlvbiBkaChhLGIsYyl7dmFyIGQ9YS51cGRhdGVRdWV1ZTtpZihudWxsPT09ZClyZXR1cm4gbnVsbDtkPWQuc2hhcmVkO2lmKDAhPT0oSyYyKSl7dmFyIGU9ZC5wZW5kaW5nO251bGw9PT1lP2IubmV4dD1iOihiLm5leHQ9ZS5uZXh0LGUubmV4dD1iKTtkLnBlbmRpbmc9YjtyZXR1cm4gWmcoYSxjKX1lPWQuaW50ZXJsZWF2ZWQ7bnVsbD09PWU/KGIubmV4dD1iLFhnKGQpKTooYi5uZXh0PWUubmV4dCxlLm5leHQ9Yik7ZC5pbnRlcmxlYXZlZD1iO3JldHVybiBaZyhhLGMpfWZ1bmN0aW9uIGVoKGEsYixjKXtiPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWImJihiPWIuc2hhcmVkLDAhPT0oYyY0MTk0MjQwKSkpe3ZhciBkPWIubGFuZXM7ZCY9YS5wZW5kaW5nTGFuZXM7Y3w9ZDtiLmxhbmVzPWM7Q2MoYSxjKX19XG5mdW5jdGlvbiBmaChhLGIpe3ZhciBjPWEudXBkYXRlUXVldWUsZD1hLmFsdGVybmF0ZTtpZihudWxsIT09ZCYmKGQ9ZC51cGRhdGVRdWV1ZSxjPT09ZCkpe3ZhciBlPW51bGwsZj1udWxsO2M9Yy5maXJzdEJhc2VVcGRhdGU7aWYobnVsbCE9PWMpe2Rve3ZhciBnPXtldmVudFRpbWU6Yy5ldmVudFRpbWUsbGFuZTpjLmxhbmUsdGFnOmMudGFnLHBheWxvYWQ6Yy5wYXlsb2FkLGNhbGxiYWNrOmMuY2FsbGJhY2ssbmV4dDpudWxsfTtudWxsPT09Zj9lPWY9ZzpmPWYubmV4dD1nO2M9Yy5uZXh0fXdoaWxlKG51bGwhPT1jKTtudWxsPT09Zj9lPWY9YjpmPWYubmV4dD1ifWVsc2UgZT1mPWI7Yz17YmFzZVN0YXRlOmQuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTplLGxhc3RCYXNlVXBkYXRlOmYsc2hhcmVkOmQuc2hhcmVkLGVmZmVjdHM6ZC5lZmZlY3RzfTthLnVwZGF0ZVF1ZXVlPWM7cmV0dXJufWE9Yy5sYXN0QmFzZVVwZGF0ZTtudWxsPT09YT9jLmZpcnN0QmFzZVVwZGF0ZT1iOmEubmV4dD1cbmI7Yy5sYXN0QmFzZVVwZGF0ZT1ifVxuZnVuY3Rpb24gZ2goYSxiLGMsZCl7dmFyIGU9YS51cGRhdGVRdWV1ZTskZz0hMTt2YXIgZj1lLmZpcnN0QmFzZVVwZGF0ZSxnPWUubGFzdEJhc2VVcGRhdGUsaD1lLnNoYXJlZC5wZW5kaW5nO2lmKG51bGwhPT1oKXtlLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIGs9aCxsPWsubmV4dDtrLm5leHQ9bnVsbDtudWxsPT09Zz9mPWw6Zy5uZXh0PWw7Zz1rO3ZhciBtPWEuYWx0ZXJuYXRlO251bGwhPT1tJiYobT1tLnVwZGF0ZVF1ZXVlLGg9bS5sYXN0QmFzZVVwZGF0ZSxoIT09ZyYmKG51bGw9PT1oP20uZmlyc3RCYXNlVXBkYXRlPWw6aC5uZXh0PWwsbS5sYXN0QmFzZVVwZGF0ZT1rKSl9aWYobnVsbCE9PWYpe3ZhciBxPWUuYmFzZVN0YXRlO2c9MDttPWw9az1udWxsO2g9Zjtkb3t2YXIgcj1oLmxhbmUseT1oLmV2ZW50VGltZTtpZigoZCZyKT09PXIpe251bGwhPT1tJiYobT1tLm5leHQ9e2V2ZW50VGltZTp5LGxhbmU6MCx0YWc6aC50YWcscGF5bG9hZDpoLnBheWxvYWQsY2FsbGJhY2s6aC5jYWxsYmFjayxcbm5leHQ6bnVsbH0pO2E6e3ZhciBuPWEsdD1oO3I9Yjt5PWM7c3dpdGNoKHQudGFnKXtjYXNlIDE6bj10LnBheWxvYWQ7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIG4pe3E9bi5jYWxsKHkscSxyKTticmVhayBhfXE9bjticmVhayBhO2Nhc2UgMzpuLmZsYWdzPW4uZmxhZ3MmLTY1NTM3fDEyODtjYXNlIDA6bj10LnBheWxvYWQ7cj1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbj9uLmNhbGwoeSxxLHIpOm47aWYobnVsbD09PXJ8fHZvaWQgMD09PXIpYnJlYWsgYTtxPUEoe30scSxyKTticmVhayBhO2Nhc2UgMjokZz0hMH19bnVsbCE9PWguY2FsbGJhY2smJjAhPT1oLmxhbmUmJihhLmZsYWdzfD02NCxyPWUuZWZmZWN0cyxudWxsPT09cj9lLmVmZmVjdHM9W2hdOnIucHVzaChoKSl9ZWxzZSB5PXtldmVudFRpbWU6eSxsYW5lOnIsdGFnOmgudGFnLHBheWxvYWQ6aC5wYXlsb2FkLGNhbGxiYWNrOmguY2FsbGJhY2ssbmV4dDpudWxsfSxudWxsPT09bT8obD1tPXksaz1xKTptPW0ubmV4dD15LGd8PXI7XG5oPWgubmV4dDtpZihudWxsPT09aClpZihoPWUuc2hhcmVkLnBlbmRpbmcsbnVsbD09PWgpYnJlYWs7ZWxzZSByPWgsaD1yLm5leHQsci5uZXh0PW51bGwsZS5sYXN0QmFzZVVwZGF0ZT1yLGUuc2hhcmVkLnBlbmRpbmc9bnVsbH13aGlsZSgxKTtudWxsPT09bSYmKGs9cSk7ZS5iYXNlU3RhdGU9aztlLmZpcnN0QmFzZVVwZGF0ZT1sO2UubGFzdEJhc2VVcGRhdGU9bTtiPWUuc2hhcmVkLmludGVybGVhdmVkO2lmKG51bGwhPT1iKXtlPWI7ZG8gZ3w9ZS5sYW5lLGU9ZS5uZXh0O3doaWxlKGUhPT1iKX1lbHNlIG51bGw9PT1mJiYoZS5zaGFyZWQubGFuZXM9MCk7aGh8PWc7YS5sYW5lcz1nO2EubWVtb2l6ZWRTdGF0ZT1xfX1cbmZ1bmN0aW9uIGloKGEsYixjKXthPWIuZWZmZWN0cztiLmVmZmVjdHM9bnVsbDtpZihudWxsIT09YSlmb3IoYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgZD1hW2JdLGU9ZC5jYWxsYmFjaztpZihudWxsIT09ZSl7ZC5jYWxsYmFjaz1udWxsO2Q9YztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZSl0aHJvdyBFcnJvcihwKDE5MSxlKSk7ZS5jYWxsKGQpfX19dmFyIGpoPShuZXcgYWEuQ29tcG9uZW50KS5yZWZzO2Z1bmN0aW9uIGtoKGEsYixjLGQpe2I9YS5tZW1vaXplZFN0YXRlO2M9YyhkLGIpO2M9bnVsbD09PWN8fHZvaWQgMD09PWM/YjpBKHt9LGIsYyk7YS5tZW1vaXplZFN0YXRlPWM7MD09PWEubGFuZXMmJihhLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1jKX1cbnZhciBuaD17aXNNb3VudGVkOmZ1bmN0aW9uKGEpe3JldHVybihhPWEuX3JlYWN0SW50ZXJuYWxzKT9WYihhKT09PWE6ITF9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsczt2YXIgZD1MKCksZT1saChhKSxmPWNoKGQsZSk7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO2I9ZGgoYSxmLGUpO251bGwhPT1iJiYobWgoYixhLGUsZCksZWgoYixhLGUpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsczt2YXIgZD1MKCksZT1saChhKSxmPWNoKGQsZSk7Zi50YWc9MTtmLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGYuY2FsbGJhY2s9Yyk7Yj1kaChhLGYsZSk7bnVsbCE9PWImJihtaChiLGEsZSxkKSxlaChiLGEsZSkpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oYSxiKXthPWEuX3JlYWN0SW50ZXJuYWxzO3ZhciBjPUwoKSxkPVxubGgoYSksZT1jaChjLGQpO2UudGFnPTI7dm9pZCAwIT09YiYmbnVsbCE9PWImJihlLmNhbGxiYWNrPWIpO2I9ZGgoYSxlLGQpO251bGwhPT1iJiYobWgoYixhLGQsYyksZWgoYixhLGQpKX19O2Z1bmN0aW9uIG9oKGEsYixjLGQsZSxmLGcpe2E9YS5zdGF0ZU5vZGU7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Euc2hvdWxkQ29tcG9uZW50VXBkYXRlKGQsZixnKTpiLnByb3RvdHlwZSYmYi5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQ/IUllKGMsZCl8fCFJZShlLGYpOiEwfVxuZnVuY3Rpb24gcGgoYSxiLGMpe3ZhciBkPSExLGU9VmY7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2Y9VmcoZik6KGU9WmYoYik/WGY6SC5jdXJyZW50LGQ9Yi5jb250ZXh0VHlwZXMsZj0oZD1udWxsIT09ZCYmdm9pZCAwIT09ZCk/WWYoYSxlKTpWZik7Yj1uZXcgYihjLGYpO2EubWVtb2l6ZWRTdGF0ZT1udWxsIT09Yi5zdGF0ZSYmdm9pZCAwIT09Yi5zdGF0ZT9iLnN0YXRlOm51bGw7Yi51cGRhdGVyPW5oO2Euc3RhdGVOb2RlPWI7Yi5fcmVhY3RJbnRlcm5hbHM9YTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9ZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWYpO3JldHVybiBifVxuZnVuY3Rpb24gcWgoYSxiLGMsZCl7YT1iLnN0YXRlO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCk7Yi5zdGF0ZSE9PWEmJm5oLmVucXVldWVSZXBsYWNlU3RhdGUoYixiLnN0YXRlLG51bGwpfVxuZnVuY3Rpb24gcmgoYSxiLGMsZCl7dmFyIGU9YS5zdGF0ZU5vZGU7ZS5wcm9wcz1jO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2UucmVmcz1qaDthaChhKTt2YXIgZj1iLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY/ZS5jb250ZXh0PVZnKGYpOihmPVpmKGIpP1hmOkguY3VycmVudCxlLmNvbnRleHQ9WWYoYSxmKSk7ZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGU7Zj1iLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcImZ1bmN0aW9uXCI9PT10eXBlb2YgZiYmKGtoKGEsYixmLGMpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZS5jb21wb25lbnRXaWxsTW91bnR8fChiPWUuc3RhdGUsXG5cImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnRXaWxsTW91bnQmJmUuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksYiE9PWUuc3RhdGUmJm5oLmVucXVldWVSZXBsYWNlU3RhdGUoZSxlLnN0YXRlLG51bGwpLGdoKGEsYyxlLGQpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5jb21wb25lbnREaWRNb3VudCYmKGEuZmxhZ3N8PTQxOTQzMDgpfVxuZnVuY3Rpb24gc2goYSxiLGMpe2E9Yy5yZWY7aWYobnVsbCE9PWEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZcIm9iamVjdFwiIT09dHlwZW9mIGEpe2lmKGMuX293bmVyKXtjPWMuX293bmVyO2lmKGMpe2lmKDEhPT1jLnRhZyl0aHJvdyBFcnJvcihwKDMwOSkpO3ZhciBkPWMuc3RhdGVOb2RlfWlmKCFkKXRocm93IEVycm9yKHAoMTQ3LGEpKTt2YXIgZT1kLGY9XCJcIithO2lmKG51bGwhPT1iJiZudWxsIT09Yi5yZWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnJlZiYmYi5yZWYuX3N0cmluZ1JlZj09PWYpcmV0dXJuIGIucmVmO2I9ZnVuY3Rpb24oYSl7dmFyIGI9ZS5yZWZzO2I9PT1qaCYmKGI9ZS5yZWZzPXt9KTtudWxsPT09YT9kZWxldGUgYltmXTpiW2ZdPWF9O2IuX3N0cmluZ1JlZj1mO3JldHVybiBifWlmKFwic3RyaW5nXCIhPT10eXBlb2YgYSl0aHJvdyBFcnJvcihwKDI4NCkpO2lmKCFjLl9vd25lcil0aHJvdyBFcnJvcihwKDI5MCxhKSk7fXJldHVybiBhfVxuZnVuY3Rpb24gdGgoYSxiKXthPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiKTt0aHJvdyBFcnJvcihwKDMxLFwiW29iamVjdCBPYmplY3RdXCI9PT1hP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYikuam9pbihcIiwgXCIpK1wifVwiOmEpKTt9ZnVuY3Rpb24gdWgoYSl7dmFyIGI9YS5faW5pdDtyZXR1cm4gYihhLl9wYXlsb2FkKX1cbmZ1bmN0aW9uIHZoKGEpe2Z1bmN0aW9uIGIoYixjKXtpZihhKXt2YXIgZD1iLmRlbGV0aW9ucztudWxsPT09ZD8oYi5kZWxldGlvbnM9W2NdLGIuZmxhZ3N8PTE2KTpkLnB1c2goYyl9fWZ1bmN0aW9uIGMoYyxkKXtpZighYSlyZXR1cm4gbnVsbDtmb3IoO251bGwhPT1kOyliKGMsZCksZD1kLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChhLGIpe2ZvcihhPW5ldyBNYXA7bnVsbCE9PWI7KW51bGwhPT1iLmtleT9hLnNldChiLmtleSxiKTphLnNldChiLmluZGV4LGIpLGI9Yi5zaWJsaW5nO3JldHVybiBhfWZ1bmN0aW9uIGUoYSxiKXthPXdoKGEsYik7YS5pbmRleD0wO2Euc2libGluZz1udWxsO3JldHVybiBhfWZ1bmN0aW9uIGYoYixjLGQpe2IuaW5kZXg9ZDtpZighYSlyZXR1cm4gYi5mbGFnc3w9MTA0ODU3NixjO2Q9Yi5hbHRlcm5hdGU7aWYobnVsbCE9PWQpcmV0dXJuIGQ9ZC5pbmRleCxkPGM/KGIuZmxhZ3N8PTIsYyk6ZDtiLmZsYWdzfD0yO3JldHVybiBjfWZ1bmN0aW9uIGcoYil7YSYmXG5udWxsPT09Yi5hbHRlcm5hdGUmJihiLmZsYWdzfD0yKTtyZXR1cm4gYn1mdW5jdGlvbiBoKGEsYixjLGQpe2lmKG51bGw9PT1ifHw2IT09Yi50YWcpcmV0dXJuIGI9eGgoYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gayhhLGIsYyxkKXt2YXIgZj1jLnR5cGU7aWYoZj09PXlhKXJldHVybiBtKGEsYixjLnByb3BzLmNoaWxkcmVuLGQsYy5rZXkpO2lmKG51bGwhPT1iJiYoYi5lbGVtZW50VHlwZT09PWZ8fFwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYmJmYuJCR0eXBlb2Y9PT1IYSYmdWgoZik9PT1iLnR5cGUpKXJldHVybiBkPWUoYixjLnByb3BzKSxkLnJlZj1zaChhLGIsYyksZC5yZXR1cm49YSxkO2Q9eWgoYy50eXBlLGMua2V5LGMucHJvcHMsbnVsbCxhLm1vZGUsZCk7ZC5yZWY9c2goYSxiLGMpO2QucmV0dXJuPWE7cmV0dXJuIGR9ZnVuY3Rpb24gbChhLGIsYyxkKXtpZihudWxsPT09Ynx8NCE9PWIudGFnfHxcbmIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1jLmNvbnRhaW5lckluZm98fGIuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09Yy5pbXBsZW1lbnRhdGlvbilyZXR1cm4gYj16aChjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYy5jaGlsZHJlbnx8W10pO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gbShhLGIsYyxkLGYpe2lmKG51bGw9PT1ifHw3IT09Yi50YWcpcmV0dXJuIGI9QWgoYyxhLm1vZGUsZCxmKSxiLnJldHVybj1hLGI7Yj1lKGIsYyk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBxKGEsYixjKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGImJlwiXCIhPT1ifHxcIm51bWJlclwiPT09dHlwZW9mIGIpcmV0dXJuIGI9eGgoXCJcIitiLGEubW9kZSxjKSxiLnJldHVybj1hLGI7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBiJiZudWxsIT09Yil7c3dpdGNoKGIuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGM9eWgoYi50eXBlLGIua2V5LGIucHJvcHMsbnVsbCxhLm1vZGUsYyksXG5jLnJlZj1zaChhLG51bGwsYiksYy5yZXR1cm49YSxjO2Nhc2Ugd2E6cmV0dXJuIGI9emgoYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2Nhc2UgSGE6dmFyIGQ9Yi5faW5pdDtyZXR1cm4gcShhLGQoYi5fcGF5bG9hZCksYyl9aWYoZWIoYil8fEthKGIpKXJldHVybiBiPUFoKGIsYS5tb2RlLGMsbnVsbCksYi5yZXR1cm49YSxiO3RoKGEsYil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gcihhLGIsYyxkKXt2YXIgZT1udWxsIT09Yj9iLmtleTpudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYyYmXCJcIiE9PWN8fFwibnVtYmVyXCI9PT10eXBlb2YgYylyZXR1cm4gbnVsbCE9PWU/bnVsbDpoKGEsYixcIlwiK2MsZCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yyl7c3dpdGNoKGMuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGMua2V5PT09ZT9rKGEsYixjLGQpOm51bGw7Y2FzZSB3YTpyZXR1cm4gYy5rZXk9PT1lP2woYSxiLGMsZCk6bnVsbDtjYXNlIEhhOnJldHVybiBlPWMuX2luaXQscihhLFxuYixlKGMuX3BheWxvYWQpLGQpfWlmKGViKGMpfHxLYShjKSlyZXR1cm4gbnVsbCE9PWU/bnVsbDptKGEsYixjLGQsbnVsbCk7dGgoYSxjKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB5KGEsYixjLGQsZSl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBkJiZcIlwiIT09ZHx8XCJudW1iZXJcIj09PXR5cGVvZiBkKXJldHVybiBhPWEuZ2V0KGMpfHxudWxsLGgoYixhLFwiXCIrZCxlKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGQmJm51bGwhPT1kKXtzd2l0Y2goZC4kJHR5cGVvZil7Y2FzZSB2YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsayhiLGEsZCxlKTtjYXNlIHdhOnJldHVybiBhPWEuZ2V0KG51bGw9PT1kLmtleT9jOmQua2V5KXx8bnVsbCxsKGIsYSxkLGUpO2Nhc2UgSGE6dmFyIGY9ZC5faW5pdDtyZXR1cm4geShhLGIsYyxmKGQuX3BheWxvYWQpLGUpfWlmKGViKGQpfHxLYShkKSlyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxtKGIsYSxkLGUsbnVsbCk7dGgoYixkKX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIG4oZSxnLGgsayl7Zm9yKHZhciBsPW51bGwsbT1udWxsLHU9Zyx3PWc9MCx4PW51bGw7bnVsbCE9PXUmJnc8aC5sZW5ndGg7dysrKXt1LmluZGV4Pnc/KHg9dSx1PW51bGwpOng9dS5zaWJsaW5nO3ZhciBuPXIoZSx1LGhbd10sayk7aWYobnVsbD09PW4pe251bGw9PT11JiYodT14KTticmVha31hJiZ1JiZudWxsPT09bi5hbHRlcm5hdGUmJmIoZSx1KTtnPWYobixnLHcpO251bGw9PT1tP2w9bjptLnNpYmxpbmc9bjttPW47dT14fWlmKHc9PT1oLmxlbmd0aClyZXR1cm4gYyhlLHUpLEkmJnRnKGUsdyksbDtpZihudWxsPT09dSl7Zm9yKDt3PGgubGVuZ3RoO3crKyl1PXEoZSxoW3ddLGspLG51bGwhPT11JiYoZz1mKHUsZyx3KSxudWxsPT09bT9sPXU6bS5zaWJsaW5nPXUsbT11KTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZvcih1PWQoZSx1KTt3PGgubGVuZ3RoO3crKyl4PXkodSxlLHcsaFt3XSxrKSxudWxsIT09eCYmKGEmJm51bGwhPT14LmFsdGVybmF0ZSYmdS5kZWxldGUobnVsbD09PVxueC5rZXk/dzp4LmtleSksZz1mKHgsZyx3KSxudWxsPT09bT9sPXg6bS5zaWJsaW5nPXgsbT14KTthJiZ1LmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO0kmJnRnKGUsdyk7cmV0dXJuIGx9ZnVuY3Rpb24gdChlLGcsaCxrKXt2YXIgbD1LYShoKTtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgbCl0aHJvdyBFcnJvcihwKDE1MCkpO2g9bC5jYWxsKGgpO2lmKG51bGw9PWgpdGhyb3cgRXJyb3IocCgxNTEpKTtmb3IodmFyIHU9bD1udWxsLG09Zyx3PWc9MCx4PW51bGwsbj1oLm5leHQoKTtudWxsIT09bSYmIW4uZG9uZTt3Kyssbj1oLm5leHQoKSl7bS5pbmRleD53Pyh4PW0sbT1udWxsKTp4PW0uc2libGluZzt2YXIgdD1yKGUsbSxuLnZhbHVlLGspO2lmKG51bGw9PT10KXtudWxsPT09bSYmKG09eCk7YnJlYWt9YSYmbSYmbnVsbD09PXQuYWx0ZXJuYXRlJiZiKGUsbSk7Zz1mKHQsZyx3KTtudWxsPT09dT9sPXQ6dS5zaWJsaW5nPXQ7dT10O209eH1pZihuLmRvbmUpcmV0dXJuIGMoZSxcbm0pLEkmJnRnKGUsdyksbDtpZihudWxsPT09bSl7Zm9yKDshbi5kb25lO3crKyxuPWgubmV4dCgpKW49cShlLG4udmFsdWUsayksbnVsbCE9PW4mJihnPWYobixnLHcpLG51bGw9PT11P2w9bjp1LnNpYmxpbmc9bix1PW4pO0kmJnRnKGUsdyk7cmV0dXJuIGx9Zm9yKG09ZChlLG0pOyFuLmRvbmU7dysrLG49aC5uZXh0KCkpbj15KG0sZSx3LG4udmFsdWUsayksbnVsbCE9PW4mJihhJiZudWxsIT09bi5hbHRlcm5hdGUmJm0uZGVsZXRlKG51bGw9PT1uLmtleT93Om4ua2V5KSxnPWYobixnLHcpLG51bGw9PT11P2w9bjp1LnNpYmxpbmc9bix1PW4pO2EmJm0uZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSk7SSYmdGcoZSx3KTtyZXR1cm4gbH1mdW5jdGlvbiBKKGEsZCxmLGgpe1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYmJmYudHlwZT09PXlhJiZudWxsPT09Zi5rZXkmJihmPWYucHJvcHMuY2hpbGRyZW4pO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYpe3N3aXRjaChmLiQkdHlwZW9mKXtjYXNlIHZhOmE6e2Zvcih2YXIgaz1cbmYua2V5LGw9ZDtudWxsIT09bDspe2lmKGwua2V5PT09ayl7az1mLnR5cGU7aWYoaz09PXlhKXtpZig3PT09bC50YWcpe2MoYSxsLnNpYmxpbmcpO2Q9ZShsLGYucHJvcHMuY2hpbGRyZW4pO2QucmV0dXJuPWE7YT1kO2JyZWFrIGF9fWVsc2UgaWYobC5lbGVtZW50VHlwZT09PWt8fFwib2JqZWN0XCI9PT10eXBlb2YgayYmbnVsbCE9PWsmJmsuJCR0eXBlb2Y9PT1IYSYmdWgoayk9PT1sLnR5cGUpe2MoYSxsLnNpYmxpbmcpO2Q9ZShsLGYucHJvcHMpO2QucmVmPXNoKGEsbCxmKTtkLnJldHVybj1hO2E9ZDticmVhayBhfWMoYSxsKTticmVha31lbHNlIGIoYSxsKTtsPWwuc2libGluZ31mLnR5cGU9PT15YT8oZD1BaChmLnByb3BzLmNoaWxkcmVuLGEubW9kZSxoLGYua2V5KSxkLnJldHVybj1hLGE9ZCk6KGg9eWgoZi50eXBlLGYua2V5LGYucHJvcHMsbnVsbCxhLm1vZGUsaCksaC5yZWY9c2goYSxkLGYpLGgucmV0dXJuPWEsYT1oKX1yZXR1cm4gZyhhKTtjYXNlIHdhOmE6e2ZvcihsPWYua2V5O251bGwhPT1cbmQ7KXtpZihkLmtleT09PWwpaWYoND09PWQudGFnJiZkLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09Zi5jb250YWluZXJJbmZvJiZkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWYuaW1wbGVtZW50YXRpb24pe2MoYSxkLnNpYmxpbmcpO2Q9ZShkLGYuY2hpbGRyZW58fFtdKTtkLnJldHVybj1hO2E9ZDticmVhayBhfWVsc2V7YyhhLGQpO2JyZWFrfWVsc2UgYihhLGQpO2Q9ZC5zaWJsaW5nfWQ9emgoZixhLm1vZGUsaCk7ZC5yZXR1cm49YTthPWR9cmV0dXJuIGcoYSk7Y2FzZSBIYTpyZXR1cm4gbD1mLl9pbml0LEooYSxkLGwoZi5fcGF5bG9hZCksaCl9aWYoZWIoZikpcmV0dXJuIG4oYSxkLGYsaCk7aWYoS2EoZikpcmV0dXJuIHQoYSxkLGYsaCk7dGgoYSxmKX1yZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGYmJlwiXCIhPT1mfHxcIm51bWJlclwiPT09dHlwZW9mIGY/KGY9XCJcIitmLG51bGwhPT1kJiY2PT09ZC50YWc/KGMoYSxkLnNpYmxpbmcpLGQ9ZShkLGYpLGQucmV0dXJuPWEsYT1kKTpcbihjKGEsZCksZD14aChmLGEubW9kZSxoKSxkLnJldHVybj1hLGE9ZCksZyhhKSk6YyhhLGQpfXJldHVybiBKfXZhciBCaD12aCghMCksQ2g9dmgoITEpLERoPXt9LEVoPVVmKERoKSxGaD1VZihEaCksR2g9VWYoRGgpO2Z1bmN0aW9uIEhoKGEpe2lmKGE9PT1EaCl0aHJvdyBFcnJvcihwKDE3NCkpO3JldHVybiBhfWZ1bmN0aW9uIEloKGEsYil7RyhHaCxiKTtHKEZoLGEpO0coRWgsRGgpO2E9Yi5ub2RlVHlwZTtzd2l0Y2goYSl7Y2FzZSA5OmNhc2UgMTE6Yj0oYj1iLmRvY3VtZW50RWxlbWVudCk/Yi5uYW1lc3BhY2VVUkk6bGIobnVsbCxcIlwiKTticmVhaztkZWZhdWx0OmE9OD09PWE/Yi5wYXJlbnROb2RlOmIsYj1hLm5hbWVzcGFjZVVSSXx8bnVsbCxhPWEudGFnTmFtZSxiPWxiKGIsYSl9RShFaCk7RyhFaCxiKX1mdW5jdGlvbiBKaCgpe0UoRWgpO0UoRmgpO0UoR2gpfVxuZnVuY3Rpb24gS2goYSl7SGgoR2guY3VycmVudCk7dmFyIGI9SGgoRWguY3VycmVudCk7dmFyIGM9bGIoYixhLnR5cGUpO2IhPT1jJiYoRyhGaCxhKSxHKEVoLGMpKX1mdW5jdGlvbiBMaChhKXtGaC5jdXJyZW50PT09YSYmKEUoRWgpLEUoRmgpKX12YXIgTT1VZigwKTtcbmZ1bmN0aW9uIE1oKGEpe2Zvcih2YXIgYj1hO251bGwhPT1iOyl7aWYoMTM9PT1iLnRhZyl7dmFyIGM9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1jJiYoYz1jLmRlaHlkcmF0ZWQsbnVsbD09PWN8fFwiJD9cIj09PWMuZGF0YXx8XCIkIVwiPT09Yy5kYXRhKSlyZXR1cm4gYn1lbHNlIGlmKDE5PT09Yi50YWcmJnZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9PShiLmZsYWdzJjEyOCkpcmV0dXJuIGJ9ZWxzZSBpZihudWxsIT09Yi5jaGlsZCl7Yi5jaGlsZC5yZXR1cm49YjtiPWIuY2hpbGQ7Y29udGludWV9aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfXJldHVybiBudWxsfXZhciBOaD1bXTtcbmZ1bmN0aW9uIE9oKCl7Zm9yKHZhciBhPTA7YTxOaC5sZW5ndGg7YSsrKU5oW2FdLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5PW51bGw7TmgubGVuZ3RoPTB9dmFyIFBoPXVhLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsUWg9dWEuUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsUmg9MCxOPW51bGwsTz1udWxsLFA9bnVsbCxTaD0hMSxUaD0hMSxVaD0wLFZoPTA7ZnVuY3Rpb24gUSgpe3Rocm93IEVycm9yKHAoMzIxKSk7fWZ1bmN0aW9uIFdoKGEsYil7aWYobnVsbD09PWIpcmV0dXJuITE7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aCYmYzxhLmxlbmd0aDtjKyspaWYoIUhlKGFbY10sYltjXSkpcmV0dXJuITE7cmV0dXJuITB9XG5mdW5jdGlvbiBYaChhLGIsYyxkLGUsZil7Umg9ZjtOPWI7Yi5tZW1vaXplZFN0YXRlPW51bGw7Yi51cGRhdGVRdWV1ZT1udWxsO2IubGFuZXM9MDtQaC5jdXJyZW50PW51bGw9PT1hfHxudWxsPT09YS5tZW1vaXplZFN0YXRlP1loOlpoO2E9YyhkLGUpO2lmKFRoKXtmPTA7ZG97VGg9ITE7VWg9MDtpZigyNTw9Zil0aHJvdyBFcnJvcihwKDMwMSkpO2YrPTE7UD1PPW51bGw7Yi51cGRhdGVRdWV1ZT1udWxsO1BoLmN1cnJlbnQ9JGg7YT1jKGQsZSl9d2hpbGUoVGgpfVBoLmN1cnJlbnQ9YWk7Yj1udWxsIT09TyYmbnVsbCE9PU8ubmV4dDtSaD0wO1A9Tz1OPW51bGw7U2g9ITE7aWYoYil0aHJvdyBFcnJvcihwKDMwMCkpO3JldHVybiBhfWZ1bmN0aW9uIGJpKCl7dmFyIGE9MCE9PVVoO1VoPTA7cmV0dXJuIGF9XG5mdW5jdGlvbiBjaSgpe3ZhciBhPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O251bGw9PT1QP04ubWVtb2l6ZWRTdGF0ZT1QPWE6UD1QLm5leHQ9YTtyZXR1cm4gUH1mdW5jdGlvbiBkaSgpe2lmKG51bGw9PT1PKXt2YXIgYT1OLmFsdGVybmF0ZTthPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsfWVsc2UgYT1PLm5leHQ7dmFyIGI9bnVsbD09PVA/Ti5tZW1vaXplZFN0YXRlOlAubmV4dDtpZihudWxsIT09YilQPWIsTz1hO2Vsc2V7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IocCgzMTApKTtPPWE7YT17bWVtb2l6ZWRTdGF0ZTpPLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOk8uYmFzZVN0YXRlLGJhc2VRdWV1ZTpPLmJhc2VRdWV1ZSxxdWV1ZTpPLnF1ZXVlLG5leHQ6bnVsbH07bnVsbD09PVA/Ti5tZW1vaXplZFN0YXRlPVA9YTpQPVAubmV4dD1hfXJldHVybiBQfVxuZnVuY3Rpb24gZWkoYSxiKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYj9iKGEpOmJ9XG5mdW5jdGlvbiBmaShhKXt2YXIgYj1kaSgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyBFcnJvcihwKDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO3ZhciBkPU8sZT1kLmJhc2VRdWV1ZSxmPWMucGVuZGluZztpZihudWxsIT09Zil7aWYobnVsbCE9PWUpe3ZhciBnPWUubmV4dDtlLm5leHQ9Zi5uZXh0O2YubmV4dD1nfWQuYmFzZVF1ZXVlPWU9ZjtjLnBlbmRpbmc9bnVsbH1pZihudWxsIT09ZSl7Zj1lLm5leHQ7ZD1kLmJhc2VTdGF0ZTt2YXIgaD1nPW51bGwsaz1udWxsLGw9Zjtkb3t2YXIgbT1sLmxhbmU7aWYoKFJoJm0pPT09bSludWxsIT09ayYmKGs9ay5uZXh0PXtsYW5lOjAsYWN0aW9uOmwuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6bC5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9bC5oYXNFYWdlclN0YXRlP2wuZWFnZXJTdGF0ZTphKGQsbC5hY3Rpb24pO2Vsc2V7dmFyIHE9e2xhbmU6bSxhY3Rpb246bC5hY3Rpb24saGFzRWFnZXJTdGF0ZTpsLmhhc0VhZ2VyU3RhdGUsXG5lYWdlclN0YXRlOmwuZWFnZXJTdGF0ZSxuZXh0Om51bGx9O251bGw9PT1rPyhoPWs9cSxnPWQpOms9ay5uZXh0PXE7Ti5sYW5lc3w9bTtoaHw9bX1sPWwubmV4dH13aGlsZShudWxsIT09bCYmbCE9PWYpO251bGw9PT1rP2c9ZDprLm5leHQ9aDtIZShkLGIubWVtb2l6ZWRTdGF0ZSl8fChVZz0hMCk7Yi5tZW1vaXplZFN0YXRlPWQ7Yi5iYXNlU3RhdGU9ZztiLmJhc2VRdWV1ZT1rO2MubGFzdFJlbmRlcmVkU3RhdGU9ZH1hPWMuaW50ZXJsZWF2ZWQ7aWYobnVsbCE9PWEpe2U9YTtkbyBmPWUubGFuZSxOLmxhbmVzfD1mLGhofD1mLGU9ZS5uZXh0O3doaWxlKGUhPT1hKX1lbHNlIG51bGw9PT1lJiYoYy5sYW5lcz0wKTtyZXR1cm5bYi5tZW1vaXplZFN0YXRlLGMuZGlzcGF0Y2hdfVxuZnVuY3Rpb24gZ2koYSl7dmFyIGI9ZGkoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IocCgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1jLmRpc3BhdGNoLGU9Yy5wZW5kaW5nLGY9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lKXtjLnBlbmRpbmc9bnVsbDt2YXIgZz1lPWUubmV4dDtkbyBmPWEoZixnLmFjdGlvbiksZz1nLm5leHQ7d2hpbGUoZyE9PWUpO0hlKGYsYi5tZW1vaXplZFN0YXRlKXx8KFVnPSEwKTtiLm1lbW9pemVkU3RhdGU9ZjtudWxsPT09Yi5iYXNlUXVldWUmJihiLmJhc2VTdGF0ZT1mKTtjLmxhc3RSZW5kZXJlZFN0YXRlPWZ9cmV0dXJuW2YsZF19ZnVuY3Rpb24gaGkoKXt9XG5mdW5jdGlvbiBpaShhLGIpe3ZhciBjPU4sZD1kaSgpLGU9YigpLGY9IUhlKGQubWVtb2l6ZWRTdGF0ZSxlKTtmJiYoZC5tZW1vaXplZFN0YXRlPWUsVWc9ITApO2Q9ZC5xdWV1ZTtqaShraS5iaW5kKG51bGwsYyxkLGEpLFthXSk7aWYoZC5nZXRTbmFwc2hvdCE9PWJ8fGZ8fG51bGwhPT1QJiZQLm1lbW9pemVkU3RhdGUudGFnJjEpe2MuZmxhZ3N8PTIwNDg7bGkoOSxtaS5iaW5kKG51bGwsYyxkLGUsYiksdm9pZCAwLG51bGwpO2lmKG51bGw9PT1SKXRocm93IEVycm9yKHAoMzQ5KSk7MCE9PShSaCYzMCl8fG5pKGMsYixlKX1yZXR1cm4gZX1mdW5jdGlvbiBuaShhLGIsYyl7YS5mbGFnc3w9MTYzODQ7YT17Z2V0U25hcHNob3Q6Yix2YWx1ZTpjfTtiPU4udXBkYXRlUXVldWU7bnVsbD09PWI/KGI9e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0sTi51cGRhdGVRdWV1ZT1iLGIuc3RvcmVzPVthXSk6KGM9Yi5zdG9yZXMsbnVsbD09PWM/Yi5zdG9yZXM9W2FdOmMucHVzaChhKSl9XG5mdW5jdGlvbiBtaShhLGIsYyxkKXtiLnZhbHVlPWM7Yi5nZXRTbmFwc2hvdD1kO29pKGIpJiZwaShhKX1mdW5jdGlvbiBraShhLGIsYyl7cmV0dXJuIGMoZnVuY3Rpb24oKXtvaShiKSYmcGkoYSl9KX1mdW5jdGlvbiBvaShhKXt2YXIgYj1hLmdldFNuYXBzaG90O2E9YS52YWx1ZTt0cnl7dmFyIGM9YigpO3JldHVybiFIZShhLGMpfWNhdGNoKGQpe3JldHVybiEwfX1mdW5jdGlvbiBwaShhKXt2YXIgYj1aZyhhLDEpO251bGwhPT1iJiZtaChiLGEsMSwtMSl9XG5mdW5jdGlvbiBxaShhKXt2YXIgYj1jaSgpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBhJiYoYT1hKCkpO2IubWVtb2l6ZWRTdGF0ZT1iLmJhc2VTdGF0ZT1hO2E9e3BlbmRpbmc6bnVsbCxpbnRlcmxlYXZlZDpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmVpLGxhc3RSZW5kZXJlZFN0YXRlOmF9O2IucXVldWU9YTthPWEuZGlzcGF0Y2g9cmkuYmluZChudWxsLE4sYSk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxhXX1cbmZ1bmN0aW9uIGxpKGEsYixjLGQpe2E9e3RhZzphLGNyZWF0ZTpiLGRlc3Ryb3k6YyxkZXBzOmQsbmV4dDpudWxsfTtiPU4udXBkYXRlUXVldWU7bnVsbD09PWI/KGI9e2xhc3RFZmZlY3Q6bnVsbCxzdG9yZXM6bnVsbH0sTi51cGRhdGVRdWV1ZT1iLGIubGFzdEVmZmVjdD1hLm5leHQ9YSk6KGM9Yi5sYXN0RWZmZWN0LG51bGw9PT1jP2IubGFzdEVmZmVjdD1hLm5leHQ9YTooZD1jLm5leHQsYy5uZXh0PWEsYS5uZXh0PWQsYi5sYXN0RWZmZWN0PWEpKTtyZXR1cm4gYX1mdW5jdGlvbiBzaSgpe3JldHVybiBkaSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gdGkoYSxiLGMsZCl7dmFyIGU9Y2koKTtOLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1saSgxfGIsYyx2b2lkIDAsdm9pZCAwPT09ZD9udWxsOmQpfVxuZnVuY3Rpb24gdWkoYSxiLGMsZCl7dmFyIGU9ZGkoKTtkPXZvaWQgMD09PWQ/bnVsbDpkO3ZhciBmPXZvaWQgMDtpZihudWxsIT09Tyl7dmFyIGc9Ty5tZW1vaXplZFN0YXRlO2Y9Zy5kZXN0cm95O2lmKG51bGwhPT1kJiZXaChkLGcuZGVwcykpe2UubWVtb2l6ZWRTdGF0ZT1saShiLGMsZixkKTtyZXR1cm59fU4uZmxhZ3N8PWE7ZS5tZW1vaXplZFN0YXRlPWxpKDF8YixjLGYsZCl9ZnVuY3Rpb24gdmkoYSxiKXtyZXR1cm4gdGkoODM5MDY1Niw4LGEsYil9ZnVuY3Rpb24gamkoYSxiKXtyZXR1cm4gdWkoMjA0OCw4LGEsYil9ZnVuY3Rpb24gd2koYSxiKXtyZXR1cm4gdWkoNCwyLGEsYil9ZnVuY3Rpb24geGkoYSxiKXtyZXR1cm4gdWkoNCw0LGEsYil9XG5mdW5jdGlvbiB5aShhLGIpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKXJldHVybiBhPWEoKSxiKGEpLGZ1bmN0aW9uKCl7YihudWxsKX07aWYobnVsbCE9PWImJnZvaWQgMCE9PWIpcmV0dXJuIGE9YSgpLGIuY3VycmVudD1hLGZ1bmN0aW9uKCl7Yi5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIHppKGEsYixjKXtjPW51bGwhPT1jJiZ2b2lkIDAhPT1jP2MuY29uY2F0KFthXSk6bnVsbDtyZXR1cm4gdWkoNCw0LHlpLmJpbmQobnVsbCxiLGEpLGMpfWZ1bmN0aW9uIEFpKCl7fWZ1bmN0aW9uIEJpKGEsYil7dmFyIGM9ZGkoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJldoKGIsZFsxXSkpcmV0dXJuIGRbMF07Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfVxuZnVuY3Rpb24gQ2koYSxiKXt2YXIgYz1kaSgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kJiZudWxsIT09YiYmV2goYixkWzFdKSlyZXR1cm4gZFswXTthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9ZnVuY3Rpb24gRGkoYSxiLGMpe2lmKDA9PT0oUmgmMjEpKXJldHVybiBhLmJhc2VTdGF0ZSYmKGEuYmFzZVN0YXRlPSExLFVnPSEwKSxhLm1lbW9pemVkU3RhdGU9YztIZShjLGIpfHwoYz15YygpLE4ubGFuZXN8PWMsaGh8PWMsYS5iYXNlU3RhdGU9ITApO3JldHVybiBifWZ1bmN0aW9uIEVpKGEsYil7dmFyIGM9QztDPTAhPT1jJiY0PmM/Yzo0O2EoITApO3ZhciBkPVFoLnRyYW5zaXRpb247UWgudHJhbnNpdGlvbj17fTt0cnl7YSghMSksYigpfWZpbmFsbHl7Qz1jLFFoLnRyYW5zaXRpb249ZH19ZnVuY3Rpb24gRmkoKXtyZXR1cm4gZGkoKS5tZW1vaXplZFN0YXRlfVxuZnVuY3Rpb24gR2koYSxiLGMpe3ZhciBkPWxoKGEpO2M9e2xhbmU6ZCxhY3Rpb246YyxoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9O2lmKEhpKGEpKUlpKGIsYyk7ZWxzZSBpZihjPVlnKGEsYixjLGQpLG51bGwhPT1jKXt2YXIgZT1MKCk7bWgoYyxhLGQsZSk7SmkoYyxiLGQpfX1cbmZ1bmN0aW9uIHJpKGEsYixjKXt2YXIgZD1saChhKSxlPXtsYW5lOmQsYWN0aW9uOmMsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihIaShhKSlJaShiLGUpO2Vsc2V7dmFyIGY9YS5hbHRlcm5hdGU7aWYoMD09PWEubGFuZXMmJihudWxsPT09Znx8MD09PWYubGFuZXMpJiYoZj1iLmxhc3RSZW5kZXJlZFJlZHVjZXIsbnVsbCE9PWYpKXRyeXt2YXIgZz1iLmxhc3RSZW5kZXJlZFN0YXRlLGg9ZihnLGMpO2UuaGFzRWFnZXJTdGF0ZT0hMDtlLmVhZ2VyU3RhdGU9aDtpZihIZShoLGcpKXt2YXIgaz1iLmludGVybGVhdmVkO251bGw9PT1rPyhlLm5leHQ9ZSxYZyhiKSk6KGUubmV4dD1rLm5leHQsay5uZXh0PWUpO2IuaW50ZXJsZWF2ZWQ9ZTtyZXR1cm59fWNhdGNoKGwpe31maW5hbGx5e31jPVlnKGEsYixlLGQpO251bGwhPT1jJiYoZT1MKCksbWgoYyxhLGQsZSksSmkoYyxiLGQpKX19XG5mdW5jdGlvbiBIaShhKXt2YXIgYj1hLmFsdGVybmF0ZTtyZXR1cm4gYT09PU58fG51bGwhPT1iJiZiPT09Tn1mdW5jdGlvbiBJaShhLGIpe1RoPVNoPSEwO3ZhciBjPWEucGVuZGluZztudWxsPT09Yz9iLm5leHQ9YjooYi5uZXh0PWMubmV4dCxjLm5leHQ9Yik7YS5wZW5kaW5nPWJ9ZnVuY3Rpb24gSmkoYSxiLGMpe2lmKDAhPT0oYyY0MTk0MjQwKSl7dmFyIGQ9Yi5sYW5lcztkJj1hLnBlbmRpbmdMYW5lcztjfD1kO2IubGFuZXM9YztDYyhhLGMpfX1cbnZhciBhaT17cmVhZENvbnRleHQ6VmcsdXNlQ2FsbGJhY2s6USx1c2VDb250ZXh0OlEsdXNlRWZmZWN0OlEsdXNlSW1wZXJhdGl2ZUhhbmRsZTpRLHVzZUluc2VydGlvbkVmZmVjdDpRLHVzZUxheW91dEVmZmVjdDpRLHVzZU1lbW86USx1c2VSZWR1Y2VyOlEsdXNlUmVmOlEsdXNlU3RhdGU6USx1c2VEZWJ1Z1ZhbHVlOlEsdXNlRGVmZXJyZWRWYWx1ZTpRLHVzZVRyYW5zaXRpb246USx1c2VNdXRhYmxlU291cmNlOlEsdXNlU3luY0V4dGVybmFsU3RvcmU6USx1c2VJZDpRLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sWWg9e3JlYWRDb250ZXh0OlZnLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7Y2koKS5tZW1vaXplZFN0YXRlPVthLHZvaWQgMD09PWI/bnVsbDpiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDpWZyx1c2VFZmZlY3Q6dmksdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIHRpKDQxOTQzMDgsXG40LHlpLmJpbmQobnVsbCxiLGEpLGMpfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGkoNDE5NDMwOCw0LGEsYil9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiB0aSg0LDIsYSxiKX0sdXNlTWVtbzpmdW5jdGlvbihhLGIpe3ZhciBjPWNpKCk7Yj12b2lkIDA9PT1iP251bGw6YjthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWNpKCk7Yj12b2lkIDAhPT1jP2MoYik6YjtkLm1lbW9pemVkU3RhdGU9ZC5iYXNlU3RhdGU9YjthPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphLGxhc3RSZW5kZXJlZFN0YXRlOmJ9O2QucXVldWU9YTthPWEuZGlzcGF0Y2g9R2kuYmluZChudWxsLE4sYSk7cmV0dXJuW2QubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlUmVmOmZ1bmN0aW9uKGEpe3ZhciBiPVxuY2koKTthPXtjdXJyZW50OmF9O3JldHVybiBiLm1lbW9pemVkU3RhdGU9YX0sdXNlU3RhdGU6cWksdXNlRGVidWdWYWx1ZTpBaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBjaSgpLm1lbW9pemVkU3RhdGU9YX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPXFpKCExKSxiPWFbMF07YT1FaS5iaW5kKG51bGwsYVsxXSk7Y2koKS5tZW1vaXplZFN0YXRlPWE7cmV0dXJuW2IsYV19LHVzZU11dGFibGVTb3VyY2U6ZnVuY3Rpb24oKXt9LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1OLGU9Y2koKTtpZihJKXtpZih2b2lkIDA9PT1jKXRocm93IEVycm9yKHAoNDA3KSk7Yz1jKCl9ZWxzZXtjPWIoKTtpZihudWxsPT09Uil0aHJvdyBFcnJvcihwKDM0OSkpOzAhPT0oUmgmMzApfHxuaShkLGIsYyl9ZS5tZW1vaXplZFN0YXRlPWM7dmFyIGY9e3ZhbHVlOmMsZ2V0U25hcHNob3Q6Yn07ZS5xdWV1ZT1mO3ZpKGtpLmJpbmQobnVsbCxkLFxuZixhKSxbYV0pO2QuZmxhZ3N8PTIwNDg7bGkoOSxtaS5iaW5kKG51bGwsZCxmLGMsYiksdm9pZCAwLG51bGwpO3JldHVybiBjfSx1c2VJZDpmdW5jdGlvbigpe3ZhciBhPWNpKCksYj1SLmlkZW50aWZpZXJQcmVmaXg7aWYoSSl7dmFyIGM9c2c7dmFyIGQ9cmc7Yz0oZCZ+KDE8PDMyLW9jKGQpLTEpKS50b1N0cmluZygzMikrYztiPVwiOlwiK2IrXCJSXCIrYztjPVVoKys7MDxjJiYoYis9XCJIXCIrYy50b1N0cmluZygzMikpO2IrPVwiOlwifWVsc2UgYz1WaCsrLGI9XCI6XCIrYitcInJcIitjLnRvU3RyaW5nKDMyKStcIjpcIjtyZXR1cm4gYS5tZW1vaXplZFN0YXRlPWJ9LHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sWmg9e3JlYWRDb250ZXh0OlZnLHVzZUNhbGxiYWNrOkJpLHVzZUNvbnRleHQ6VmcsdXNlRWZmZWN0OmppLHVzZUltcGVyYXRpdmVIYW5kbGU6emksdXNlSW5zZXJ0aW9uRWZmZWN0OndpLHVzZUxheW91dEVmZmVjdDp4aSx1c2VNZW1vOkNpLHVzZVJlZHVjZXI6ZmksdXNlUmVmOnNpLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGZpKGVpKX0sXG51c2VEZWJ1Z1ZhbHVlOkFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9ZGkoKTtyZXR1cm4gRGkoYixPLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1maShlaSlbMF0sYj1kaSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW2EsYl19LHVzZU11dGFibGVTb3VyY2U6aGksdXNlU3luY0V4dGVybmFsU3RvcmU6aWksdXNlSWQ6RmksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfSwkaD17cmVhZENvbnRleHQ6VmcsdXNlQ2FsbGJhY2s6QmksdXNlQ29udGV4dDpWZyx1c2VFZmZlY3Q6amksdXNlSW1wZXJhdGl2ZUhhbmRsZTp6aSx1c2VJbnNlcnRpb25FZmZlY3Q6d2ksdXNlTGF5b3V0RWZmZWN0OnhpLHVzZU1lbW86Q2ksdXNlUmVkdWNlcjpnaSx1c2VSZWY6c2ksdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2koZWkpfSx1c2VEZWJ1Z1ZhbHVlOkFpLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9ZGkoKTtyZXR1cm4gbnVsbD09PVxuTz9iLm1lbW9pemVkU3RhdGU9YTpEaShiLE8ubWVtb2l6ZWRTdGF0ZSxhKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBhPWdpKGVpKVswXSxiPWRpKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bYSxiXX0sdXNlTXV0YWJsZVNvdXJjZTpoaSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTppaSx1c2VJZDpGaSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9O2Z1bmN0aW9uIEtpKGEsYil7dHJ5e3ZhciBjPVwiXCIsZD1iO2RvIGMrPVBhKGQpLGQ9ZC5yZXR1cm47d2hpbGUoZCk7dmFyIGU9Y31jYXRjaChmKXtlPVwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrZi5tZXNzYWdlK1wiXFxuXCIrZi5zdGFja31yZXR1cm57dmFsdWU6YSxzb3VyY2U6YixzdGFjazplLGRpZ2VzdDpudWxsfX1mdW5jdGlvbiBMaShhLGIsYyl7cmV0dXJue3ZhbHVlOmEsc291cmNlOm51bGwsc3RhY2s6bnVsbCE9Yz9jOm51bGwsZGlnZXN0Om51bGwhPWI/YjpudWxsfX1cbmZ1bmN0aW9uIE1pKGEsYil7dHJ5e2NvbnNvbGUuZXJyb3IoYi52YWx1ZSl9Y2F0Y2goYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGM7fSl9fXZhciBOaT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcDtmdW5jdGlvbiBPaShhLGIsYyl7Yz1jaCgtMSxjKTtjLnRhZz0zO2MucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgZD1iLnZhbHVlO2MuY2FsbGJhY2s9ZnVuY3Rpb24oKXtQaXx8KFBpPSEwLFFpPWQpO01pKGEsYil9O3JldHVybiBjfVxuZnVuY3Rpb24gUmkoYSxiLGMpe2M9Y2goLTEsYyk7Yy50YWc9Mzt2YXIgZD1hLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2YXIgZT1iLnZhbHVlO2MucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBkKGUpfTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7TWkoYSxiKX19dmFyIGY9YS5zdGF0ZU5vZGU7bnVsbCE9PWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLmNvbXBvbmVudERpZENhdGNoJiYoYy5jYWxsYmFjaz1mdW5jdGlvbigpe01pKGEsYik7XCJmdW5jdGlvblwiIT09dHlwZW9mIGQmJihudWxsPT09U2k/U2k9bmV3IFNldChbdGhpc10pOlNpLmFkZCh0aGlzKSk7dmFyIGM9Yi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGIudmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1jP2M6XCJcIn0pfSk7cmV0dXJuIGN9XG5mdW5jdGlvbiBUaShhLGIsYyl7dmFyIGQ9YS5waW5nQ2FjaGU7aWYobnVsbD09PWQpe2Q9YS5waW5nQ2FjaGU9bmV3IE5pO3ZhciBlPW5ldyBTZXQ7ZC5zZXQoYixlKX1lbHNlIGU9ZC5nZXQoYiksdm9pZCAwPT09ZSYmKGU9bmV3IFNldCxkLnNldChiLGUpKTtlLmhhcyhjKXx8KGUuYWRkKGMpLGE9VWkuYmluZChudWxsLGEsYixjKSxiLnRoZW4oYSxhKSl9ZnVuY3Rpb24gVmkoYSl7ZG97dmFyIGI7aWYoYj0xMz09PWEudGFnKWI9YS5tZW1vaXplZFN0YXRlLGI9bnVsbCE9PWI/bnVsbCE9PWIuZGVoeWRyYXRlZD8hMDohMTohMDtpZihiKXJldHVybiBhO2E9YS5yZXR1cm59d2hpbGUobnVsbCE9PWEpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gV2koYSxiLGMsZCxlKXtpZigwPT09KGEubW9kZSYxKSlyZXR1cm4gYT09PWI/YS5mbGFnc3w9NjU1MzY6KGEuZmxhZ3N8PTEyOCxjLmZsYWdzfD0xMzEwNzIsYy5mbGFncyY9LTUyODA1LDE9PT1jLnRhZyYmKG51bGw9PT1jLmFsdGVybmF0ZT9jLnRhZz0xNzooYj1jaCgtMSwxKSxiLnRhZz0yLGRoKGMsYiwxKSkpLGMubGFuZXN8PTEpLGE7YS5mbGFnc3w9NjU1MzY7YS5sYW5lcz1lO3JldHVybiBhfXZhciBYaT11YS5SZWFjdEN1cnJlbnRPd25lcixVZz0hMTtmdW5jdGlvbiBZaShhLGIsYyxkKXtiLmNoaWxkPW51bGw9PT1hP0NoKGIsbnVsbCxjLGQpOkJoKGIsYS5jaGlsZCxjLGQpfVxuZnVuY3Rpb24gWmkoYSxiLGMsZCxlKXtjPWMucmVuZGVyO3ZhciBmPWIucmVmO1RnKGIsZSk7ZD1YaChhLGIsYyxkLGYsZSk7Yz1iaSgpO2lmKG51bGwhPT1hJiYhVWcpcmV0dXJuIGIudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxiLmZsYWdzJj0tMjA1MyxhLmxhbmVzJj1+ZSwkaShhLGIsZSk7SSYmYyYmdmcoYik7Yi5mbGFnc3w9MTtZaShhLGIsZCxlKTtyZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGFqKGEsYixjLGQsZSl7aWYobnVsbD09PWEpe3ZhciBmPWMudHlwZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZiYmIWJqKGYpJiZ2b2lkIDA9PT1mLmRlZmF1bHRQcm9wcyYmbnVsbD09PWMuY29tcGFyZSYmdm9pZCAwPT09Yy5kZWZhdWx0UHJvcHMpcmV0dXJuIGIudGFnPTE1LGIudHlwZT1mLGNqKGEsYixmLGQsZSk7YT15aChjLnR5cGUsbnVsbCxkLGIsYi5tb2RlLGUpO2EucmVmPWIucmVmO2EucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9YX1mPWEuY2hpbGQ7aWYoMD09PShhLmxhbmVzJmUpKXt2YXIgZz1mLm1lbW9pemVkUHJvcHM7Yz1jLmNvbXBhcmU7Yz1udWxsIT09Yz9jOkllO2lmKGMoZyxkKSYmYS5yZWY9PT1iLnJlZilyZXR1cm4gJGkoYSxiLGUpfWIuZmxhZ3N8PTE7YT13aChmLGQpO2EucmVmPWIucmVmO2EucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9YX1cbmZ1bmN0aW9uIGNqKGEsYixjLGQsZSl7aWYobnVsbCE9PWEpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcztpZihJZShmLGQpJiZhLnJlZj09PWIucmVmKWlmKFVnPSExLGIucGVuZGluZ1Byb3BzPWQ9ZiwwIT09KGEubGFuZXMmZSkpMCE9PShhLmZsYWdzJjEzMTA3MikmJihVZz0hMCk7ZWxzZSByZXR1cm4gYi5sYW5lcz1hLmxhbmVzLCRpKGEsYixlKX1yZXR1cm4gZGooYSxiLGMsZCxlKX1cbmZ1bmN0aW9uIGVqKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPWQuY2hpbGRyZW4sZj1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbDtpZihcImhpZGRlblwiPT09ZC5tb2RlKWlmKDA9PT0oYi5tb2RlJjEpKWIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sRyhmaixnaiksZ2p8PWM7ZWxzZXtpZigwPT09KGMmMTA3Mzc0MTgyNCkpcmV0dXJuIGE9bnVsbCE9PWY/Zi5iYXNlTGFuZXN8YzpjLGIubGFuZXM9Yi5jaGlsZExhbmVzPTEwNzM3NDE4MjQsYi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfSxiLnVwZGF0ZVF1ZXVlPW51bGwsRyhmaixnaiksZ2p8PWEsbnVsbDtiLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9O2Q9bnVsbCE9PWY/Zi5iYXNlTGFuZXM6YztHKGZqLGdqKTtnanw9ZH1lbHNlIG51bGwhPT1cbmY/KGQ9Zi5iYXNlTGFuZXN8YyxiLm1lbW9pemVkU3RhdGU9bnVsbCk6ZD1jLEcoZmosZ2opLGdqfD1kO1lpKGEsYixlLGMpO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIGhqKGEsYil7dmFyIGM9Yi5yZWY7aWYobnVsbD09PWEmJm51bGwhPT1jfHxudWxsIT09YSYmYS5yZWYhPT1jKWIuZmxhZ3N8PTUxMixiLmZsYWdzfD0yMDk3MTUyfWZ1bmN0aW9uIGRqKGEsYixjLGQsZSl7dmFyIGY9WmYoYyk/WGY6SC5jdXJyZW50O2Y9WWYoYixmKTtUZyhiLGUpO2M9WGgoYSxiLGMsZCxmLGUpO2Q9YmkoKTtpZihudWxsIT09YSYmIVVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsJGkoYSxiLGUpO0kmJmQmJnZnKGIpO2IuZmxhZ3N8PTE7WWkoYSxiLGMsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBpaihhLGIsYyxkLGUpe2lmKFpmKGMpKXt2YXIgZj0hMDtjZyhiKX1lbHNlIGY9ITE7VGcoYixlKTtpZihudWxsPT09Yi5zdGF0ZU5vZGUpamooYSxiKSxwaChiLGMsZCkscmgoYixjLGQsZSksZD0hMDtlbHNlIGlmKG51bGw9PT1hKXt2YXIgZz1iLnN0YXRlTm9kZSxoPWIubWVtb2l6ZWRQcm9wcztnLnByb3BzPWg7dmFyIGs9Zy5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9VmcobCk6KGw9WmYoYyk/WGY6SC5jdXJyZW50LGw9WWYoYixsKSk7dmFyIG09Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMscT1cImZ1bmN0aW9uXCI9PT10eXBlb2YgbXx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU7cXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fFxuKGghPT1kfHxrIT09bCkmJnFoKGIsZyxkLGwpOyRnPSExO3ZhciByPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXI7Z2goYixkLGcsZSk7az1iLm1lbW9pemVkU3RhdGU7aCE9PWR8fHIhPT1rfHxXZi5jdXJyZW50fHwkZz8oXCJmdW5jdGlvblwiPT09dHlwZW9mIG0mJihraChiLGMsbSxkKSxrPWIubWVtb2l6ZWRTdGF0ZSksKGg9JGd8fG9oKGIsYyxoLGQscixrLGwpKT8ocXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbE1vdW50JiZnLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmcuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQxOTQzMDgpKTpcbihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQxOTQzMDgpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1rKSxnLnByb3BzPWQsZy5zdGF0ZT1rLGcuY29udGV4dD1sLGQ9aCk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZE1vdW50JiYoYi5mbGFnc3w9NDE5NDMwOCksZD0hMSl9ZWxzZXtnPWIuc3RhdGVOb2RlO2JoKGEsYik7aD1iLm1lbW9pemVkUHJvcHM7bD1iLnR5cGU9PT1iLmVsZW1lbnRUeXBlP2g6TGcoYi50eXBlLGgpO2cucHJvcHM9bDtxPWIucGVuZGluZ1Byb3BzO3I9Zy5jb250ZXh0O2s9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rP2s9Vmcoayk6KGs9WmYoYyk/WGY6SC5jdXJyZW50LGs9WWYoYixrKSk7dmFyIHk9Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7KG09XCJmdW5jdGlvblwiPT09dHlwZW9mIHl8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8XG5cImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGghPT1xfHxyIT09aykmJnFoKGIsZyxkLGspOyRnPSExO3I9Yi5tZW1vaXplZFN0YXRlO2cuc3RhdGU9cjtnaChiLGQsZyxlKTt2YXIgbj1iLm1lbW9pemVkU3RhdGU7aCE9PXF8fHIhPT1ufHxXZi5jdXJyZW50fHwkZz8oXCJmdW5jdGlvblwiPT09dHlwZW9mIHkmJihraChiLGMseSxkKSxuPWIubWVtb2l6ZWRTdGF0ZSksKGw9JGd8fG9oKGIsYyxsLGQscixuLGspfHwhMSk/KG18fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZSYmZy5jb21wb25lbnRXaWxsVXBkYXRlKGQsbixrKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXG5nLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKGQsbixrKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlJiYoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihiLmZsYWdzfD0xMDI0KSk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09YS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9MTAyNCksYi5tZW1vaXplZFByb3BzPWQsYi5tZW1vaXplZFN0YXRlPW4pLGcucHJvcHM9ZCxnLnN0YXRlPW4sZy5jb250ZXh0PWssZD1sKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50RGlkVXBkYXRlfHxoPT09YS5tZW1vaXplZFByb3BzJiZyPT09XG5hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTEwMjQpLGQ9ITEpfXJldHVybiBraihhLGIsYyxkLGYsZSl9XG5mdW5jdGlvbiBraihhLGIsYyxkLGUsZil7aGooYSxiKTt2YXIgZz0wIT09KGIuZmxhZ3MmMTI4KTtpZighZCYmIWcpcmV0dXJuIGUmJmRnKGIsYywhMSksJGkoYSxiLGYpO2Q9Yi5zdGF0ZU5vZGU7WGkuY3VycmVudD1iO3ZhciBoPWcmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmQucmVuZGVyKCk7Yi5mbGFnc3w9MTtudWxsIT09YSYmZz8oYi5jaGlsZD1CaChiLGEuY2hpbGQsbnVsbCxmKSxiLmNoaWxkPUJoKGIsbnVsbCxoLGYpKTpZaShhLGIsaCxmKTtiLm1lbW9pemVkU3RhdGU9ZC5zdGF0ZTtlJiZkZyhiLGMsITApO3JldHVybiBiLmNoaWxkfWZ1bmN0aW9uIGxqKGEpe3ZhciBiPWEuc3RhdGVOb2RlO2IucGVuZGluZ0NvbnRleHQ/YWcoYSxiLnBlbmRpbmdDb250ZXh0LGIucGVuZGluZ0NvbnRleHQhPT1iLmNvbnRleHQpOmIuY29udGV4dCYmYWcoYSxiLmNvbnRleHQsITEpO0loKGEsYi5jb250YWluZXJJbmZvKX1cbmZ1bmN0aW9uIG1qKGEsYixjLGQsZSl7SWcoKTtKZyhlKTtiLmZsYWdzfD0yNTY7WWkoYSxiLGMsZCk7cmV0dXJuIGIuY2hpbGR9dmFyIG5qPXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MH07ZnVuY3Rpb24gb2ooYSl7cmV0dXJue2Jhc2VMYW5lczphLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9fVxuZnVuY3Rpb24gcGooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9TS5jdXJyZW50LGY9ITEsZz0wIT09KGIuZmxhZ3MmMTI4KSxoOyhoPWcpfHwoaD1udWxsIT09YSYmbnVsbD09PWEubWVtb2l6ZWRTdGF0ZT8hMTowIT09KGUmMikpO2lmKGgpZj0hMCxiLmZsYWdzJj0tMTI5O2Vsc2UgaWYobnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUpZXw9MTtHKE0sZSYxKTtpZihudWxsPT09YSl7RWcoYik7YT1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWEmJihhPWEuZGVoeWRyYXRlZCxudWxsIT09YSkpcmV0dXJuIDA9PT0oYi5tb2RlJjEpP2IubGFuZXM9MTpcIiQhXCI9PT1hLmRhdGE/Yi5sYW5lcz04OmIubGFuZXM9MTA3Mzc0MTgyNCxudWxsO2c9ZC5jaGlsZHJlbjthPWQuZmFsbGJhY2s7cmV0dXJuIGY/KGQ9Yi5tb2RlLGY9Yi5jaGlsZCxnPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46Z30sMD09PShkJjEpJiZudWxsIT09Zj8oZi5jaGlsZExhbmVzPTAsZi5wZW5kaW5nUHJvcHM9XG5nKTpmPXFqKGcsZCwwLG51bGwpLGE9QWgoYSxkLGMsbnVsbCksZi5yZXR1cm49YixhLnJldHVybj1iLGYuc2libGluZz1hLGIuY2hpbGQ9ZixiLmNoaWxkLm1lbW9pemVkU3RhdGU9b2ooYyksYi5tZW1vaXplZFN0YXRlPW5qLGEpOnJqKGIsZyl9ZT1hLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWUmJihoPWUuZGVoeWRyYXRlZCxudWxsIT09aCkpcmV0dXJuIHNqKGEsYixnLGQsaCxlLGMpO2lmKGYpe2Y9ZC5mYWxsYmFjaztnPWIubW9kZTtlPWEuY2hpbGQ7aD1lLnNpYmxpbmc7dmFyIGs9e21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpkLmNoaWxkcmVufTswPT09KGcmMSkmJmIuY2hpbGQhPT1lPyhkPWIuY2hpbGQsZC5jaGlsZExhbmVzPTAsZC5wZW5kaW5nUHJvcHM9ayxiLmRlbGV0aW9ucz1udWxsKTooZD13aChlLGspLGQuc3VidHJlZUZsYWdzPWUuc3VidHJlZUZsYWdzJjE0NjgwMDY0KTtudWxsIT09aD9mPXdoKGgsZik6KGY9QWgoZixnLGMsbnVsbCksZi5mbGFnc3w9Mik7Zi5yZXR1cm49XG5iO2QucmV0dXJuPWI7ZC5zaWJsaW5nPWY7Yi5jaGlsZD1kO2Q9ZjtmPWIuY2hpbGQ7Zz1hLmNoaWxkLm1lbW9pemVkU3RhdGU7Zz1udWxsPT09Zz9vaihjKTp7YmFzZUxhbmVzOmcuYmFzZUxhbmVzfGMsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6Zy50cmFuc2l0aW9uc307Zi5tZW1vaXplZFN0YXRlPWc7Zi5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcyZ+YztiLm1lbW9pemVkU3RhdGU9bmo7cmV0dXJuIGR9Zj1hLmNoaWxkO2E9Zi5zaWJsaW5nO2Q9d2goZix7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpkLmNoaWxkcmVufSk7MD09PShiLm1vZGUmMSkmJihkLmxhbmVzPWMpO2QucmV0dXJuPWI7ZC5zaWJsaW5nPW51bGw7bnVsbCE9PWEmJihjPWIuZGVsZXRpb25zLG51bGw9PT1jPyhiLmRlbGV0aW9ucz1bYV0sYi5mbGFnc3w9MTYpOmMucHVzaChhKSk7Yi5jaGlsZD1kO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBkfVxuZnVuY3Rpb24gcmooYSxiKXtiPXFqKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmJ9LGEubW9kZSwwLG51bGwpO2IucmV0dXJuPWE7cmV0dXJuIGEuY2hpbGQ9Yn1mdW5jdGlvbiB0aihhLGIsYyxkKXtudWxsIT09ZCYmSmcoZCk7QmgoYixhLmNoaWxkLG51bGwsYyk7YT1yaihiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuKTthLmZsYWdzfD0yO2IubWVtb2l6ZWRTdGF0ZT1udWxsO3JldHVybiBhfVxuZnVuY3Rpb24gc2ooYSxiLGMsZCxlLGYsZyl7aWYoYyl7aWYoYi5mbGFncyYyNTYpcmV0dXJuIGIuZmxhZ3MmPS0yNTcsZD1MaShFcnJvcihwKDQyMikpKSx0aihhLGIsZyxkKTtpZihudWxsIT09Yi5tZW1vaXplZFN0YXRlKXJldHVybiBiLmNoaWxkPWEuY2hpbGQsYi5mbGFnc3w9MTI4LG51bGw7Zj1kLmZhbGxiYWNrO2U9Yi5tb2RlO2Q9cWooe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn0sZSwwLG51bGwpO2Y9QWgoZixlLGcsbnVsbCk7Zi5mbGFnc3w9MjtkLnJldHVybj1iO2YucmV0dXJuPWI7ZC5zaWJsaW5nPWY7Yi5jaGlsZD1kOzAhPT0oYi5tb2RlJjEpJiZCaChiLGEuY2hpbGQsbnVsbCxnKTtiLmNoaWxkLm1lbW9pemVkU3RhdGU9b2ooZyk7Yi5tZW1vaXplZFN0YXRlPW5qO3JldHVybiBmfWlmKDA9PT0oYi5tb2RlJjEpKXJldHVybiB0aihhLGIsZyxudWxsKTtpZihcIiQhXCI9PT1lLmRhdGEpe2Q9ZS5uZXh0U2libGluZyYmZS5uZXh0U2libGluZy5kYXRhc2V0O1xuaWYoZCl2YXIgaD1kLmRnc3Q7ZD1oO2Y9RXJyb3IocCg0MTkpKTtkPUxpKGYsZCx2b2lkIDApO3JldHVybiB0aihhLGIsZyxkKX1oPTAhPT0oZyZhLmNoaWxkTGFuZXMpO2lmKFVnfHxoKXtkPVI7aWYobnVsbCE9PWQpe3N3aXRjaChnJi1nKXtjYXNlIDQ6ZT0yO2JyZWFrO2Nhc2UgMTY6ZT04O2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMjg6Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDplPTMyO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmU9MjY4NDM1NDU2O2JyZWFrO2RlZmF1bHQ6ZT0wfWU9MCE9PShlJihkLnN1c3BlbmRlZExhbmVzfGcpKT8wOmU7XG4wIT09ZSYmZSE9PWYucmV0cnlMYW5lJiYoZi5yZXRyeUxhbmU9ZSxaZyhhLGUpLG1oKGQsYSxlLC0xKSl9dWooKTtkPUxpKEVycm9yKHAoNDIxKSkpO3JldHVybiB0aihhLGIsZyxkKX1pZihcIiQ/XCI9PT1lLmRhdGEpcmV0dXJuIGIuZmxhZ3N8PTEyOCxiLmNoaWxkPWEuY2hpbGQsYj12ai5iaW5kKG51bGwsYSksZS5fcmVhY3RSZXRyeT1iLG51bGw7YT1mLnRyZWVDb250ZXh0O3lnPUxmKGUubmV4dFNpYmxpbmcpO3hnPWI7ST0hMDt6Zz1udWxsO251bGwhPT1hJiYob2dbcGcrK109cmcsb2dbcGcrK109c2csb2dbcGcrK109cWcscmc9YS5pZCxzZz1hLm92ZXJmbG93LHFnPWIpO2I9cmooYixkLmNoaWxkcmVuKTtiLmZsYWdzfD00MDk2O3JldHVybiBifWZ1bmN0aW9uIHdqKGEsYixjKXthLmxhbmVzfD1iO3ZhciBkPWEuYWx0ZXJuYXRlO251bGwhPT1kJiYoZC5sYW5lc3w9Yik7U2coYS5yZXR1cm4sYixjKX1cbmZ1bmN0aW9uIHhqKGEsYixjLGQsZSl7dmFyIGY9YS5tZW1vaXplZFN0YXRlO251bGw9PT1mP2EubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6YixyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OmQsdGFpbDpjLHRhaWxNb2RlOmV9OihmLmlzQmFja3dhcmRzPWIsZi5yZW5kZXJpbmc9bnVsbCxmLnJlbmRlcmluZ1N0YXJ0VGltZT0wLGYubGFzdD1kLGYudGFpbD1jLGYudGFpbE1vZGU9ZSl9XG5mdW5jdGlvbiB5aihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1kLnJldmVhbE9yZGVyLGY9ZC50YWlsO1lpKGEsYixkLmNoaWxkcmVuLGMpO2Q9TS5jdXJyZW50O2lmKDAhPT0oZCYyKSlkPWQmMXwyLGIuZmxhZ3N8PTEyODtlbHNle2lmKG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmMTI4KSlhOmZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZigxMz09PWEudGFnKW51bGwhPT1hLm1lbW9pemVkU3RhdGUmJndqKGEsYyxiKTtlbHNlIGlmKDE5PT09YS50YWcpd2ooYSxjLGIpO2Vsc2UgaWYobnVsbCE9PWEuY2hpbGQpe2EuY2hpbGQucmV0dXJuPWE7YT1hLmNoaWxkO2NvbnRpbnVlfWlmKGE9PT1iKWJyZWFrIGE7Zm9yKDtudWxsPT09YS5zaWJsaW5nOyl7aWYobnVsbD09PWEucmV0dXJufHxhLnJldHVybj09PWIpYnJlYWsgYTthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm47YT1hLnNpYmxpbmd9ZCY9MX1HKE0sZCk7aWYoMD09PShiLm1vZGUmMSkpYi5tZW1vaXplZFN0YXRlPVxubnVsbDtlbHNlIHN3aXRjaChlKXtjYXNlIFwiZm9yd2FyZHNcIjpjPWIuY2hpbGQ7Zm9yKGU9bnVsbDtudWxsIT09YzspYT1jLmFsdGVybmF0ZSxudWxsIT09YSYmbnVsbD09PU1oKGEpJiYoZT1jKSxjPWMuc2libGluZztjPWU7bnVsbD09PWM/KGU9Yi5jaGlsZCxiLmNoaWxkPW51bGwpOihlPWMuc2libGluZyxjLnNpYmxpbmc9bnVsbCk7eGooYiwhMSxlLGMsZik7YnJlYWs7Y2FzZSBcImJhY2t3YXJkc1wiOmM9bnVsbDtlPWIuY2hpbGQ7Zm9yKGIuY2hpbGQ9bnVsbDtudWxsIT09ZTspe2E9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PWEmJm51bGw9PT1NaChhKSl7Yi5jaGlsZD1lO2JyZWFrfWE9ZS5zaWJsaW5nO2Uuc2libGluZz1jO2M9ZTtlPWF9eGooYiwhMCxjLG51bGwsZik7YnJlYWs7Y2FzZSBcInRvZ2V0aGVyXCI6eGooYiwhMSxudWxsLG51bGwsdm9pZCAwKTticmVhaztkZWZhdWx0OmIubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gamooYSxiKXswPT09KGIubW9kZSYxKSYmbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5mbGFnc3w9Mil9ZnVuY3Rpb24gJGkoYSxiLGMpe251bGwhPT1hJiYoYi5kZXBlbmRlbmNpZXM9YS5kZXBlbmRlbmNpZXMpO2hofD1iLmxhbmVzO2lmKDA9PT0oYyZiLmNoaWxkTGFuZXMpKXJldHVybiBudWxsO2lmKG51bGwhPT1hJiZiLmNoaWxkIT09YS5jaGlsZCl0aHJvdyBFcnJvcihwKDE1MykpO2lmKG51bGwhPT1iLmNoaWxkKXthPWIuY2hpbGQ7Yz13aChhLGEucGVuZGluZ1Byb3BzKTtiLmNoaWxkPWM7Zm9yKGMucmV0dXJuPWI7bnVsbCE9PWEuc2libGluZzspYT1hLnNpYmxpbmcsYz1jLnNpYmxpbmc9d2goYSxhLnBlbmRpbmdQcm9wcyksYy5yZXR1cm49YjtjLnNpYmxpbmc9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIHpqKGEsYixjKXtzd2l0Y2goYi50YWcpe2Nhc2UgMzpsaihiKTtJZygpO2JyZWFrO2Nhc2UgNTpLaChiKTticmVhaztjYXNlIDE6WmYoYi50eXBlKSYmY2coYik7YnJlYWs7Y2FzZSA0OkloKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDp2YXIgZD1iLnR5cGUuX2NvbnRleHQsZT1iLm1lbW9pemVkUHJvcHMudmFsdWU7RyhNZyxkLl9jdXJyZW50VmFsdWUpO2QuX2N1cnJlbnRWYWx1ZT1lO2JyZWFrO2Nhc2UgMTM6ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQpe2lmKG51bGwhPT1kLmRlaHlkcmF0ZWQpcmV0dXJuIEcoTSxNLmN1cnJlbnQmMSksYi5mbGFnc3w9MTI4LG51bGw7aWYoMCE9PShjJmIuY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIHBqKGEsYixjKTtHKE0sTS5jdXJyZW50JjEpO2E9JGkoYSxiLGMpO3JldHVybiBudWxsIT09YT9hLnNpYmxpbmc6bnVsbH1HKE0sTS5jdXJyZW50JjEpO2JyZWFrO2Nhc2UgMTk6ZD0wIT09KGMmXG5iLmNoaWxkTGFuZXMpO2lmKDAhPT0oYS5mbGFncyYxMjgpKXtpZihkKXJldHVybiB5aihhLGIsYyk7Yi5mbGFnc3w9MTI4fWU9Yi5tZW1vaXplZFN0YXRlO251bGwhPT1lJiYoZS5yZW5kZXJpbmc9bnVsbCxlLnRhaWw9bnVsbCxlLmxhc3RFZmZlY3Q9bnVsbCk7RyhNLE0uY3VycmVudCk7aWYoZClicmVhaztlbHNlIHJldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gYi5sYW5lcz0wLGVqKGEsYixjKX1yZXR1cm4gJGkoYSxiLGMpfXZhciBBaixCaixDaixEajtcbkFqPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWIuY2hpbGQ7bnVsbCE9PWM7KXtpZig1PT09Yy50YWd8fDY9PT1jLnRhZylhLmFwcGVuZENoaWxkKGMuc3RhdGVOb2RlKTtlbHNlIGlmKDQhPT1jLnRhZyYmbnVsbCE9PWMuY2hpbGQpe2MuY2hpbGQucmV0dXJuPWM7Yz1jLmNoaWxkO2NvbnRpbnVlfWlmKGM9PT1iKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1iKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fTtCaj1mdW5jdGlvbigpe307XG5Daj1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLm1lbW9pemVkUHJvcHM7aWYoZSE9PWQpe2E9Yi5zdGF0ZU5vZGU7SGgoRWguY3VycmVudCk7dmFyIGY9bnVsbDtzd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6ZT1ZYShhLGUpO2Q9WWEoYSxkKTtmPVtdO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjplPUEoe30sZSx7dmFsdWU6dm9pZCAwfSk7ZD1BKHt9LGQse3ZhbHVlOnZvaWQgMH0pO2Y9W107YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6ZT1nYihhLGUpO2Q9Z2IoYSxkKTtmPVtdO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiIT09dHlwZW9mIGUub25DbGljayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGEub25jbGljaz1CZil9dWIoYyxkKTt2YXIgZztjPW51bGw7Zm9yKGwgaW4gZSlpZighZC5oYXNPd25Qcm9wZXJ0eShsKSYmZS5oYXNPd25Qcm9wZXJ0eShsKSYmbnVsbCE9ZVtsXSlpZihcInN0eWxlXCI9PT1sKXt2YXIgaD1lW2xdO2ZvcihnIGluIGgpaC5oYXNPd25Qcm9wZXJ0eShnKSYmXG4oY3x8KGM9e30pLGNbZ109XCJcIil9ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWwmJlwiY2hpbGRyZW5cIiE9PWwmJlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmXCJhdXRvRm9jdXNcIiE9PWwmJihlYS5oYXNPd25Qcm9wZXJ0eShsKT9mfHwoZj1bXSk6KGY9Znx8W10pLnB1c2gobCxudWxsKSk7Zm9yKGwgaW4gZCl7dmFyIGs9ZFtsXTtoPW51bGwhPWU/ZVtsXTp2b2lkIDA7aWYoZC5oYXNPd25Qcm9wZXJ0eShsKSYmayE9PWgmJihudWxsIT1rfHxudWxsIT1oKSlpZihcInN0eWxlXCI9PT1sKWlmKGgpe2ZvcihnIGluIGgpIWguaGFzT3duUHJvcGVydHkoZyl8fGsmJmsuaGFzT3duUHJvcGVydHkoZyl8fChjfHwoYz17fSksY1tnXT1cIlwiKTtmb3IoZyBpbiBrKWsuaGFzT3duUHJvcGVydHkoZykmJmhbZ10hPT1rW2ddJiYoY3x8KGM9e30pLGNbZ109a1tnXSl9ZWxzZSBjfHwoZnx8KGY9W10pLGYucHVzaChsLFxuYykpLGM9aztlbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09bD8oaz1rP2suX19odG1sOnZvaWQgMCxoPWg/aC5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJmghPT1rJiYoZj1mfHxbXSkucHVzaChsLGspKTpcImNoaWxkcmVuXCI9PT1sP1wic3RyaW5nXCIhPT10eXBlb2YgayYmXCJudW1iZXJcIiE9PXR5cGVvZiBrfHwoZj1mfHxbXSkucHVzaChsLFwiXCIrayk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWwmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1sJiYoZWEuaGFzT3duUHJvcGVydHkobCk/KG51bGwhPWsmJlwib25TY3JvbGxcIj09PWwmJkQoXCJzY3JvbGxcIixhKSxmfHxoPT09a3x8KGY9W10pKTooZj1mfHxbXSkucHVzaChsLGspKX1jJiYoZj1mfHxbXSkucHVzaChcInN0eWxlXCIsYyk7dmFyIGw9ZjtpZihiLnVwZGF0ZVF1ZXVlPWwpYi5mbGFnc3w9NH19O0RqPWZ1bmN0aW9uKGEsYixjLGQpe2MhPT1kJiYoYi5mbGFnc3w9NCl9O1xuZnVuY3Rpb24gRWooYSxiKXtpZighSSlzd2l0Y2goYS50YWlsTW9kZSl7Y2FzZSBcImhpZGRlblwiOmI9YS50YWlsO2Zvcih2YXIgYz1udWxsO251bGwhPT1iOyludWxsIT09Yi5hbHRlcm5hdGUmJihjPWIpLGI9Yi5zaWJsaW5nO251bGw9PT1jP2EudGFpbD1udWxsOmMuc2libGluZz1udWxsO2JyZWFrO2Nhc2UgXCJjb2xsYXBzZWRcIjpjPWEudGFpbDtmb3IodmFyIGQ9bnVsbDtudWxsIT09YzspbnVsbCE9PWMuYWx0ZXJuYXRlJiYoZD1jKSxjPWMuc2libGluZztudWxsPT09ZD9ifHxudWxsPT09YS50YWlsP2EudGFpbD1udWxsOmEudGFpbC5zaWJsaW5nPW51bGw6ZC5zaWJsaW5nPW51bGx9fVxuZnVuY3Rpb24gUyhhKXt2YXIgYj1udWxsIT09YS5hbHRlcm5hdGUmJmEuYWx0ZXJuYXRlLmNoaWxkPT09YS5jaGlsZCxjPTAsZD0wO2lmKGIpZm9yKHZhciBlPWEuY2hpbGQ7bnVsbCE9PWU7KWN8PWUubGFuZXN8ZS5jaGlsZExhbmVzLGR8PWUuc3VidHJlZUZsYWdzJjE0NjgwMDY0LGR8PWUuZmxhZ3MmMTQ2ODAwNjQsZS5yZXR1cm49YSxlPWUuc2libGluZztlbHNlIGZvcihlPWEuY2hpbGQ7bnVsbCE9PWU7KWN8PWUubGFuZXN8ZS5jaGlsZExhbmVzLGR8PWUuc3VidHJlZUZsYWdzLGR8PWUuZmxhZ3MsZS5yZXR1cm49YSxlPWUuc2libGluZzthLnN1YnRyZWVGbGFnc3w9ZDthLmNoaWxkTGFuZXM9YztyZXR1cm4gYn1cbmZ1bmN0aW9uIEZqKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wczt3ZyhiKTtzd2l0Y2goYi50YWcpe2Nhc2UgMjpjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OnJldHVybiBTKGIpLG51bGw7Y2FzZSAxOnJldHVybiBaZihiLnR5cGUpJiYkZigpLFMoYiksbnVsbDtjYXNlIDM6ZD1iLnN0YXRlTm9kZTtKaCgpO0UoV2YpO0UoSCk7T2goKTtkLnBlbmRpbmdDb250ZXh0JiYoZC5jb250ZXh0PWQucGVuZGluZ0NvbnRleHQsZC5wZW5kaW5nQ29udGV4dD1udWxsKTtpZihudWxsPT09YXx8bnVsbD09PWEuY2hpbGQpR2coYik/Yi5mbGFnc3w9NDpudWxsPT09YXx8YS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmMD09PShiLmZsYWdzJjI1Nil8fChiLmZsYWdzfD0xMDI0LG51bGwhPT16ZyYmKEdqKHpnKSx6Zz1udWxsKSk7QmooYSxiKTtTKGIpO3JldHVybiBudWxsO2Nhc2UgNTpMaChiKTt2YXIgZT1IaChHaC5jdXJyZW50KTtcbmM9Yi50eXBlO2lmKG51bGwhPT1hJiZudWxsIT1iLnN0YXRlTm9kZSlDaihhLGIsYyxkLGUpLGEucmVmIT09Yi5yZWYmJihiLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mik7ZWxzZXtpZighZCl7aWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTY2KSk7UyhiKTtyZXR1cm4gbnVsbH1hPUhoKEVoLmN1cnJlbnQpO2lmKEdnKGIpKXtkPWIuc3RhdGVOb2RlO2M9Yi50eXBlO3ZhciBmPWIubWVtb2l6ZWRQcm9wcztkW09mXT1iO2RbUGZdPWY7YT0wIT09KGIubW9kZSYxKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkQoXCJjYW5jZWxcIixkKTtEKFwiY2xvc2VcIixkKTticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkQoXCJsb2FkXCIsZCk7YnJlYWs7Y2FzZSBcInZpZGVvXCI6Y2FzZSBcImF1ZGlvXCI6Zm9yKGU9MDtlPGxmLmxlbmd0aDtlKyspRChsZltlXSxkKTticmVhaztjYXNlIFwic291cmNlXCI6RChcImVycm9yXCIsZCk7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RChcImVycm9yXCIsXG5kKTtEKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RChcInRvZ2dsZVwiLGQpO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGQsZik7RChcImludmFsaWRcIixkKTticmVhaztjYXNlIFwic2VsZWN0XCI6ZC5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWYubXVsdGlwbGV9O0QoXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoZCxmKSxEKFwiaW52YWxpZFwiLGQpfXViKGMsZik7ZT1udWxsO2Zvcih2YXIgZyBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoZykpe3ZhciBoPWZbZ107XCJjaGlsZHJlblwiPT09Zz9cInN0cmluZ1wiPT09dHlwZW9mIGg/ZC50ZXh0Q29udGVudCE9PWgmJighMCE9PWYuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZBZihkLnRleHRDb250ZW50LGgsYSksZT1bXCJjaGlsZHJlblwiLGhdKTpcIm51bWJlclwiPT09dHlwZW9mIGgmJmQudGV4dENvbnRlbnQhPT1cIlwiK2gmJighMCE9PWYuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJiZBZihkLnRleHRDb250ZW50LFxuaCxhKSxlPVtcImNoaWxkcmVuXCIsXCJcIitoXSk6ZWEuaGFzT3duUHJvcGVydHkoZykmJm51bGwhPWgmJlwib25TY3JvbGxcIj09PWcmJkQoXCJzY3JvbGxcIixkKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoZCk7ZGIoZCxmLCEwKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShkKTtqYihkKTticmVhaztjYXNlIFwic2VsZWN0XCI6Y2FzZSBcIm9wdGlvblwiOmJyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiPT09dHlwZW9mIGYub25DbGljayYmKGQub25jbGljaz1CZil9ZD1lO2IudXBkYXRlUXVldWU9ZDtudWxsIT09ZCYmKGIuZmxhZ3N8PTQpfWVsc2V7Zz05PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudDtcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWEmJihhPWtiKGMpKTtcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWE/XCJzY3JpcHRcIj09PWM/KGE9Zy5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGEuaW5uZXJIVE1MPVwiPHNjcmlwdD5cXHgzYy9zY3JpcHQ+XCIsYT1hLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCkpOlxuXCJzdHJpbmdcIj09PXR5cGVvZiBkLmlzP2E9Zy5jcmVhdGVFbGVtZW50KGMse2lzOmQuaXN9KTooYT1nLmNyZWF0ZUVsZW1lbnQoYyksXCJzZWxlY3RcIj09PWMmJihnPWEsZC5tdWx0aXBsZT9nLm11bHRpcGxlPSEwOmQuc2l6ZSYmKGcuc2l6ZT1kLnNpemUpKSk6YT1nLmNyZWF0ZUVsZW1lbnROUyhhLGMpO2FbT2ZdPWI7YVtQZl09ZDtBaihhLGIsITEsITEpO2Iuc3RhdGVOb2RlPWE7YTp7Zz12YihjLGQpO3N3aXRjaChjKXtjYXNlIFwiZGlhbG9nXCI6RChcImNhbmNlbFwiLGEpO0QoXCJjbG9zZVwiLGEpO2U9ZDticmVhaztjYXNlIFwiaWZyYW1lXCI6Y2FzZSBcIm9iamVjdFwiOmNhc2UgXCJlbWJlZFwiOkQoXCJsb2FkXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxsZi5sZW5ndGg7ZSsrKUQobGZbZV0sYSk7ZT1kO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpEKFwiZXJyb3JcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RChcImVycm9yXCIsXG5hKTtEKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwiZGV0YWlsc1wiOkQoXCJ0b2dnbGVcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlucHV0XCI6WmEoYSxkKTtlPVlhKGEsZCk7RChcImludmFsaWRcIixhKTticmVhaztjYXNlIFwib3B0aW9uXCI6ZT1kO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZC5tdWx0aXBsZX07ZT1BKHt9LGQse3ZhbHVlOnZvaWQgMH0pO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aGIoYSxkKTtlPWdiKGEsZCk7RChcImludmFsaWRcIixhKTticmVhaztkZWZhdWx0OmU9ZH11YihjLGUpO2g9ZTtmb3IoZiBpbiBoKWlmKGguaGFzT3duUHJvcGVydHkoZikpe3ZhciBrPWhbZl07XCJzdHlsZVwiPT09Zj9zYihhLGspOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWY/KGs9az9rLl9faHRtbDp2b2lkIDAsbnVsbCE9ayYmbmIoYSxrKSk6XCJjaGlsZHJlblwiPT09Zj9cInN0cmluZ1wiPT09dHlwZW9mIGs/KFwidGV4dGFyZWFcIiE9PVxuY3x8XCJcIiE9PWspJiZvYihhLGspOlwibnVtYmVyXCI9PT10eXBlb2YgayYmb2IoYSxcIlwiK2spOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1mJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09ZiYmXCJhdXRvRm9jdXNcIiE9PWYmJihlYS5oYXNPd25Qcm9wZXJ0eShmKT9udWxsIT1rJiZcIm9uU2Nyb2xsXCI9PT1mJiZEKFwic2Nyb2xsXCIsYSk6bnVsbCE9ayYmdGEoYSxmLGssZykpfXN3aXRjaChjKXtjYXNlIFwiaW5wdXRcIjpWYShhKTtkYihhLGQsITEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZhKGEpO2piKGEpO2JyZWFrO2Nhc2UgXCJvcHRpb25cIjpudWxsIT1kLnZhbHVlJiZhLnNldEF0dHJpYnV0ZShcInZhbHVlXCIsXCJcIitTYShkLnZhbHVlKSk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmEubXVsdGlwbGU9ISFkLm11bHRpcGxlO2Y9ZC52YWx1ZTtudWxsIT1mP2ZiKGEsISFkLm11bHRpcGxlLGYsITEpOm51bGwhPWQuZGVmYXVsdFZhbHVlJiZmYihhLCEhZC5tdWx0aXBsZSxkLmRlZmF1bHRWYWx1ZSxcbiEwKTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfXN3aXRjaChjKXtjYXNlIFwiYnV0dG9uXCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJ0ZXh0YXJlYVwiOmQ9ISFkLmF1dG9Gb2N1czticmVhayBhO2Nhc2UgXCJpbWdcIjpkPSEwO2JyZWFrIGE7ZGVmYXVsdDpkPSExfX1kJiYoYi5mbGFnc3w9NCl9bnVsbCE9PWIucmVmJiYoYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTIpfVMoYik7cmV0dXJuIG51bGw7Y2FzZSA2OmlmKGEmJm51bGwhPWIuc3RhdGVOb2RlKURqKGEsYixhLm1lbW9pemVkUHJvcHMsZCk7ZWxzZXtpZihcInN0cmluZ1wiIT09dHlwZW9mIGQmJm51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO2M9SGgoR2guY3VycmVudCk7SGgoRWguY3VycmVudCk7aWYoR2coYikpe2Q9Yi5zdGF0ZU5vZGU7Yz1iLm1lbW9pemVkUHJvcHM7ZFtPZl09YjtpZihmPWQubm9kZVZhbHVlIT09YylpZihhPVxueGcsbnVsbCE9PWEpc3dpdGNoKGEudGFnKXtjYXNlIDM6QWYoZC5ub2RlVmFsdWUsYywwIT09KGEubW9kZSYxKSk7YnJlYWs7Y2FzZSA1OiEwIT09YS5tZW1vaXplZFByb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC5ub2RlVmFsdWUsYywwIT09KGEubW9kZSYxKSl9ZiYmKGIuZmxhZ3N8PTQpfWVsc2UgZD0oOT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKGQpLGRbT2ZdPWIsYi5zdGF0ZU5vZGU9ZH1TKGIpO3JldHVybiBudWxsO2Nhc2UgMTM6RShNKTtkPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09YXx8bnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkKXtpZihJJiZudWxsIT09eWcmJjAhPT0oYi5tb2RlJjEpJiYwPT09KGIuZmxhZ3MmMTI4KSlIZygpLElnKCksYi5mbGFnc3w9OTg1NjAsZj0hMTtlbHNlIGlmKGY9R2coYiksbnVsbCE9PWQmJm51bGwhPT1kLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1cbmEpe2lmKCFmKXRocm93IEVycm9yKHAoMzE4KSk7Zj1iLm1lbW9pemVkU3RhdGU7Zj1udWxsIT09Zj9mLmRlaHlkcmF0ZWQ6bnVsbDtpZighZil0aHJvdyBFcnJvcihwKDMxNykpO2ZbT2ZdPWJ9ZWxzZSBJZygpLDA9PT0oYi5mbGFncyYxMjgpJiYoYi5tZW1vaXplZFN0YXRlPW51bGwpLGIuZmxhZ3N8PTQ7UyhiKTtmPSExfWVsc2UgbnVsbCE9PXpnJiYoR2ooemcpLHpnPW51bGwpLGY9ITA7aWYoIWYpcmV0dXJuIGIuZmxhZ3MmNjU1MzY/YjpudWxsfWlmKDAhPT0oYi5mbGFncyYxMjgpKXJldHVybiBiLmxhbmVzPWMsYjtkPW51bGwhPT1kO2QhPT0obnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUpJiZkJiYoYi5jaGlsZC5mbGFnc3w9ODE5MiwwIT09KGIubW9kZSYxKSYmKG51bGw9PT1hfHwwIT09KE0uY3VycmVudCYxKT8wPT09VCYmKFQ9Myk6dWooKSkpO251bGwhPT1iLnVwZGF0ZVF1ZXVlJiYoYi5mbGFnc3w9NCk7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDQ6cmV0dXJuIEpoKCksXG5CaihhLGIpLG51bGw9PT1hJiZzZihiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxTKGIpLG51bGw7Y2FzZSAxMDpyZXR1cm4gUmcoYi50eXBlLl9jb250ZXh0KSxTKGIpLG51bGw7Y2FzZSAxNzpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxTKGIpLG51bGw7Y2FzZSAxOTpFKE0pO2Y9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1mKXJldHVybiBTKGIpLG51bGw7ZD0wIT09KGIuZmxhZ3MmMTI4KTtnPWYucmVuZGVyaW5nO2lmKG51bGw9PT1nKWlmKGQpRWooZiwhMSk7ZWxzZXtpZigwIT09VHx8bnVsbCE9PWEmJjAhPT0oYS5mbGFncyYxMjgpKWZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtnPU1oKGEpO2lmKG51bGwhPT1nKXtiLmZsYWdzfD0xMjg7RWooZiwhMSk7ZD1nLnVwZGF0ZVF1ZXVlO251bGwhPT1kJiYoYi51cGRhdGVRdWV1ZT1kLGIuZmxhZ3N8PTQpO2Iuc3VidHJlZUZsYWdzPTA7ZD1jO2ZvcihjPWIuY2hpbGQ7bnVsbCE9PWM7KWY9YyxhPWQsZi5mbGFncyY9MTQ2ODAwNjYsXG5nPWYuYWx0ZXJuYXRlLG51bGw9PT1nPyhmLmNoaWxkTGFuZXM9MCxmLmxhbmVzPWEsZi5jaGlsZD1udWxsLGYuc3VidHJlZUZsYWdzPTAsZi5tZW1vaXplZFByb3BzPW51bGwsZi5tZW1vaXplZFN0YXRlPW51bGwsZi51cGRhdGVRdWV1ZT1udWxsLGYuZGVwZW5kZW5jaWVzPW51bGwsZi5zdGF0ZU5vZGU9bnVsbCk6KGYuY2hpbGRMYW5lcz1nLmNoaWxkTGFuZXMsZi5sYW5lcz1nLmxhbmVzLGYuY2hpbGQ9Zy5jaGlsZCxmLnN1YnRyZWVGbGFncz0wLGYuZGVsZXRpb25zPW51bGwsZi5tZW1vaXplZFByb3BzPWcubWVtb2l6ZWRQcm9wcyxmLm1lbW9pemVkU3RhdGU9Zy5tZW1vaXplZFN0YXRlLGYudXBkYXRlUXVldWU9Zy51cGRhdGVRdWV1ZSxmLnR5cGU9Zy50eXBlLGE9Zy5kZXBlbmRlbmNpZXMsZi5kZXBlbmRlbmNpZXM9bnVsbD09PWE/bnVsbDp7bGFuZXM6YS5sYW5lcyxmaXJzdENvbnRleHQ6YS5maXJzdENvbnRleHR9KSxjPWMuc2libGluZztHKE0sTS5jdXJyZW50JjF8Mik7cmV0dXJuIGIuY2hpbGR9YT1cbmEuc2libGluZ31udWxsIT09Zi50YWlsJiZCKCk+SGomJihiLmZsYWdzfD0xMjgsZD0hMCxFaihmLCExKSxiLmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIWQpaWYoYT1NaChnKSxudWxsIT09YSl7aWYoYi5mbGFnc3w9MTI4LGQ9ITAsYz1hLnVwZGF0ZVF1ZXVlLG51bGwhPT1jJiYoYi51cGRhdGVRdWV1ZT1jLGIuZmxhZ3N8PTQpLEVqKGYsITApLG51bGw9PT1mLnRhaWwmJlwiaGlkZGVuXCI9PT1mLnRhaWxNb2RlJiYhZy5hbHRlcm5hdGUmJiFJKXJldHVybiBTKGIpLG51bGx9ZWxzZSAyKkIoKS1mLnJlbmRlcmluZ1N0YXJ0VGltZT5IaiYmMTA3Mzc0MTgyNCE9PWMmJihiLmZsYWdzfD0xMjgsZD0hMCxFaihmLCExKSxiLmxhbmVzPTQxOTQzMDQpO2YuaXNCYWNrd2FyZHM/KGcuc2libGluZz1iLmNoaWxkLGIuY2hpbGQ9Zyk6KGM9Zi5sYXN0LG51bGwhPT1jP2Muc2libGluZz1nOmIuY2hpbGQ9ZyxmLmxhc3Q9Zyl9aWYobnVsbCE9PWYudGFpbClyZXR1cm4gYj1mLnRhaWwsZi5yZW5kZXJpbmc9XG5iLGYudGFpbD1iLnNpYmxpbmcsZi5yZW5kZXJpbmdTdGFydFRpbWU9QigpLGIuc2libGluZz1udWxsLGM9TS5jdXJyZW50LEcoTSxkP2MmMXwyOmMmMSksYjtTKGIpO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gSWooKSxkPW51bGwhPT1iLm1lbW9pemVkU3RhdGUsbnVsbCE9PWEmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUhPT1kJiYoYi5mbGFnc3w9ODE5MiksZCYmMCE9PShiLm1vZGUmMSk/MCE9PShnaiYxMDczNzQxODI0KSYmKFMoYiksYi5zdWJ0cmVlRmxhZ3MmNiYmKGIuZmxhZ3N8PTgxOTIpKTpTKGIpLG51bGw7Y2FzZSAyNDpyZXR1cm4gbnVsbDtjYXNlIDI1OnJldHVybiBudWxsfXRocm93IEVycm9yKHAoMTU2LGIudGFnKSk7fVxuZnVuY3Rpb24gSmooYSxiKXt3ZyhiKTtzd2l0Y2goYi50YWcpe2Nhc2UgMTpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxhPWIuZmxhZ3MsYSY2NTUzNj8oYi5mbGFncz1hJi02NTUzN3wxMjgsYik6bnVsbDtjYXNlIDM6cmV0dXJuIEpoKCksRShXZiksRShIKSxPaCgpLGE9Yi5mbGFncywwIT09KGEmNjU1MzYpJiYwPT09KGEmMTI4KT8oYi5mbGFncz1hJi02NTUzN3wxMjgsYik6bnVsbDtjYXNlIDU6cmV0dXJuIExoKGIpLG51bGw7Y2FzZSAxMzpFKE0pO2E9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXtpZihudWxsPT09Yi5hbHRlcm5hdGUpdGhyb3cgRXJyb3IocCgzNDApKTtJZygpfWE9Yi5mbGFncztyZXR1cm4gYSY2NTUzNj8oYi5mbGFncz1hJi02NTUzN3wxMjgsYik6bnVsbDtjYXNlIDE5OnJldHVybiBFKE0pLG51bGw7Y2FzZSA0OnJldHVybiBKaCgpLG51bGw7Y2FzZSAxMDpyZXR1cm4gUmcoYi50eXBlLl9jb250ZXh0KSxudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gSWooKSxcbm51bGw7Y2FzZSAyNDpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgS2o9ITEsVT0hMSxMaj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgV2Vha1NldD9XZWFrU2V0OlNldCxWPW51bGw7ZnVuY3Rpb24gTWooYSxiKXt2YXIgYz1hLnJlZjtpZihudWxsIT09YylpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYyl0cnl7YyhudWxsKX1jYXRjaChkKXtXKGEsYixkKX1lbHNlIGMuY3VycmVudD1udWxsfWZ1bmN0aW9uIE5qKGEsYixjKXt0cnl7YygpfWNhdGNoKGQpe1coYSxiLGQpfX12YXIgT2o9ITE7XG5mdW5jdGlvbiBQaihhLGIpe0NmPWRkO2E9TWUoKTtpZihOZShhKSl7aWYoXCJzZWxlY3Rpb25TdGFydFwiaW4gYSl2YXIgYz17c3RhcnQ6YS5zZWxlY3Rpb25TdGFydCxlbmQ6YS5zZWxlY3Rpb25FbmR9O2Vsc2UgYTp7Yz0oYz1hLm93bmVyRG9jdW1lbnQpJiZjLmRlZmF1bHRWaWV3fHx3aW5kb3c7dmFyIGQ9Yy5nZXRTZWxlY3Rpb24mJmMuZ2V0U2VsZWN0aW9uKCk7aWYoZCYmMCE9PWQucmFuZ2VDb3VudCl7Yz1kLmFuY2hvck5vZGU7dmFyIGU9ZC5hbmNob3JPZmZzZXQsZj1kLmZvY3VzTm9kZTtkPWQuZm9jdXNPZmZzZXQ7dHJ5e2Mubm9kZVR5cGUsZi5ub2RlVHlwZX1jYXRjaChGKXtjPW51bGw7YnJlYWsgYX12YXIgZz0wLGg9LTEsaz0tMSxsPTAsbT0wLHE9YSxyPW51bGw7Yjpmb3IoOzspe2Zvcih2YXIgeTs7KXtxIT09Y3x8MCE9PWUmJjMhPT1xLm5vZGVUeXBlfHwoaD1nK2UpO3EhPT1mfHwwIT09ZCYmMyE9PXEubm9kZVR5cGV8fChrPWcrZCk7Mz09PXEubm9kZVR5cGUmJihnKz1cbnEubm9kZVZhbHVlLmxlbmd0aCk7aWYobnVsbD09PSh5PXEuZmlyc3RDaGlsZCkpYnJlYWs7cj1xO3E9eX1mb3IoOzspe2lmKHE9PT1hKWJyZWFrIGI7cj09PWMmJisrbD09PWUmJihoPWcpO3I9PT1mJiYrK209PT1kJiYoaz1nKTtpZihudWxsIT09KHk9cS5uZXh0U2libGluZykpYnJlYWs7cT1yO3I9cS5wYXJlbnROb2RlfXE9eX1jPS0xPT09aHx8LTE9PT1rP251bGw6e3N0YXJ0OmgsZW5kOmt9fWVsc2UgYz1udWxsfWM9Y3x8e3N0YXJ0OjAsZW5kOjB9fWVsc2UgYz1udWxsO0RmPXtmb2N1c2VkRWxlbTphLHNlbGVjdGlvblJhbmdlOmN9O2RkPSExO2ZvcihWPWI7bnVsbCE9PVY7KWlmKGI9VixhPWIuY2hpbGQsMCE9PShiLnN1YnRyZWVGbGFncyYxMDI4KSYmbnVsbCE9PWEpYS5yZXR1cm49YixWPWE7ZWxzZSBmb3IoO251bGwhPT1WOyl7Yj1WO3RyeXt2YXIgbj1iLmFsdGVybmF0ZTtpZigwIT09KGIuZmxhZ3MmMTAyNCkpc3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmJyZWFrO1xuY2FzZSAxOmlmKG51bGwhPT1uKXt2YXIgdD1uLm1lbW9pemVkUHJvcHMsSj1uLm1lbW9pemVkU3RhdGUseD1iLnN0YXRlTm9kZSx3PXguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoYi5lbGVtZW50VHlwZT09PWIudHlwZT90OkxnKGIudHlwZSx0KSxKKTt4Ll9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPXd9YnJlYWs7Y2FzZSAzOnZhciB1PWIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87MT09PXUubm9kZVR5cGU/dS50ZXh0Q29udGVudD1cIlwiOjk9PT11Lm5vZGVUeXBlJiZ1LmRvY3VtZW50RWxlbWVudCYmdS5yZW1vdmVDaGlsZCh1LmRvY3VtZW50RWxlbWVudCk7YnJlYWs7Y2FzZSA1OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMTYzKSk7fX1jYXRjaChGKXtXKGIsYi5yZXR1cm4sRil9YT1iLnNpYmxpbmc7aWYobnVsbCE9PWEpe2EucmV0dXJuPWIucmV0dXJuO1Y9YTticmVha31WPWIucmV0dXJufW49T2o7T2o9ITE7cmV0dXJuIG59XG5mdW5jdGlvbiBRaihhLGIsYyl7dmFyIGQ9Yi51cGRhdGVRdWV1ZTtkPW51bGwhPT1kP2QubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1kKXt2YXIgZT1kPWQubmV4dDtkb3tpZigoZS50YWcmYSk9PT1hKXt2YXIgZj1lLmRlc3Ryb3k7ZS5kZXN0cm95PXZvaWQgMDt2b2lkIDAhPT1mJiZOaihiLGMsZil9ZT1lLm5leHR9d2hpbGUoZSE9PWQpfX1mdW5jdGlvbiBSaihhLGIpe2I9Yi51cGRhdGVRdWV1ZTtiPW51bGwhPT1iP2IubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1iKXt2YXIgYz1iPWIubmV4dDtkb3tpZigoYy50YWcmYSk9PT1hKXt2YXIgZD1jLmNyZWF0ZTtjLmRlc3Ryb3k9ZCgpfWM9Yy5uZXh0fXdoaWxlKGMhPT1iKX19ZnVuY3Rpb24gU2ooYSl7dmFyIGI9YS5yZWY7aWYobnVsbCE9PWIpe3ZhciBjPWEuc3RhdGVOb2RlO3N3aXRjaChhLnRhZyl7Y2FzZSA1OmE9YzticmVhaztkZWZhdWx0OmE9Y31cImZ1bmN0aW9uXCI9PT10eXBlb2YgYj9iKGEpOmIuY3VycmVudD1hfX1cbmZ1bmN0aW9uIFRqKGEpe3ZhciBiPWEuYWx0ZXJuYXRlO251bGwhPT1iJiYoYS5hbHRlcm5hdGU9bnVsbCxUaihiKSk7YS5jaGlsZD1udWxsO2EuZGVsZXRpb25zPW51bGw7YS5zaWJsaW5nPW51bGw7NT09PWEudGFnJiYoYj1hLnN0YXRlTm9kZSxudWxsIT09YiYmKGRlbGV0ZSBiW09mXSxkZWxldGUgYltQZl0sZGVsZXRlIGJbb2ZdLGRlbGV0ZSBiW1FmXSxkZWxldGUgYltSZl0pKTthLnN0YXRlTm9kZT1udWxsO2EucmV0dXJuPW51bGw7YS5kZXBlbmRlbmNpZXM9bnVsbDthLm1lbW9pemVkUHJvcHM9bnVsbDthLm1lbW9pemVkU3RhdGU9bnVsbDthLnBlbmRpbmdQcm9wcz1udWxsO2Euc3RhdGVOb2RlPW51bGw7YS51cGRhdGVRdWV1ZT1udWxsfWZ1bmN0aW9uIFVqKGEpe3JldHVybiA1PT09YS50YWd8fDM9PT1hLnRhZ3x8ND09PWEudGFnfVxuZnVuY3Rpb24gVmooYSl7YTpmb3IoOzspe2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8VWooYS5yZXR1cm4pKXJldHVybiBudWxsO2E9YS5yZXR1cm59YS5zaWJsaW5nLnJldHVybj1hLnJldHVybjtmb3IoYT1hLnNpYmxpbmc7NSE9PWEudGFnJiY2IT09YS50YWcmJjE4IT09YS50YWc7KXtpZihhLmZsYWdzJjIpY29udGludWUgYTtpZihudWxsPT09YS5jaGlsZHx8ND09PWEudGFnKWNvbnRpbnVlIGE7ZWxzZSBhLmNoaWxkLnJldHVybj1hLGE9YS5jaGlsZH1pZighKGEuZmxhZ3MmMikpcmV0dXJuIGEuc3RhdGVOb2RlfX1cbmZ1bmN0aW9uIFdqKGEsYixjKXt2YXIgZD1hLnRhZztpZig1PT09ZHx8Nj09PWQpYT1hLnN0YXRlTm9kZSxiPzg9PT1jLm5vZGVUeXBlP2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxiKTpjLmluc2VydEJlZm9yZShhLGIpOig4PT09Yy5ub2RlVHlwZT8oYj1jLnBhcmVudE5vZGUsYi5pbnNlcnRCZWZvcmUoYSxjKSk6KGI9YyxiLmFwcGVuZENoaWxkKGEpKSxjPWMuX3JlYWN0Um9vdENvbnRhaW5lcixudWxsIT09YyYmdm9pZCAwIT09Y3x8bnVsbCE9PWIub25jbGlja3x8KGIub25jbGljaz1CZikpO2Vsc2UgaWYoNCE9PWQmJihhPWEuY2hpbGQsbnVsbCE9PWEpKWZvcihXaihhLGIsYyksYT1hLnNpYmxpbmc7bnVsbCE9PWE7KVdqKGEsYixjKSxhPWEuc2libGluZ31cbmZ1bmN0aW9uIFhqKGEsYixjKXt2YXIgZD1hLnRhZztpZig1PT09ZHx8Nj09PWQpYT1hLnN0YXRlTm9kZSxiP2MuaW5zZXJ0QmVmb3JlKGEsYik6Yy5hcHBlbmRDaGlsZChhKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoWGooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylYaihhLGIsYyksYT1hLnNpYmxpbmd9dmFyIFg9bnVsbCxZaj0hMTtmdW5jdGlvbiBaaihhLGIsYyl7Zm9yKGM9Yy5jaGlsZDtudWxsIT09YzspYWsoYSxiLGMpLGM9Yy5zaWJsaW5nfVxuZnVuY3Rpb24gYWsoYSxiLGMpe2lmKGxjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbGMub25Db21taXRGaWJlclVubW91bnQpdHJ5e2xjLm9uQ29tbWl0RmliZXJVbm1vdW50KGtjLGMpfWNhdGNoKGgpe31zd2l0Y2goYy50YWcpe2Nhc2UgNTpVfHxNaihjLGIpO2Nhc2UgNjp2YXIgZD1YLGU9WWo7WD1udWxsO1pqKGEsYixjKTtYPWQ7WWo9ZTtudWxsIT09WCYmKFlqPyhhPVgsYz1jLnN0YXRlTm9kZSw4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk6YS5yZW1vdmVDaGlsZChjKSk6WC5yZW1vdmVDaGlsZChjLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgMTg6bnVsbCE9PVgmJihZaj8oYT1YLGM9Yy5zdGF0ZU5vZGUsOD09PWEubm9kZVR5cGU/S2YoYS5wYXJlbnROb2RlLGMpOjE9PT1hLm5vZGVUeXBlJiZLZihhLGMpLGJkKGEpKTpLZihYLGMuc3RhdGVOb2RlKSk7YnJlYWs7Y2FzZSA0OmQ9WDtlPVlqO1g9Yy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztZaj0hMDtcblpqKGEsYixjKTtYPWQ7WWo9ZTticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWYoIVUmJihkPWMudXBkYXRlUXVldWUsbnVsbCE9PWQmJihkPWQubGFzdEVmZmVjdCxudWxsIT09ZCkpKXtlPWQ9ZC5uZXh0O2Rve3ZhciBmPWUsZz1mLmRlc3Ryb3k7Zj1mLnRhZzt2b2lkIDAhPT1nJiYoMCE9PShmJjIpP05qKGMsYixnKTowIT09KGYmNCkmJk5qKGMsYixnKSk7ZT1lLm5leHR9d2hpbGUoZSE9PWQpfVpqKGEsYixjKTticmVhaztjYXNlIDE6aWYoIVUmJihNaihjLGIpLGQ9Yy5zdGF0ZU5vZGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50V2lsbFVubW91bnQpKXRyeXtkLnByb3BzPWMubWVtb2l6ZWRQcm9wcyxkLnN0YXRlPWMubWVtb2l6ZWRTdGF0ZSxkLmNvbXBvbmVudFdpbGxVbm1vdW50KCl9Y2F0Y2goaCl7VyhjLGIsaCl9WmooYSxiLGMpO2JyZWFrO2Nhc2UgMjE6WmooYSxiLGMpO2JyZWFrO2Nhc2UgMjI6Yy5tb2RlJjE/KFU9KGQ9VSl8fG51bGwhPT1cbmMubWVtb2l6ZWRTdGF0ZSxaaihhLGIsYyksVT1kKTpaaihhLGIsYyk7YnJlYWs7ZGVmYXVsdDpaaihhLGIsYyl9fWZ1bmN0aW9uIGJrKGEpe3ZhciBiPWEudXBkYXRlUXVldWU7aWYobnVsbCE9PWIpe2EudXBkYXRlUXVldWU9bnVsbDt2YXIgYz1hLnN0YXRlTm9kZTtudWxsPT09YyYmKGM9YS5zdGF0ZU5vZGU9bmV3IExqKTtiLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIGQ9Y2suYmluZChudWxsLGEsYik7Yy5oYXMoYil8fChjLmFkZChiKSxiLnRoZW4oZCxkKSl9KX19XG5mdW5jdGlvbiBkayhhLGIpe3ZhciBjPWIuZGVsZXRpb25zO2lmKG51bGwhPT1jKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO3RyeXt2YXIgZj1hLGc9YixoPWc7YTpmb3IoO251bGwhPT1oOyl7c3dpdGNoKGgudGFnKXtjYXNlIDU6WD1oLnN0YXRlTm9kZTtZaj0hMTticmVhayBhO2Nhc2UgMzpYPWguc3RhdGVOb2RlLmNvbnRhaW5lckluZm87WWo9ITA7YnJlYWsgYTtjYXNlIDQ6WD1oLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1lqPSEwO2JyZWFrIGF9aD1oLnJldHVybn1pZihudWxsPT09WCl0aHJvdyBFcnJvcihwKDE2MCkpO2FrKGYsZyxlKTtYPW51bGw7WWo9ITE7dmFyIGs9ZS5hbHRlcm5hdGU7bnVsbCE9PWsmJihrLnJldHVybj1udWxsKTtlLnJldHVybj1udWxsfWNhdGNoKGwpe1coZSxiLGwpfX1pZihiLnN1YnRyZWVGbGFncyYxMjg1NClmb3IoYj1iLmNoaWxkO251bGwhPT1iOyllayhiLGEpLGI9Yi5zaWJsaW5nfVxuZnVuY3Rpb24gZWsoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZSxkPWEuZmxhZ3M7c3dpdGNoKGEudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6ZGsoYixhKTtmayhhKTtpZihkJjQpe3RyeXtRaigzLGEsYS5yZXR1cm4pLFJqKDMsYSl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfXRyeXtRaig1LGEsYS5yZXR1cm4pfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19YnJlYWs7Y2FzZSAxOmRrKGIsYSk7ZmsoYSk7ZCY1MTImJm51bGwhPT1jJiZNaihjLGMucmV0dXJuKTticmVhaztjYXNlIDU6ZGsoYixhKTtmayhhKTtkJjUxMiYmbnVsbCE9PWMmJk1qKGMsYy5yZXR1cm4pO2lmKGEuZmxhZ3MmMzIpe3ZhciBlPWEuc3RhdGVOb2RlO3RyeXtvYihlLFwiXCIpfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19aWYoZCY0JiYoZT1hLnN0YXRlTm9kZSxudWxsIT1lKSl7dmFyIGY9YS5tZW1vaXplZFByb3BzLGc9bnVsbCE9PWM/Yy5tZW1vaXplZFByb3BzOmYsaD1hLnR5cGUsaz1hLnVwZGF0ZVF1ZXVlO1xuYS51cGRhdGVRdWV1ZT1udWxsO2lmKG51bGwhPT1rKXRyeXtcImlucHV0XCI9PT1oJiZcInJhZGlvXCI9PT1mLnR5cGUmJm51bGwhPWYubmFtZSYmYWIoZSxmKTt2YihoLGcpO3ZhciBsPXZiKGgsZik7Zm9yKGc9MDtnPGsubGVuZ3RoO2crPTIpe3ZhciBtPWtbZ10scT1rW2crMV07XCJzdHlsZVwiPT09bT9zYihlLHEpOlwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PW0/bmIoZSxxKTpcImNoaWxkcmVuXCI9PT1tP29iKGUscSk6dGEoZSxtLHEsbCl9c3dpdGNoKGgpe2Nhc2UgXCJpbnB1dFwiOmJiKGUsZik7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aWIoZSxmKTticmVhaztjYXNlIFwic2VsZWN0XCI6dmFyIHI9ZS5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlO2UuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWYubXVsdGlwbGU7dmFyIHk9Zi52YWx1ZTtudWxsIT15P2ZiKGUsISFmLm11bHRpcGxlLHksITEpOnIhPT0hIWYubXVsdGlwbGUmJihudWxsIT1mLmRlZmF1bHRWYWx1ZT9mYihlLCEhZi5tdWx0aXBsZSxcbmYuZGVmYXVsdFZhbHVlLCEwKTpmYihlLCEhZi5tdWx0aXBsZSxmLm11bHRpcGxlP1tdOlwiXCIsITEpKX1lW1BmXT1mfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19YnJlYWs7Y2FzZSA2OmRrKGIsYSk7ZmsoYSk7aWYoZCY0KXtpZihudWxsPT09YS5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IocCgxNjIpKTtlPWEuc3RhdGVOb2RlO2Y9YS5tZW1vaXplZFByb3BzO3RyeXtlLm5vZGVWYWx1ZT1mfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19YnJlYWs7Y2FzZSAzOmRrKGIsYSk7ZmsoYSk7aWYoZCY0JiZudWxsIT09YyYmYy5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl0cnl7YmQoYi5jb250YWluZXJJbmZvKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9YnJlYWs7Y2FzZSA0OmRrKGIsYSk7ZmsoYSk7YnJlYWs7Y2FzZSAxMzpkayhiLGEpO2ZrKGEpO2U9YS5jaGlsZDtlLmZsYWdzJjgxOTImJihmPW51bGwhPT1lLm1lbW9pemVkU3RhdGUsZS5zdGF0ZU5vZGUuaXNIaWRkZW49ZiwhZnx8XG5udWxsIT09ZS5hbHRlcm5hdGUmJm51bGwhPT1lLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlfHwoZ2s9QigpKSk7ZCY0JiZiayhhKTticmVhaztjYXNlIDIyOm09bnVsbCE9PWMmJm51bGwhPT1jLm1lbW9pemVkU3RhdGU7YS5tb2RlJjE/KFU9KGw9VSl8fG0sZGsoYixhKSxVPWwpOmRrKGIsYSk7ZmsoYSk7aWYoZCY4MTkyKXtsPW51bGwhPT1hLm1lbW9pemVkU3RhdGU7aWYoKGEuc3RhdGVOb2RlLmlzSGlkZGVuPWwpJiYhbSYmMCE9PShhLm1vZGUmMSkpZm9yKFY9YSxtPWEuY2hpbGQ7bnVsbCE9PW07KXtmb3IocT1WPW07bnVsbCE9PVY7KXtyPVY7eT1yLmNoaWxkO3N3aXRjaChyLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OlFqKDQscixyLnJldHVybik7YnJlYWs7Y2FzZSAxOk1qKHIsci5yZXR1cm4pO3ZhciBuPXIuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuLmNvbXBvbmVudFdpbGxVbm1vdW50KXtkPXI7Yz1yLnJldHVybjt0cnl7Yj1kLG4ucHJvcHM9XG5iLm1lbW9pemVkUHJvcHMsbi5zdGF0ZT1iLm1lbW9pemVkU3RhdGUsbi5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKHQpe1coZCxjLHQpfX1icmVhaztjYXNlIDU6TWoocixyLnJldHVybik7YnJlYWs7Y2FzZSAyMjppZihudWxsIT09ci5tZW1vaXplZFN0YXRlKXtoayhxKTtjb250aW51ZX19bnVsbCE9PXk/KHkucmV0dXJuPXIsVj15KTpoayhxKX1tPW0uc2libGluZ31hOmZvcihtPW51bGwscT1hOzspe2lmKDU9PT1xLnRhZyl7aWYobnVsbD09PW0pe209cTt0cnl7ZT1xLnN0YXRlTm9kZSxsPyhmPWUuc3R5bGUsXCJmdW5jdGlvblwiPT09dHlwZW9mIGYuc2V0UHJvcGVydHk/Zi5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTpmLmRpc3BsYXk9XCJub25lXCIpOihoPXEuc3RhdGVOb2RlLGs9cS5tZW1vaXplZFByb3BzLnN0eWxlLGc9dm9pZCAwIT09ayYmbnVsbCE9PWsmJmsuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP2suZGlzcGxheTpudWxsLGguc3R5bGUuZGlzcGxheT1cbnJiKFwiZGlzcGxheVwiLGcpKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fX1lbHNlIGlmKDY9PT1xLnRhZyl7aWYobnVsbD09PW0pdHJ5e3Euc3RhdGVOb2RlLm5vZGVWYWx1ZT1sP1wiXCI6cS5tZW1vaXplZFByb3BzfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX19ZWxzZSBpZigoMjIhPT1xLnRhZyYmMjMhPT1xLnRhZ3x8bnVsbD09PXEubWVtb2l6ZWRTdGF0ZXx8cT09PWEpJiZudWxsIT09cS5jaGlsZCl7cS5jaGlsZC5yZXR1cm49cTtxPXEuY2hpbGQ7Y29udGludWV9aWYocT09PWEpYnJlYWsgYTtmb3IoO251bGw9PT1xLnNpYmxpbmc7KXtpZihudWxsPT09cS5yZXR1cm58fHEucmV0dXJuPT09YSlicmVhayBhO209PT1xJiYobT1udWxsKTtxPXEucmV0dXJufW09PT1xJiYobT1udWxsKTtxLnNpYmxpbmcucmV0dXJuPXEucmV0dXJuO3E9cS5zaWJsaW5nfX1icmVhaztjYXNlIDE5OmRrKGIsYSk7ZmsoYSk7ZCY0JiZiayhhKTticmVhaztjYXNlIDIxOmJyZWFrO2RlZmF1bHQ6ZGsoYixcbmEpLGZrKGEpfX1mdW5jdGlvbiBmayhhKXt2YXIgYj1hLmZsYWdzO2lmKGImMil7dHJ5e2E6e2Zvcih2YXIgYz1hLnJldHVybjtudWxsIT09Yzspe2lmKFVqKGMpKXt2YXIgZD1jO2JyZWFrIGF9Yz1jLnJldHVybn10aHJvdyBFcnJvcihwKDE2MCkpO31zd2l0Y2goZC50YWcpe2Nhc2UgNTp2YXIgZT1kLnN0YXRlTm9kZTtkLmZsYWdzJjMyJiYob2IoZSxcIlwiKSxkLmZsYWdzJj0tMzMpO3ZhciBmPVZqKGEpO1hqKGEsZixlKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBnPWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8saD1WaihhKTtXaihhLGgsZyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MSkpO319Y2F0Y2goayl7VyhhLGEucmV0dXJuLGspfWEuZmxhZ3MmPS0zfWImNDA5NiYmKGEuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiBpayhhLGIsYyl7Vj1hO2prKGEsYixjKX1cbmZ1bmN0aW9uIGprKGEsYixjKXtmb3IodmFyIGQ9MCE9PShhLm1vZGUmMSk7bnVsbCE9PVY7KXt2YXIgZT1WLGY9ZS5jaGlsZDtpZigyMj09PWUudGFnJiZkKXt2YXIgZz1udWxsIT09ZS5tZW1vaXplZFN0YXRlfHxLajtpZighZyl7dmFyIGg9ZS5hbHRlcm5hdGUsaz1udWxsIT09aCYmbnVsbCE9PWgubWVtb2l6ZWRTdGF0ZXx8VTtoPUtqO3ZhciBsPVU7S2o9ZztpZigoVT1rKSYmIWwpZm9yKFY9ZTtudWxsIT09VjspZz1WLGs9Zy5jaGlsZCwyMj09PWcudGFnJiZudWxsIT09Zy5tZW1vaXplZFN0YXRlP2trKGUpOm51bGwhPT1rPyhrLnJldHVybj1nLFY9ayk6a2soZSk7Zm9yKDtudWxsIT09ZjspVj1mLGprKGYsYixjKSxmPWYuc2libGluZztWPWU7S2o9aDtVPWx9bGsoYSxiLGMpfWVsc2UgMCE9PShlLnN1YnRyZWVGbGFncyY4NzcyKSYmbnVsbCE9PWY/KGYucmV0dXJuPWUsVj1mKTpsayhhLGIsYyl9fVxuZnVuY3Rpb24gbGsoYSl7Zm9yKDtudWxsIT09Vjspe3ZhciBiPVY7aWYoMCE9PShiLmZsYWdzJjg3NzIpKXt2YXIgYz1iLmFsdGVybmF0ZTt0cnl7aWYoMCE9PShiLmZsYWdzJjg3NzIpKXN3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpVfHxSaig1LGIpO2JyZWFrO2Nhc2UgMTp2YXIgZD1iLnN0YXRlTm9kZTtpZihiLmZsYWdzJjQmJiFVKWlmKG51bGw9PT1jKWQuY29tcG9uZW50RGlkTW91bnQoKTtlbHNle3ZhciBlPWIuZWxlbWVudFR5cGU9PT1iLnR5cGU/Yy5tZW1vaXplZFByb3BzOkxnKGIudHlwZSxjLm1lbW9pemVkUHJvcHMpO2QuY29tcG9uZW50RGlkVXBkYXRlKGUsYy5tZW1vaXplZFN0YXRlLGQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpfXZhciBmPWIudXBkYXRlUXVldWU7bnVsbCE9PWYmJmloKGIsZixkKTticmVhaztjYXNlIDM6dmFyIGc9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09Zyl7Yz1udWxsO2lmKG51bGwhPT1iLmNoaWxkKXN3aXRjaChiLmNoaWxkLnRhZyl7Y2FzZSA1OmM9XG5iLmNoaWxkLnN0YXRlTm9kZTticmVhaztjYXNlIDE6Yz1iLmNoaWxkLnN0YXRlTm9kZX1paChiLGcsYyl9YnJlYWs7Y2FzZSA1OnZhciBoPWIuc3RhdGVOb2RlO2lmKG51bGw9PT1jJiZiLmZsYWdzJjQpe2M9aDt2YXIgaz1iLm1lbW9pemVkUHJvcHM7c3dpdGNoKGIudHlwZSl7Y2FzZSBcImJ1dHRvblwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJzZWxlY3RcIjpjYXNlIFwidGV4dGFyZWFcIjprLmF1dG9Gb2N1cyYmYy5mb2N1cygpO2JyZWFrO2Nhc2UgXCJpbWdcIjprLnNyYyYmKGMuc3JjPWsuc3JjKX19YnJlYWs7Y2FzZSA2OmJyZWFrO2Nhc2UgNDpicmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgMTM6aWYobnVsbD09PWIubWVtb2l6ZWRTdGF0ZSl7dmFyIGw9Yi5hbHRlcm5hdGU7aWYobnVsbCE9PWwpe3ZhciBtPWwubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09bSl7dmFyIHE9bS5kZWh5ZHJhdGVkO251bGwhPT1xJiZiZChxKX19fWJyZWFrO2Nhc2UgMTk6Y2FzZSAxNzpjYXNlIDIxOmNhc2UgMjI6Y2FzZSAyMzpjYXNlIDI1OmJyZWFrO1xuZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MykpO31VfHxiLmZsYWdzJjUxMiYmU2ooYil9Y2F0Y2gocil7VyhiLGIucmV0dXJuLHIpfX1pZihiPT09YSl7Vj1udWxsO2JyZWFrfWM9Yi5zaWJsaW5nO2lmKG51bGwhPT1jKXtjLnJldHVybj1iLnJldHVybjtWPWM7YnJlYWt9Vj1iLnJldHVybn19ZnVuY3Rpb24gaGsoYSl7Zm9yKDtudWxsIT09Vjspe3ZhciBiPVY7aWYoYj09PWEpe1Y9bnVsbDticmVha312YXIgYz1iLnNpYmxpbmc7aWYobnVsbCE9PWMpe2MucmV0dXJuPWIucmV0dXJuO1Y9YzticmVha31WPWIucmV0dXJufX1cbmZ1bmN0aW9uIGtrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO3RyeXtzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dmFyIGM9Yi5yZXR1cm47dHJ5e1JqKDQsYil9Y2F0Y2goayl7VyhiLGMsayl9YnJlYWs7Y2FzZSAxOnZhciBkPWIuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudERpZE1vdW50KXt2YXIgZT1iLnJldHVybjt0cnl7ZC5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKGspe1coYixlLGspfX12YXIgZj1iLnJldHVybjt0cnl7U2ooYil9Y2F0Y2goayl7VyhiLGYsayl9YnJlYWs7Y2FzZSA1OnZhciBnPWIucmV0dXJuO3RyeXtTaihiKX1jYXRjaChrKXtXKGIsZyxrKX19fWNhdGNoKGspe1coYixiLnJldHVybixrKX1pZihiPT09YSl7Vj1udWxsO2JyZWFrfXZhciBoPWIuc2libGluZztpZihudWxsIT09aCl7aC5yZXR1cm49Yi5yZXR1cm47Vj1oO2JyZWFrfVY9Yi5yZXR1cm59fVxudmFyIG1rPU1hdGguY2VpbCxuaz11YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLG9rPXVhLlJlYWN0Q3VycmVudE93bmVyLHBrPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLEs9MCxSPW51bGwsWT1udWxsLFo9MCxnaj0wLGZqPVVmKDApLFQ9MCxxaz1udWxsLGhoPTAscms9MCxzaz0wLHRrPW51bGwsdWs9bnVsbCxnaz0wLEhqPUluZmluaXR5LHZrPW51bGwsUGk9ITEsUWk9bnVsbCxTaT1udWxsLHdrPSExLHhrPW51bGwseWs9MCx6az0wLEFrPW51bGwsQms9LTEsQ2s9MDtmdW5jdGlvbiBMKCl7cmV0dXJuIDAhPT0oSyY2KT9CKCk6LTEhPT1Caz9CazpCaz1CKCl9XG5mdW5jdGlvbiBsaChhKXtpZigwPT09KGEubW9kZSYxKSlyZXR1cm4gMTtpZigwIT09KEsmMikmJjAhPT1aKXJldHVybiBaJi1aO2lmKG51bGwhPT1LZy50cmFuc2l0aW9uKXJldHVybiAwPT09Q2smJihDaz15YygpKSxDazthPUM7aWYoMCE9PWEpcmV0dXJuIGE7YT13aW5kb3cuZXZlbnQ7YT12b2lkIDA9PT1hPzE2OmpkKGEudHlwZSk7cmV0dXJuIGF9ZnVuY3Rpb24gbWgoYSxiLGMsZCl7aWYoNTA8emspdGhyb3cgems9MCxBaz1udWxsLEVycm9yKHAoMTg1KSk7QWMoYSxjLGQpO2lmKDA9PT0oSyYyKXx8YSE9PVIpYT09PVImJigwPT09KEsmMikmJihya3w9YyksND09PVQmJkRrKGEsWikpLEVrKGEsZCksMT09PWMmJjA9PT1LJiYwPT09KGIubW9kZSYxKSYmKEhqPUIoKSs1MDAsZmcmJmpnKCkpfVxuZnVuY3Rpb24gRWsoYSxiKXt2YXIgYz1hLmNhbGxiYWNrTm9kZTt3YyhhLGIpO3ZhciBkPXVjKGEsYT09PVI/WjowKTtpZigwPT09ZCludWxsIT09YyYmYmMoYyksYS5jYWxsYmFja05vZGU9bnVsbCxhLmNhbGxiYWNrUHJpb3JpdHk9MDtlbHNlIGlmKGI9ZCYtZCxhLmNhbGxiYWNrUHJpb3JpdHkhPT1iKXtudWxsIT1jJiZiYyhjKTtpZigxPT09YikwPT09YS50YWc/aWcoRmsuYmluZChudWxsLGEpKTpoZyhGay5iaW5kKG51bGwsYSkpLEpmKGZ1bmN0aW9uKCl7MD09PShLJjYpJiZqZygpfSksYz1udWxsO2Vsc2V7c3dpdGNoKERjKGQpKXtjYXNlIDE6Yz1mYzticmVhaztjYXNlIDQ6Yz1nYzticmVhaztjYXNlIDE2OmM9aGM7YnJlYWs7Y2FzZSA1MzY4NzA5MTI6Yz1qYzticmVhaztkZWZhdWx0OmM9aGN9Yz1HayhjLEhrLmJpbmQobnVsbCxhKSl9YS5jYWxsYmFja1ByaW9yaXR5PWI7YS5jYWxsYmFja05vZGU9Y319XG5mdW5jdGlvbiBIayhhLGIpe0JrPS0xO0NrPTA7aWYoMCE9PShLJjYpKXRocm93IEVycm9yKHAoMzI3KSk7dmFyIGM9YS5jYWxsYmFja05vZGU7aWYoSWsoKSYmYS5jYWxsYmFja05vZGUhPT1jKXJldHVybiBudWxsO3ZhciBkPXVjKGEsYT09PVI/WjowKTtpZigwPT09ZClyZXR1cm4gbnVsbDtpZigwIT09KGQmMzApfHwwIT09KGQmYS5leHBpcmVkTGFuZXMpfHxiKWI9SmsoYSxkKTtlbHNle2I9ZDt2YXIgZT1LO0t8PTI7dmFyIGY9S2soKTtpZihSIT09YXx8WiE9PWIpdms9bnVsbCxIaj1CKCkrNTAwLExrKGEsYik7ZG8gdHJ5e01rKCk7YnJlYWt9Y2F0Y2goaCl7TmsoYSxoKX13aGlsZSgxKTtRZygpO25rLmN1cnJlbnQ9ZjtLPWU7bnVsbCE9PVk/Yj0wOihSPW51bGwsWj0wLGI9VCl9aWYoMCE9PWIpezI9PT1iJiYoZT14YyhhKSwwIT09ZSYmKGQ9ZSxiPU9rKGEsZSkpKTtpZigxPT09Yil0aHJvdyBjPXFrLExrKGEsMCksRGsoYSxkKSxFayhhLEIoKSksYztpZig2PT09YilEayhhLGQpO1xuZWxzZXtlPWEuY3VycmVudC5hbHRlcm5hdGU7aWYoMD09PShkJjMwKSYmIVBrKGUpJiYoYj1KayhhLGQpLDI9PT1iJiYoZj14YyhhKSwwIT09ZiYmKGQ9ZixiPU9rKGEsZikpKSwxPT09YikpdGhyb3cgYz1xayxMayhhLDApLERrKGEsZCksRWsoYSxCKCkpLGM7YS5maW5pc2hlZFdvcms9ZTthLmZpbmlzaGVkTGFuZXM9ZDtzd2l0Y2goYil7Y2FzZSAwOmNhc2UgMTp0aHJvdyBFcnJvcihwKDM0NSkpO2Nhc2UgMjpRayhhLHVrLHZrKTticmVhaztjYXNlIDM6RGsoYSxkKTtpZigoZCYxMzAwMjM0MjQpPT09ZCYmKGI9Z2srNTAwLUIoKSwxMDxiKSl7aWYoMCE9PXVjKGEsMCkpYnJlYWs7ZT1hLnN1c3BlbmRlZExhbmVzO2lmKChlJmQpIT09ZCl7TCgpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmZTticmVha31hLnRpbWVvdXRIYW5kbGU9RmYoUWsuYmluZChudWxsLGEsdWssdmspLGIpO2JyZWFrfVFrKGEsdWssdmspO2JyZWFrO2Nhc2UgNDpEayhhLGQpO2lmKChkJjQxOTQyNDApPT09XG5kKWJyZWFrO2I9YS5ldmVudFRpbWVzO2ZvcihlPS0xOzA8ZDspe3ZhciBnPTMxLW9jKGQpO2Y9MTw8ZztnPWJbZ107Zz5lJiYoZT1nKTtkJj1+Zn1kPWU7ZD1CKCktZDtkPSgxMjA+ZD8xMjA6NDgwPmQ/NDgwOjEwODA+ZD8xMDgwOjE5MjA+ZD8xOTIwOjNFMz5kPzNFMzo0MzIwPmQ/NDMyMDoxOTYwKm1rKGQvMTk2MCkpLWQ7aWYoMTA8ZCl7YS50aW1lb3V0SGFuZGxlPUZmKFFrLmJpbmQobnVsbCxhLHVrLHZrKSxkKTticmVha31RayhhLHVrLHZrKTticmVhaztjYXNlIDU6UWsoYSx1ayx2ayk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDMyOSkpO319fUVrKGEsQigpKTtyZXR1cm4gYS5jYWxsYmFja05vZGU9PT1jP0hrLmJpbmQobnVsbCxhKTpudWxsfVxuZnVuY3Rpb24gT2soYSxiKXt2YXIgYz10azthLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJihMayhhLGIpLmZsYWdzfD0yNTYpO2E9SmsoYSxiKTsyIT09YSYmKGI9dWssdWs9YyxudWxsIT09YiYmR2ooYikpO3JldHVybiBhfWZ1bmN0aW9uIEdqKGEpe251bGw9PT11az91az1hOnVrLnB1c2guYXBwbHkodWssYSl9XG5mdW5jdGlvbiBQayhhKXtmb3IodmFyIGI9YTs7KXtpZihiLmZsYWdzJjE2Mzg0KXt2YXIgYz1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1jJiYoYz1jLnN0b3JlcyxudWxsIT09YykpZm9yKHZhciBkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBlPWNbZF0sZj1lLmdldFNuYXBzaG90O2U9ZS52YWx1ZTt0cnl7aWYoIUhlKGYoKSxlKSlyZXR1cm4hMX1jYXRjaChnKXtyZXR1cm4hMX19fWM9Yi5jaGlsZDtpZihiLnN1YnRyZWVGbGFncyYxNjM4NCYmbnVsbCE9PWMpYy5yZXR1cm49YixiPWM7ZWxzZXtpZihiPT09YSlicmVhaztmb3IoO251bGw9PT1iLnNpYmxpbmc7KXtpZihudWxsPT09Yi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4hMDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9fXJldHVybiEwfVxuZnVuY3Rpb24gRGsoYSxiKXtiJj1+c2s7YiY9fnJrO2Euc3VzcGVuZGVkTGFuZXN8PWI7YS5waW5nZWRMYW5lcyY9fmI7Zm9yKGE9YS5leHBpcmF0aW9uVGltZXM7MDxiOyl7dmFyIGM9MzEtb2MoYiksZD0xPDxjO2FbY109LTE7YiY9fmR9fWZ1bmN0aW9uIEZrKGEpe2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMyNykpO0lrKCk7dmFyIGI9dWMoYSwwKTtpZigwPT09KGImMSkpcmV0dXJuIEVrKGEsQigpKSxudWxsO3ZhciBjPUprKGEsYik7aWYoMCE9PWEudGFnJiYyPT09Yyl7dmFyIGQ9eGMoYSk7MCE9PWQmJihiPWQsYz1PayhhLGQpKX1pZigxPT09Yyl0aHJvdyBjPXFrLExrKGEsMCksRGsoYSxiKSxFayhhLEIoKSksYztpZig2PT09Yyl0aHJvdyBFcnJvcihwKDM0NSkpO2EuZmluaXNoZWRXb3JrPWEuY3VycmVudC5hbHRlcm5hdGU7YS5maW5pc2hlZExhbmVzPWI7UWsoYSx1ayx2ayk7RWsoYSxCKCkpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gUmsoYSxiKXt2YXIgYz1LO0t8PTE7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7Sz1jLDA9PT1LJiYoSGo9QigpKzUwMCxmZyYmamcoKSl9fWZ1bmN0aW9uIFNrKGEpe251bGwhPT14ayYmMD09PXhrLnRhZyYmMD09PShLJjYpJiZJaygpO3ZhciBiPUs7S3w9MTt2YXIgYz1way50cmFuc2l0aW9uLGQ9Qzt0cnl7aWYocGsudHJhbnNpdGlvbj1udWxsLEM9MSxhKXJldHVybiBhKCl9ZmluYWxseXtDPWQscGsudHJhbnNpdGlvbj1jLEs9YiwwPT09KEsmNikmJmpnKCl9fWZ1bmN0aW9uIElqKCl7Z2o9ZmouY3VycmVudDtFKGZqKX1cbmZ1bmN0aW9uIExrKGEsYil7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkTGFuZXM9MDt2YXIgYz1hLnRpbWVvdXRIYW5kbGU7LTEhPT1jJiYoYS50aW1lb3V0SGFuZGxlPS0xLEdmKGMpKTtpZihudWxsIT09WSlmb3IoYz1ZLnJldHVybjtudWxsIT09Yzspe3ZhciBkPWM7d2coZCk7c3dpdGNoKGQudGFnKXtjYXNlIDE6ZD1kLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7bnVsbCE9PWQmJnZvaWQgMCE9PWQmJiRmKCk7YnJlYWs7Y2FzZSAzOkpoKCk7RShXZik7RShIKTtPaCgpO2JyZWFrO2Nhc2UgNTpMaChkKTticmVhaztjYXNlIDQ6SmgoKTticmVhaztjYXNlIDEzOkUoTSk7YnJlYWs7Y2FzZSAxOTpFKE0pO2JyZWFrO2Nhc2UgMTA6UmcoZC50eXBlLl9jb250ZXh0KTticmVhaztjYXNlIDIyOmNhc2UgMjM6SWooKX1jPWMucmV0dXJufVI9YTtZPWE9d2goYS5jdXJyZW50LG51bGwpO1o9Z2o9YjtUPTA7cWs9bnVsbDtzaz1yaz1oaD0wO3VrPXRrPW51bGw7aWYobnVsbCE9PVdnKXtmb3IoYj1cbjA7YjxXZy5sZW5ndGg7YisrKWlmKGM9V2dbYl0sZD1jLmludGVybGVhdmVkLG51bGwhPT1kKXtjLmludGVybGVhdmVkPW51bGw7dmFyIGU9ZC5uZXh0LGY9Yy5wZW5kaW5nO2lmKG51bGwhPT1mKXt2YXIgZz1mLm5leHQ7Zi5uZXh0PWU7ZC5uZXh0PWd9Yy5wZW5kaW5nPWR9V2c9bnVsbH1yZXR1cm4gYX1cbmZ1bmN0aW9uIE5rKGEsYil7ZG97dmFyIGM9WTt0cnl7UWcoKTtQaC5jdXJyZW50PWFpO2lmKFNoKXtmb3IodmFyIGQ9Ti5tZW1vaXplZFN0YXRlO251bGwhPT1kOyl7dmFyIGU9ZC5xdWV1ZTtudWxsIT09ZSYmKGUucGVuZGluZz1udWxsKTtkPWQubmV4dH1TaD0hMX1SaD0wO1A9Tz1OPW51bGw7VGg9ITE7VWg9MDtvay5jdXJyZW50PW51bGw7aWYobnVsbD09PWN8fG51bGw9PT1jLnJldHVybil7VD0xO3FrPWI7WT1udWxsO2JyZWFrfWE6e3ZhciBmPWEsZz1jLnJldHVybixoPWMsaz1iO2I9WjtoLmZsYWdzfD0zMjc2ODtpZihudWxsIT09ayYmXCJvYmplY3RcIj09PXR5cGVvZiBrJiZcImZ1bmN0aW9uXCI9PT10eXBlb2Ygay50aGVuKXt2YXIgbD1rLG09aCxxPW0udGFnO2lmKDA9PT0obS5tb2RlJjEpJiYoMD09PXF8fDExPT09cXx8MTU9PT1xKSl7dmFyIHI9bS5hbHRlcm5hdGU7cj8obS51cGRhdGVRdWV1ZT1yLnVwZGF0ZVF1ZXVlLG0ubWVtb2l6ZWRTdGF0ZT1yLm1lbW9pemVkU3RhdGUsXG5tLmxhbmVzPXIubGFuZXMpOihtLnVwZGF0ZVF1ZXVlPW51bGwsbS5tZW1vaXplZFN0YXRlPW51bGwpfXZhciB5PVZpKGcpO2lmKG51bGwhPT15KXt5LmZsYWdzJj0tMjU3O1dpKHksZyxoLGYsYik7eS5tb2RlJjEmJlRpKGYsbCxiKTtiPXk7az1sO3ZhciBuPWIudXBkYXRlUXVldWU7aWYobnVsbD09PW4pe3ZhciB0PW5ldyBTZXQ7dC5hZGQoayk7Yi51cGRhdGVRdWV1ZT10fWVsc2Ugbi5hZGQoayk7YnJlYWsgYX1lbHNle2lmKDA9PT0oYiYxKSl7VGkoZixsLGIpO3VqKCk7YnJlYWsgYX1rPUVycm9yKHAoNDI2KSl9fWVsc2UgaWYoSSYmaC5tb2RlJjEpe3ZhciBKPVZpKGcpO2lmKG51bGwhPT1KKXswPT09KEouZmxhZ3MmNjU1MzYpJiYoSi5mbGFnc3w9MjU2KTtXaShKLGcsaCxmLGIpO0pnKEtpKGssaCkpO2JyZWFrIGF9fWY9az1LaShrLGgpOzQhPT1UJiYoVD0yKTtudWxsPT09dGs/dGs9W2ZdOnRrLnB1c2goZik7Zj1nO2Rve3N3aXRjaChmLnRhZyl7Y2FzZSAzOmYuZmxhZ3N8PTY1NTM2O1xuYiY9LWI7Zi5sYW5lc3w9Yjt2YXIgeD1PaShmLGssYik7ZmgoZix4KTticmVhayBhO2Nhc2UgMTpoPWs7dmFyIHc9Zi50eXBlLHU9Zi5zdGF0ZU5vZGU7aWYoMD09PShmLmZsYWdzJjEyOCkmJihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygdy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT11JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgdS5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1TaXx8IVNpLmhhcyh1KSkpKXtmLmZsYWdzfD02NTUzNjtiJj0tYjtmLmxhbmVzfD1iO3ZhciBGPVJpKGYsaCxiKTtmaChmLEYpO2JyZWFrIGF9fWY9Zi5yZXR1cm59d2hpbGUobnVsbCE9PWYpfVRrKGMpfWNhdGNoKG5hKXtiPW5hO1k9PT1jJiZudWxsIT09YyYmKFk9Yz1jLnJldHVybik7Y29udGludWV9YnJlYWt9d2hpbGUoMSl9ZnVuY3Rpb24gS2soKXt2YXIgYT1uay5jdXJyZW50O25rLmN1cnJlbnQ9YWk7cmV0dXJuIG51bGw9PT1hP2FpOmF9XG5mdW5jdGlvbiB1aigpe2lmKDA9PT1UfHwzPT09VHx8Mj09PVQpVD00O251bGw9PT1SfHwwPT09KGhoJjI2ODQzNTQ1NSkmJjA9PT0ocmsmMjY4NDM1NDU1KXx8RGsoUixaKX1mdW5jdGlvbiBKayhhLGIpe3ZhciBjPUs7S3w9Mjt2YXIgZD1LaygpO2lmKFIhPT1hfHxaIT09Yil2az1udWxsLExrKGEsYik7ZG8gdHJ5e1VrKCk7YnJlYWt9Y2F0Y2goZSl7TmsoYSxlKX13aGlsZSgxKTtRZygpO0s9Yztuay5jdXJyZW50PWQ7aWYobnVsbCE9PVkpdGhyb3cgRXJyb3IocCgyNjEpKTtSPW51bGw7Wj0wO3JldHVybiBUfWZ1bmN0aW9uIFVrKCl7Zm9yKDtudWxsIT09WTspVmsoWSl9ZnVuY3Rpb24gTWsoKXtmb3IoO251bGwhPT1ZJiYhY2MoKTspVmsoWSl9ZnVuY3Rpb24gVmsoYSl7dmFyIGI9V2soYS5hbHRlcm5hdGUsYSxnaik7YS5tZW1vaXplZFByb3BzPWEucGVuZGluZ1Byb3BzO251bGw9PT1iP1RrKGEpOlk9Yjtvay5jdXJyZW50PW51bGx9XG5mdW5jdGlvbiBUayhhKXt2YXIgYj1hO2Rve3ZhciBjPWIuYWx0ZXJuYXRlO2E9Yi5yZXR1cm47aWYoMD09PShiLmZsYWdzJjMyNzY4KSl7aWYoYz1GaihjLGIsZ2opLG51bGwhPT1jKXtZPWM7cmV0dXJufX1lbHNle2M9SmooYyxiKTtpZihudWxsIT09Yyl7Yy5mbGFncyY9MzI3Njc7WT1jO3JldHVybn1pZihudWxsIT09YSlhLmZsYWdzfD0zMjc2OCxhLnN1YnRyZWVGbGFncz0wLGEuZGVsZXRpb25zPW51bGw7ZWxzZXtUPTY7WT1udWxsO3JldHVybn19Yj1iLnNpYmxpbmc7aWYobnVsbCE9PWIpe1k9YjtyZXR1cm59WT1iPWF9d2hpbGUobnVsbCE9PWIpOzA9PT1UJiYoVD01KX1mdW5jdGlvbiBRayhhLGIsYyl7dmFyIGQ9QyxlPXBrLnRyYW5zaXRpb247dHJ5e3BrLnRyYW5zaXRpb249bnVsbCxDPTEsWGsoYSxiLGMsZCl9ZmluYWxseXtway50cmFuc2l0aW9uPWUsQz1kfXJldHVybiBudWxsfVxuZnVuY3Rpb24gWGsoYSxiLGMsZCl7ZG8gSWsoKTt3aGlsZShudWxsIT09eGspO2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMyNykpO2M9YS5maW5pc2hlZFdvcms7dmFyIGU9YS5maW5pc2hlZExhbmVzO2lmKG51bGw9PT1jKXJldHVybiBudWxsO2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7aWYoYz09PWEuY3VycmVudCl0aHJvdyBFcnJvcihwKDE3NykpO2EuY2FsbGJhY2tOb2RlPW51bGw7YS5jYWxsYmFja1ByaW9yaXR5PTA7dmFyIGY9Yy5sYW5lc3xjLmNoaWxkTGFuZXM7QmMoYSxmKTthPT09UiYmKFk9Uj1udWxsLFo9MCk7MD09PShjLnN1YnRyZWVGbGFncyYyMDY0KSYmMD09PShjLmZsYWdzJjIwNjQpfHx3a3x8KHdrPSEwLEdrKGhjLGZ1bmN0aW9uKCl7SWsoKTtyZXR1cm4gbnVsbH0pKTtmPTAhPT0oYy5mbGFncyYxNTk5MCk7aWYoMCE9PShjLnN1YnRyZWVGbGFncyYxNTk5MCl8fGYpe2Y9cGsudHJhbnNpdGlvbjtway50cmFuc2l0aW9uPW51bGw7XG52YXIgZz1DO0M9MTt2YXIgaD1LO0t8PTQ7b2suY3VycmVudD1udWxsO1BqKGEsYyk7ZWsoYyxhKTtPZShEZik7ZGQ9ISFDZjtEZj1DZj1udWxsO2EuY3VycmVudD1jO2lrKGMsYSxlKTtkYygpO0s9aDtDPWc7cGsudHJhbnNpdGlvbj1mfWVsc2UgYS5jdXJyZW50PWM7d2smJih3az0hMSx4az1hLHlrPWUpO2Y9YS5wZW5kaW5nTGFuZXM7MD09PWYmJihTaT1udWxsKTttYyhjLnN0YXRlTm9kZSxkKTtFayhhLEIoKSk7aWYobnVsbCE9PWIpZm9yKGQ9YS5vblJlY292ZXJhYmxlRXJyb3IsYz0wO2M8Yi5sZW5ndGg7YysrKWU9YltjXSxkKGUudmFsdWUse2NvbXBvbmVudFN0YWNrOmUuc3RhY2ssZGlnZXN0OmUuZGlnZXN0fSk7aWYoUGkpdGhyb3cgUGk9ITEsYT1RaSxRaT1udWxsLGE7MCE9PSh5ayYxKSYmMCE9PWEudGFnJiZJaygpO2Y9YS5wZW5kaW5nTGFuZXM7MCE9PShmJjEpP2E9PT1Baz96aysrOih6az0wLEFrPWEpOnprPTA7amcoKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIElrKCl7aWYobnVsbCE9PXhrKXt2YXIgYT1EYyh5ayksYj1way50cmFuc2l0aW9uLGM9Qzt0cnl7cGsudHJhbnNpdGlvbj1udWxsO0M9MTY+YT8xNjphO2lmKG51bGw9PT14ayl2YXIgZD0hMTtlbHNle2E9eGs7eGs9bnVsbDt5az0wO2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMzMSkpO3ZhciBlPUs7S3w9NDtmb3IoVj1hLmN1cnJlbnQ7bnVsbCE9PVY7KXt2YXIgZj1WLGc9Zi5jaGlsZDtpZigwIT09KFYuZmxhZ3MmMTYpKXt2YXIgaD1mLmRlbGV0aW9ucztpZihudWxsIT09aCl7Zm9yKHZhciBrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBsPWhba107Zm9yKFY9bDtudWxsIT09Vjspe3ZhciBtPVY7c3dpdGNoKG0udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlFqKDgsbSxmKX12YXIgcT1tLmNoaWxkO2lmKG51bGwhPT1xKXEucmV0dXJuPW0sVj1xO2Vsc2UgZm9yKDtudWxsIT09Vjspe209Vjt2YXIgcj1tLnNpYmxpbmcseT1tLnJldHVybjtUaihtKTtpZihtPT09XG5sKXtWPW51bGw7YnJlYWt9aWYobnVsbCE9PXIpe3IucmV0dXJuPXk7Vj1yO2JyZWFrfVY9eX19fXZhciBuPWYuYWx0ZXJuYXRlO2lmKG51bGwhPT1uKXt2YXIgdD1uLmNoaWxkO2lmKG51bGwhPT10KXtuLmNoaWxkPW51bGw7ZG97dmFyIEo9dC5zaWJsaW5nO3Quc2libGluZz1udWxsO3Q9Sn13aGlsZShudWxsIT09dCl9fVY9Zn19aWYoMCE9PShmLnN1YnRyZWVGbGFncyYyMDY0KSYmbnVsbCE9PWcpZy5yZXR1cm49ZixWPWc7ZWxzZSBiOmZvcig7bnVsbCE9PVY7KXtmPVY7aWYoMCE9PShmLmZsYWdzJjIwNDgpKXN3aXRjaChmLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpRaig5LGYsZi5yZXR1cm4pfXZhciB4PWYuc2libGluZztpZihudWxsIT09eCl7eC5yZXR1cm49Zi5yZXR1cm47Vj14O2JyZWFrIGJ9Vj1mLnJldHVybn19dmFyIHc9YS5jdXJyZW50O2ZvcihWPXc7bnVsbCE9PVY7KXtnPVY7dmFyIHU9Zy5jaGlsZDtpZigwIT09KGcuc3VidHJlZUZsYWdzJjIwNjQpJiZudWxsIT09XG51KXUucmV0dXJuPWcsVj11O2Vsc2UgYjpmb3IoZz13O251bGwhPT1WOyl7aD1WO2lmKDAhPT0oaC5mbGFncyYyMDQ4KSl0cnl7c3dpdGNoKGgudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OlJqKDksaCl9fWNhdGNoKG5hKXtXKGgsaC5yZXR1cm4sbmEpfWlmKGg9PT1nKXtWPW51bGw7YnJlYWsgYn12YXIgRj1oLnNpYmxpbmc7aWYobnVsbCE9PUYpe0YucmV0dXJuPWgucmV0dXJuO1Y9RjticmVhayBifVY9aC5yZXR1cm59fUs9ZTtqZygpO2lmKGxjJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgbGMub25Qb3N0Q29tbWl0RmliZXJSb290KXRyeXtsYy5vblBvc3RDb21taXRGaWJlclJvb3Qoa2MsYSl9Y2F0Y2gobmEpe31kPSEwfXJldHVybiBkfWZpbmFsbHl7Qz1jLHBrLnRyYW5zaXRpb249Yn19cmV0dXJuITF9ZnVuY3Rpb24gWWsoYSxiLGMpe2I9S2koYyxiKTtiPU9pKGEsYiwxKTthPWRoKGEsYiwxKTtiPUwoKTtudWxsIT09YSYmKEFjKGEsMSxiKSxFayhhLGIpKX1cbmZ1bmN0aW9uIFcoYSxiLGMpe2lmKDM9PT1hLnRhZylZayhhLGEsYyk7ZWxzZSBmb3IoO251bGwhPT1iOyl7aWYoMz09PWIudGFnKXtZayhiLGEsYyk7YnJlYWt9ZWxzZSBpZigxPT09Yi50YWcpe3ZhciBkPWIuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT1TaXx8IVNpLmhhcyhkKSkpe2E9S2koYyxhKTthPVJpKGIsYSwxKTtiPWRoKGIsYSwxKTthPUwoKTtudWxsIT09YiYmKEFjKGIsMSxhKSxFayhiLGEpKTticmVha319Yj1iLnJldHVybn19XG5mdW5jdGlvbiBVaShhLGIsYyl7dmFyIGQ9YS5waW5nQ2FjaGU7bnVsbCE9PWQmJmQuZGVsZXRlKGIpO2I9TCgpO2EucGluZ2VkTGFuZXN8PWEuc3VzcGVuZGVkTGFuZXMmYztSPT09YSYmKFomYyk9PT1jJiYoND09PVR8fDM9PT1UJiYoWiYxMzAwMjM0MjQpPT09WiYmNTAwPkIoKS1naz9MayhhLDApOnNrfD1jKTtFayhhLGIpfWZ1bmN0aW9uIFprKGEsYil7MD09PWImJigwPT09KGEubW9kZSYxKT9iPTE6KGI9c2Msc2M8PD0xLDA9PT0oc2MmMTMwMDIzNDI0KSYmKHNjPTQxOTQzMDQpKSk7dmFyIGM9TCgpO2E9WmcoYSxiKTtudWxsIT09YSYmKEFjKGEsYixjKSxFayhhLGMpKX1mdW5jdGlvbiB2aihhKXt2YXIgYj1hLm1lbW9pemVkU3RhdGUsYz0wO251bGwhPT1iJiYoYz1iLnJldHJ5TGFuZSk7WmsoYSxjKX1cbmZ1bmN0aW9uIGNrKGEsYil7dmFyIGM9MDtzd2l0Y2goYS50YWcpe2Nhc2UgMTM6dmFyIGQ9YS5zdGF0ZU5vZGU7dmFyIGU9YS5tZW1vaXplZFN0YXRlO251bGwhPT1lJiYoYz1lLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpkPWEuc3RhdGVOb2RlO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgzMTQpKTt9bnVsbCE9PWQmJmQuZGVsZXRlKGIpO1prKGEsYyl9dmFyIFdrO1xuV2s9ZnVuY3Rpb24oYSxiLGMpe2lmKG51bGwhPT1hKWlmKGEubWVtb2l6ZWRQcm9wcyE9PWIucGVuZGluZ1Byb3BzfHxXZi5jdXJyZW50KVVnPSEwO2Vsc2V7aWYoMD09PShhLmxhbmVzJmMpJiYwPT09KGIuZmxhZ3MmMTI4KSlyZXR1cm4gVWc9ITEsemooYSxiLGMpO1VnPTAhPT0oYS5mbGFncyYxMzEwNzIpPyEwOiExfWVsc2UgVWc9ITEsSSYmMCE9PShiLmZsYWdzJjEwNDg1NzYpJiZ1ZyhiLG5nLGIuaW5kZXgpO2IubGFuZXM9MDtzd2l0Y2goYi50YWcpe2Nhc2UgMjp2YXIgZD1iLnR5cGU7amooYSxiKTthPWIucGVuZGluZ1Byb3BzO3ZhciBlPVlmKGIsSC5jdXJyZW50KTtUZyhiLGMpO2U9WGgobnVsbCxiLGQsYSxlLGMpO3ZhciBmPWJpKCk7Yi5mbGFnc3w9MTtcIm9iamVjdFwiPT09dHlwZW9mIGUmJm51bGwhPT1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5yZW5kZXImJnZvaWQgMD09PWUuJCR0eXBlb2Y/KGIudGFnPTEsYi5tZW1vaXplZFN0YXRlPW51bGwsYi51cGRhdGVRdWV1ZT1cbm51bGwsWmYoZCk/KGY9ITAsY2coYikpOmY9ITEsYi5tZW1vaXplZFN0YXRlPW51bGwhPT1lLnN0YXRlJiZ2b2lkIDAhPT1lLnN0YXRlP2Uuc3RhdGU6bnVsbCxhaChiKSxlLnVwZGF0ZXI9bmgsYi5zdGF0ZU5vZGU9ZSxlLl9yZWFjdEludGVybmFscz1iLHJoKGIsZCxhLGMpLGI9a2oobnVsbCxiLGQsITAsZixjKSk6KGIudGFnPTAsSSYmZiYmdmcoYiksWWkobnVsbCxiLGUsYyksYj1iLmNoaWxkKTtyZXR1cm4gYjtjYXNlIDE2OmQ9Yi5lbGVtZW50VHlwZTthOntqaihhLGIpO2E9Yi5wZW5kaW5nUHJvcHM7ZT1kLl9pbml0O2Q9ZShkLl9wYXlsb2FkKTtiLnR5cGU9ZDtlPWIudGFnPSRrKGQpO2E9TGcoZCxhKTtzd2l0Y2goZSl7Y2FzZSAwOmI9ZGoobnVsbCxiLGQsYSxjKTticmVhayBhO2Nhc2UgMTpiPWlqKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDExOmI9WmkobnVsbCxiLGQsYSxjKTticmVhayBhO2Nhc2UgMTQ6Yj1haihudWxsLGIsZCxMZyhkLnR5cGUsYSksYyk7YnJlYWsgYX10aHJvdyBFcnJvcihwKDMwNixcbmQsXCJcIikpO31yZXR1cm4gYjtjYXNlIDA6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkxnKGQsZSksZGooYSxiLGQsZSxjKTtjYXNlIDE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkxnKGQsZSksaWooYSxiLGQsZSxjKTtjYXNlIDM6YTp7bGooYik7aWYobnVsbD09PWEpdGhyb3cgRXJyb3IocCgzODcpKTtkPWIucGVuZGluZ1Byb3BzO2Y9Yi5tZW1vaXplZFN0YXRlO2U9Zi5lbGVtZW50O2JoKGEsYik7Z2goYixkLG51bGwsYyk7dmFyIGc9Yi5tZW1vaXplZFN0YXRlO2Q9Zy5lbGVtZW50O2lmKGYuaXNEZWh5ZHJhdGVkKWlmKGY9e2VsZW1lbnQ6ZCxpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6Zy5jYWNoZSxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOmcucGVuZGluZ1N1c3BlbnNlQm91bmRhcmllcyx0cmFuc2l0aW9uczpnLnRyYW5zaXRpb25zfSxiLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1cbmYsYi5tZW1vaXplZFN0YXRlPWYsYi5mbGFncyYyNTYpe2U9S2koRXJyb3IocCg0MjMpKSxiKTtiPW1qKGEsYixkLGMsZSk7YnJlYWsgYX1lbHNlIGlmKGQhPT1lKXtlPUtpKEVycm9yKHAoNDI0KSksYik7Yj1taihhLGIsZCxjLGUpO2JyZWFrIGF9ZWxzZSBmb3IoeWc9TGYoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSx4Zz1iLEk9ITAsemc9bnVsbCxjPUNoKGIsbnVsbCxkLGMpLGIuY2hpbGQ9YztjOyljLmZsYWdzPWMuZmxhZ3MmLTN8NDA5NixjPWMuc2libGluZztlbHNle0lnKCk7aWYoZD09PWUpe2I9JGkoYSxiLGMpO2JyZWFrIGF9WWkoYSxiLGQsYyl9Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgNTpyZXR1cm4gS2goYiksbnVsbD09PWEmJkVnKGIpLGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZj1udWxsIT09YT9hLm1lbW9pemVkUHJvcHM6bnVsbCxnPWUuY2hpbGRyZW4sRWYoZCxlKT9nPW51bGw6bnVsbCE9PWYmJkVmKGQsZikmJihiLmZsYWdzfD0zMiksXG5oaihhLGIpLFlpKGEsYixnLGMpLGIuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09YSYmRWcoYiksbnVsbDtjYXNlIDEzOnJldHVybiBwaihhLGIsYyk7Y2FzZSA0OnJldHVybiBJaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLGQ9Yi5wZW5kaW5nUHJvcHMsbnVsbD09PWE/Yi5jaGlsZD1CaChiLG51bGwsZCxjKTpZaShhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkxnKGQsZSksWmkoYSxiLGQsZSxjKTtjYXNlIDc6cmV0dXJuIFlpKGEsYixiLnBlbmRpbmdQcm9wcyxjKSxiLmNoaWxkO2Nhc2UgODpyZXR1cm4gWWkoYSxiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGMpLGIuY2hpbGQ7Y2FzZSAxMjpyZXR1cm4gWWkoYSxiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGMpLGIuY2hpbGQ7Y2FzZSAxMDphOntkPWIudHlwZS5fY29udGV4dDtlPWIucGVuZGluZ1Byb3BzO2Y9Yi5tZW1vaXplZFByb3BzO1xuZz1lLnZhbHVlO0coTWcsZC5fY3VycmVudFZhbHVlKTtkLl9jdXJyZW50VmFsdWU9ZztpZihudWxsIT09ZilpZihIZShmLnZhbHVlLGcpKXtpZihmLmNoaWxkcmVuPT09ZS5jaGlsZHJlbiYmIVdmLmN1cnJlbnQpe2I9JGkoYSxiLGMpO2JyZWFrIGF9fWVsc2UgZm9yKGY9Yi5jaGlsZCxudWxsIT09ZiYmKGYucmV0dXJuPWIpO251bGwhPT1mOyl7dmFyIGg9Zi5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWgpe2c9Zi5jaGlsZDtmb3IodmFyIGs9aC5maXJzdENvbnRleHQ7bnVsbCE9PWs7KXtpZihrLmNvbnRleHQ9PT1kKXtpZigxPT09Zi50YWcpe2s9Y2goLTEsYyYtYyk7ay50YWc9Mjt2YXIgbD1mLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1sKXtsPWwuc2hhcmVkO3ZhciBtPWwucGVuZGluZztudWxsPT09bT9rLm5leHQ9azooay5uZXh0PW0ubmV4dCxtLm5leHQ9ayk7bC5wZW5kaW5nPWt9fWYubGFuZXN8PWM7az1mLmFsdGVybmF0ZTtudWxsIT09ayYmKGsubGFuZXN8PWMpO1NnKGYucmV0dXJuLFxuYyxiKTtoLmxhbmVzfD1jO2JyZWFrfWs9ay5uZXh0fX1lbHNlIGlmKDEwPT09Zi50YWcpZz1mLnR5cGU9PT1iLnR5cGU/bnVsbDpmLmNoaWxkO2Vsc2UgaWYoMTg9PT1mLnRhZyl7Zz1mLnJldHVybjtpZihudWxsPT09Zyl0aHJvdyBFcnJvcihwKDM0MSkpO2cubGFuZXN8PWM7aD1nLmFsdGVybmF0ZTtudWxsIT09aCYmKGgubGFuZXN8PWMpO1NnKGcsYyxiKTtnPWYuc2libGluZ31lbHNlIGc9Zi5jaGlsZDtpZihudWxsIT09ZylnLnJldHVybj1mO2Vsc2UgZm9yKGc9ZjtudWxsIT09Zzspe2lmKGc9PT1iKXtnPW51bGw7YnJlYWt9Zj1nLnNpYmxpbmc7aWYobnVsbCE9PWYpe2YucmV0dXJuPWcucmV0dXJuO2c9ZjticmVha31nPWcucmV0dXJufWY9Z31ZaShhLGIsZS5jaGlsZHJlbixjKTtiPWIuY2hpbGR9cmV0dXJuIGI7Y2FzZSA5OnJldHVybiBlPWIudHlwZSxkPWIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFRnKGIsYyksZT1WZyhlKSxkPWQoZSksYi5mbGFnc3w9MSxZaShhLGIsZCxjKSxcbmIuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gZD1iLnR5cGUsZT1MZyhkLGIucGVuZGluZ1Byb3BzKSxlPUxnKGQudHlwZSxlKSxhaihhLGIsZCxlLGMpO2Nhc2UgMTU6cmV0dXJuIGNqKGEsYixiLnR5cGUsYi5wZW5kaW5nUHJvcHMsYyk7Y2FzZSAxNzpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6TGcoZCxlKSxqaihhLGIpLGIudGFnPTEsWmYoZCk/KGE9ITAsY2coYikpOmE9ITEsVGcoYixjKSxwaChiLGQsZSkscmgoYixkLGUsYyksa2oobnVsbCxiLGQsITAsYSxjKTtjYXNlIDE5OnJldHVybiB5aihhLGIsYyk7Y2FzZSAyMjpyZXR1cm4gZWooYSxiLGMpfXRocm93IEVycm9yKHAoMTU2LGIudGFnKSk7fTtmdW5jdGlvbiBHayhhLGIpe3JldHVybiBhYyhhLGIpfVxuZnVuY3Rpb24gYWwoYSxiLGMsZCl7dGhpcy50YWc9YTt0aGlzLmtleT1jO3RoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGw7dGhpcy5pbmRleD0wO3RoaXMucmVmPW51bGw7dGhpcy5wZW5kaW5nUHJvcHM9Yjt0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbDt0aGlzLm1vZGU9ZDt0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTA7dGhpcy5kZWxldGlvbnM9bnVsbDt0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wO3RoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gQmcoYSxiLGMsZCl7cmV0dXJuIG5ldyBhbChhLGIsYyxkKX1mdW5jdGlvbiBiaihhKXthPWEucHJvdG90eXBlO3JldHVybiEoIWF8fCFhLmlzUmVhY3RDb21wb25lbnQpfVxuZnVuY3Rpb24gJGsoYSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpcmV0dXJuIGJqKGEpPzE6MDtpZih2b2lkIDAhPT1hJiZudWxsIT09YSl7YT1hLiQkdHlwZW9mO2lmKGE9PT1EYSlyZXR1cm4gMTE7aWYoYT09PUdhKXJldHVybiAxNH1yZXR1cm4gMn1cbmZ1bmN0aW9uIHdoKGEsYil7dmFyIGM9YS5hbHRlcm5hdGU7bnVsbD09PWM/KGM9QmcoYS50YWcsYixhLmtleSxhLm1vZGUpLGMuZWxlbWVudFR5cGU9YS5lbGVtZW50VHlwZSxjLnR5cGU9YS50eXBlLGMuc3RhdGVOb2RlPWEuc3RhdGVOb2RlLGMuYWx0ZXJuYXRlPWEsYS5hbHRlcm5hdGU9Yyk6KGMucGVuZGluZ1Byb3BzPWIsYy50eXBlPWEudHlwZSxjLmZsYWdzPTAsYy5zdWJ0cmVlRmxhZ3M9MCxjLmRlbGV0aW9ucz1udWxsKTtjLmZsYWdzPWEuZmxhZ3MmMTQ2ODAwNjQ7Yy5jaGlsZExhbmVzPWEuY2hpbGRMYW5lcztjLmxhbmVzPWEubGFuZXM7Yy5jaGlsZD1hLmNoaWxkO2MubWVtb2l6ZWRQcm9wcz1hLm1lbW9pemVkUHJvcHM7Yy5tZW1vaXplZFN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtjLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWU7Yj1hLmRlcGVuZGVuY2llcztjLmRlcGVuZGVuY2llcz1udWxsPT09Yj9udWxsOntsYW5lczpiLmxhbmVzLGZpcnN0Q29udGV4dDpiLmZpcnN0Q29udGV4dH07XG5jLnNpYmxpbmc9YS5zaWJsaW5nO2MuaW5kZXg9YS5pbmRleDtjLnJlZj1hLnJlZjtyZXR1cm4gY31cbmZ1bmN0aW9uIHloKGEsYixjLGQsZSxmKXt2YXIgZz0yO2Q9YTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSliaihhKSYmKGc9MSk7ZWxzZSBpZihcInN0cmluZ1wiPT09dHlwZW9mIGEpZz01O2Vsc2UgYTpzd2l0Y2goYSl7Y2FzZSB5YTpyZXR1cm4gQWgoYy5jaGlsZHJlbixlLGYsYik7Y2FzZSB6YTpnPTg7ZXw9ODticmVhaztjYXNlIEFhOnJldHVybiBhPUJnKDEyLGMsYixlfDIpLGEuZWxlbWVudFR5cGU9QWEsYS5sYW5lcz1mLGE7Y2FzZSBFYTpyZXR1cm4gYT1CZygxMyxjLGIsZSksYS5lbGVtZW50VHlwZT1FYSxhLmxhbmVzPWYsYTtjYXNlIEZhOnJldHVybiBhPUJnKDE5LGMsYixlKSxhLmVsZW1lbnRUeXBlPUZhLGEubGFuZXM9ZixhO2Nhc2UgSWE6cmV0dXJuIHFqKGMsZSxmLGIpO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBCYTpnPTEwO2JyZWFrIGE7Y2FzZSBDYTpnPTk7YnJlYWsgYTtjYXNlIERhOmc9MTE7XG5icmVhayBhO2Nhc2UgR2E6Zz0xNDticmVhayBhO2Nhc2UgSGE6Zz0xNjtkPW51bGw7YnJlYWsgYX10aHJvdyBFcnJvcihwKDEzMCxudWxsPT1hP2E6dHlwZW9mIGEsXCJcIikpO31iPUJnKGcsYyxiLGUpO2IuZWxlbWVudFR5cGU9YTtiLnR5cGU9ZDtiLmxhbmVzPWY7cmV0dXJuIGJ9ZnVuY3Rpb24gQWgoYSxiLGMsZCl7YT1CZyg3LGEsZCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9ZnVuY3Rpb24gcWooYSxiLGMsZCl7YT1CZygyMixhLGQsYik7YS5lbGVtZW50VHlwZT1JYTthLmxhbmVzPWM7YS5zdGF0ZU5vZGU9e2lzSGlkZGVuOiExfTtyZXR1cm4gYX1mdW5jdGlvbiB4aChhLGIsYyl7YT1CZyg2LGEsbnVsbCxiKTthLmxhbmVzPWM7cmV0dXJuIGF9XG5mdW5jdGlvbiB6aChhLGIsYyl7Yj1CZyg0LG51bGwhPT1hLmNoaWxkcmVuP2EuY2hpbGRyZW46W10sYS5rZXksYik7Yi5sYW5lcz1jO2Iuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmEuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjphLmltcGxlbWVudGF0aW9ufTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGJsKGEsYixjLGQsZSl7dGhpcy50YWc9Yjt0aGlzLmNvbnRhaW5lckluZm89YTt0aGlzLmZpbmlzaGVkV29yaz10aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbDt0aGlzLnRpbWVvdXRIYW5kbGU9LTE7dGhpcy5jYWxsYmFja05vZGU9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9bnVsbDt0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MDt0aGlzLmV2ZW50VGltZXM9emMoMCk7dGhpcy5leHBpcmF0aW9uVGltZXM9emMoLTEpO3RoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5maW5pc2hlZExhbmVzPXRoaXMubXV0YWJsZVJlYWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MDt0aGlzLmVudGFuZ2xlbWVudHM9emMoMCk7dGhpcy5pZGVudGlmaWVyUHJlZml4PWQ7dGhpcy5vblJlY292ZXJhYmxlRXJyb3I9ZTt0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9XG5udWxsfWZ1bmN0aW9uIGNsKGEsYixjLGQsZSxmLGcsaCxrKXthPW5ldyBibChhLGIsYyxoLGspOzE9PT1iPyhiPTEsITA9PT1mJiYoYnw9OCkpOmI9MDtmPUJnKDMsbnVsbCxudWxsLGIpO2EuY3VycmVudD1mO2Yuc3RhdGVOb2RlPWE7Zi5tZW1vaXplZFN0YXRlPXtlbGVtZW50OmQsaXNEZWh5ZHJhdGVkOmMsY2FjaGU6bnVsbCx0cmFuc2l0aW9uczpudWxsLHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6bnVsbH07YWgoZik7cmV0dXJuIGF9ZnVuY3Rpb24gZGwoYSxiLGMpe3ZhciBkPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjp3YSxrZXk6bnVsbD09ZD9udWxsOlwiXCIrZCxjaGlsZHJlbjphLGNvbnRhaW5lckluZm86YixpbXBsZW1lbnRhdGlvbjpjfX1cbmZ1bmN0aW9uIGVsKGEpe2lmKCFhKXJldHVybiBWZjthPWEuX3JlYWN0SW50ZXJuYWxzO2E6e2lmKFZiKGEpIT09YXx8MSE9PWEudGFnKXRocm93IEVycm9yKHAoMTcwKSk7dmFyIGI9YTtkb3tzd2l0Y2goYi50YWcpe2Nhc2UgMzpiPWIuc3RhdGVOb2RlLmNvbnRleHQ7YnJlYWsgYTtjYXNlIDE6aWYoWmYoYi50eXBlKSl7Yj1iLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBhfX1iPWIucmV0dXJufXdoaWxlKG51bGwhPT1iKTt0aHJvdyBFcnJvcihwKDE3MSkpO31pZigxPT09YS50YWcpe3ZhciBjPWEudHlwZTtpZihaZihjKSlyZXR1cm4gYmcoYSxjLGIpfXJldHVybiBifVxuZnVuY3Rpb24gZmwoYSxiLGMsZCxlLGYsZyxoLGspe2E9Y2woYyxkLCEwLGEsZSxmLGcsaCxrKTthLmNvbnRleHQ9ZWwobnVsbCk7Yz1hLmN1cnJlbnQ7ZD1MKCk7ZT1saChjKTtmPWNoKGQsZSk7Zi5jYWxsYmFjaz12b2lkIDAhPT1iJiZudWxsIT09Yj9iOm51bGw7ZGgoYyxmLGUpO2EuY3VycmVudC5sYW5lcz1lO0FjKGEsZSxkKTtFayhhLGQpO3JldHVybiBhfWZ1bmN0aW9uIGdsKGEsYixjLGQpe3ZhciBlPWIuY3VycmVudCxmPUwoKSxnPWxoKGUpO2M9ZWwoYyk7bnVsbD09PWIuY29udGV4dD9iLmNvbnRleHQ9YzpiLnBlbmRpbmdDb250ZXh0PWM7Yj1jaChmLGcpO2IucGF5bG9hZD17ZWxlbWVudDphfTtkPXZvaWQgMD09PWQ/bnVsbDpkO251bGwhPT1kJiYoYi5jYWxsYmFjaz1kKTthPWRoKGUsYixnKTtudWxsIT09YSYmKG1oKGEsZSxnLGYpLGVoKGEsZSxnKSk7cmV0dXJuIGd9XG5mdW5jdGlvbiBobChhKXthPWEuY3VycmVudDtpZighYS5jaGlsZClyZXR1cm4gbnVsbDtzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgNTpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGU7ZGVmYXVsdDpyZXR1cm4gYS5jaGlsZC5zdGF0ZU5vZGV9fWZ1bmN0aW9uIGlsKGEsYil7YT1hLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWEmJm51bGwhPT1hLmRlaHlkcmF0ZWQpe3ZhciBjPWEucmV0cnlMYW5lO2EucmV0cnlMYW5lPTAhPT1jJiZjPGI/YzpifX1mdW5jdGlvbiBqbChhLGIpe2lsKGEsYik7KGE9YS5hbHRlcm5hdGUpJiZpbChhLGIpfWZ1bmN0aW9uIGtsKCl7cmV0dXJuIG51bGx9dmFyIGxsPVwiZnVuY3Rpb25cIj09PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihhKXtjb25zb2xlLmVycm9yKGEpfTtmdW5jdGlvbiBtbChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1cbm5sLnByb3RvdHlwZS5yZW5kZXI9bWwucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbD09PWIpdGhyb3cgRXJyb3IocCg0MDkpKTtnbChhLGIsbnVsbCxudWxsKX07bmwucHJvdG90eXBlLnVubW91bnQ9bWwucHJvdG90eXBlLnVubW91bnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9pbnRlcm5hbFJvb3Q7aWYobnVsbCE9PWEpe3RoaXMuX2ludGVybmFsUm9vdD1udWxsO3ZhciBiPWEuY29udGFpbmVySW5mbztTayhmdW5jdGlvbigpe2dsKG51bGwsYSxudWxsLG51bGwpfSk7Ylt1Zl09bnVsbH19O2Z1bmN0aW9uIG5sKGEpe3RoaXMuX2ludGVybmFsUm9vdD1hfVxubmwucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPUhjKCk7YT17YmxvY2tlZE9uOm51bGwsdGFyZ2V0OmEscHJpb3JpdHk6Yn07Zm9yKHZhciBjPTA7YzxRYy5sZW5ndGgmJjAhPT1iJiZiPFFjW2NdLnByaW9yaXR5O2MrKyk7UWMuc3BsaWNlKGMsMCxhKTswPT09YyYmVmMoYSl9fTtmdW5jdGlvbiBvbChhKXtyZXR1cm4hKCFhfHwxIT09YS5ub2RlVHlwZSYmOSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZSl9ZnVuY3Rpb24gcGwoYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUmJig4IT09YS5ub2RlVHlwZXx8XCIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgXCIhPT1hLm5vZGVWYWx1ZSkpfWZ1bmN0aW9uIHFsKCl7fVxuZnVuY3Rpb24gcmwoYSxiLGMsZCxlKXtpZihlKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGY9ZDtkPWZ1bmN0aW9uKCl7dmFyIGE9aGwoZyk7Zi5jYWxsKGEpfX12YXIgZz1mbChiLGQsYSwwLG51bGwsITEsITEsXCJcIixxbCk7YS5fcmVhY3RSb290Q29udGFpbmVyPWc7YVt1Zl09Zy5jdXJyZW50O3NmKDg9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphKTtTaygpO3JldHVybiBnfWZvcig7ZT1hLmxhc3RDaGlsZDspYS5yZW1vdmVDaGlsZChlKTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGg9ZDtkPWZ1bmN0aW9uKCl7dmFyIGE9aGwoayk7aC5jYWxsKGEpfX12YXIgaz1jbChhLDAsITEsbnVsbCxudWxsLCExLCExLFwiXCIscWwpO2EuX3JlYWN0Um9vdENvbnRhaW5lcj1rO2FbdWZdPWsuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7U2soZnVuY3Rpb24oKXtnbChiLGssYyxkKX0pO3JldHVybiBrfVxuZnVuY3Rpb24gc2woYSxiLGMsZCxlKXt2YXIgZj1jLl9yZWFjdFJvb3RDb250YWluZXI7aWYoZil7dmFyIGc9ZjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGg9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9aGwoZyk7aC5jYWxsKGEpfX1nbChiLGcsYSxlKX1lbHNlIGc9cmwoYyxiLGEsZSxkKTtyZXR1cm4gaGwoZyl9RWM9ZnVuY3Rpb24oYSl7c3dpdGNoKGEudGFnKXtjYXNlIDM6dmFyIGI9YS5zdGF0ZU5vZGU7aWYoYi5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgYz10YyhiLnBlbmRpbmdMYW5lcyk7MCE9PWMmJihDYyhiLGN8MSksRWsoYixCKCkpLDA9PT0oSyY2KSYmKEhqPUIoKSs1MDAsamcoKSkpfWJyZWFrO2Nhc2UgMTM6U2soZnVuY3Rpb24oKXt2YXIgYj1aZyhhLDEpO2lmKG51bGwhPT1iKXt2YXIgYz1MKCk7bWgoYixhLDEsYyl9fSksamwoYSwxKX19O1xuRmM9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9WmcoYSwxMzQyMTc3MjgpO2lmKG51bGwhPT1iKXt2YXIgYz1MKCk7bWgoYixhLDEzNDIxNzcyOCxjKX1qbChhLDEzNDIxNzcyOCl9fTtHYz1mdW5jdGlvbihhKXtpZigxMz09PWEudGFnKXt2YXIgYj1saChhKSxjPVpnKGEsYik7aWYobnVsbCE9PWMpe3ZhciBkPUwoKTttaChjLGEsYixkKX1qbChhLGIpfX07SGM9ZnVuY3Rpb24oKXtyZXR1cm4gQ307SWM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1DO3RyeXtyZXR1cm4gQz1hLGIoKX1maW5hbGx5e0M9Y319O1xueWI9ZnVuY3Rpb24oYSxiLGMpe3N3aXRjaChiKXtjYXNlIFwiaW5wdXRcIjpiYihhLGMpO2I9Yy5uYW1lO2lmKFwicmFkaW9cIj09PWMudHlwZSYmbnVsbCE9Yil7Zm9yKGM9YTtjLnBhcmVudE5vZGU7KWM9Yy5wYXJlbnROb2RlO2M9Yy5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cIitKU09OLnN0cmluZ2lmeShcIlwiK2IpKyddW3R5cGU9XCJyYWRpb1wiXScpO2ZvcihiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07aWYoZCE9PWEmJmQuZm9ybT09PWEuZm9ybSl7dmFyIGU9RGIoZCk7aWYoIWUpdGhyb3cgRXJyb3IocCg5MCkpO1dhKGQpO2JiKGQsZSl9fX1icmVhaztjYXNlIFwidGV4dGFyZWFcIjppYihhLGMpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpiPWMudmFsdWUsbnVsbCE9YiYmZmIoYSwhIWMubXVsdGlwbGUsYiwhMSl9fTtHYj1SaztIYj1TaztcbnZhciB0bD17dXNpbmdDbGllbnRFbnRyeVBvaW50OiExLEV2ZW50czpbQ2IsdWUsRGIsRWIsRmIsUmtdfSx1bD17ZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6V2MsYnVuZGxlVHlwZTowLHZlcnNpb246XCIxOC4yLjBcIixyZW5kZXJlclBhY2thZ2VOYW1lOlwicmVhY3QtZG9tXCJ9O1xudmFyIHZsPXtidW5kbGVUeXBlOnVsLmJ1bmRsZVR5cGUsdmVyc2lvbjp1bC52ZXJzaW9uLHJlbmRlcmVyUGFja2FnZU5hbWU6dWwucmVuZGVyZXJQYWNrYWdlTmFtZSxyZW5kZXJlckNvbmZpZzp1bC5yZW5kZXJlckNvbmZpZyxvdmVycmlkZUhvb2tTdGF0ZTpudWxsLG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDpudWxsLG92ZXJyaWRlUHJvcHM6bnVsbCxvdmVycmlkZVByb3BzRGVsZXRlUGF0aDpudWxsLG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoOm51bGwsc2V0RXJyb3JIYW5kbGVyOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjp1YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGEpe2E9WmIoYSk7cmV0dXJuIG51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOnVsLmZpbmRGaWJlckJ5SG9zdEluc3RhbmNlfHxcbmtsLGZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaDpudWxsLHNjaGVkdWxlUmVmcmVzaDpudWxsLHNjaGVkdWxlUm9vdDpudWxsLHNldFJlZnJlc2hIYW5kbGVyOm51bGwsZ2V0Q3VycmVudEZpYmVyOm51bGwscmVjb25jaWxlclZlcnNpb246XCIxOC4yLjAtbmV4dC05ZTNiNzcyYjgtMjAyMjA2MDhcIn07aWYoXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB3bD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXdsLmlzRGlzYWJsZWQmJndsLnN1cHBvcnRzRmliZXIpdHJ5e2tjPXdsLmluamVjdCh2bCksbGM9d2x9Y2F0Y2goYSl7fX1leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEPXRsO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oYSxiKXt2YXIgYz0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighb2woYikpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gZGwoYSxiLG51bGwsYyl9O2V4cG9ydHMuY3JlYXRlUm9vdD1mdW5jdGlvbihhLGIpe2lmKCFvbChhKSl0aHJvdyBFcnJvcihwKDI5OSkpO3ZhciBjPSExLGQ9XCJcIixlPWxsO251bGwhPT1iJiZ2b2lkIDAhPT1iJiYoITA9PT1iLnVuc3RhYmxlX3N0cmljdE1vZGUmJihjPSEwKSx2b2lkIDAhPT1iLmlkZW50aWZpZXJQcmVmaXgmJihkPWIuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yi5vblJlY292ZXJhYmxlRXJyb3ImJihlPWIub25SZWNvdmVyYWJsZUVycm9yKSk7Yj1jbChhLDEsITEsbnVsbCxudWxsLGMsITEsZCxlKTthW3VmXT1iLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO3JldHVybiBuZXcgbWwoYil9O1xuZXhwb3J0cy5maW5kRE9NTm9kZT1mdW5jdGlvbihhKXtpZihudWxsPT1hKXJldHVybiBudWxsO2lmKDE9PT1hLm5vZGVUeXBlKXJldHVybiBhO3ZhciBiPWEuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PWIpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnJlbmRlcil0aHJvdyBFcnJvcihwKDE4OCkpO2E9T2JqZWN0LmtleXMoYSkuam9pbihcIixcIik7dGhyb3cgRXJyb3IocCgyNjgsYSkpO31hPVpiKGIpO2E9bnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZTtyZXR1cm4gYX07ZXhwb3J0cy5mbHVzaFN5bmM9ZnVuY3Rpb24oYSl7cmV0dXJuIFNrKGEpfTtleHBvcnRzLmh5ZHJhdGU9ZnVuY3Rpb24oYSxiLGMpe2lmKCFwbChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBzbChudWxsLGEsYiwhMCxjKX07XG5leHBvcnRzLmh5ZHJhdGVSb290PWZ1bmN0aW9uKGEsYixjKXtpZighb2woYSkpdGhyb3cgRXJyb3IocCg0MDUpKTt2YXIgZD1udWxsIT1jJiZjLmh5ZHJhdGVkU291cmNlc3x8bnVsbCxlPSExLGY9XCJcIixnPWxsO251bGwhPT1jJiZ2b2lkIDAhPT1jJiYoITA9PT1jLnVuc3RhYmxlX3N0cmljdE1vZGUmJihlPSEwKSx2b2lkIDAhPT1jLmlkZW50aWZpZXJQcmVmaXgmJihmPWMuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09Yy5vblJlY292ZXJhYmxlRXJyb3ImJihnPWMub25SZWNvdmVyYWJsZUVycm9yKSk7Yj1mbChiLG51bGwsYSwxLG51bGwhPWM/YzpudWxsLGUsITEsZixnKTthW3VmXT1iLmN1cnJlbnQ7c2YoYSk7aWYoZClmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKWM9ZFthXSxlPWMuX2dldFZlcnNpb24sZT1lKGMuX3NvdXJjZSksbnVsbD09Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhP2IubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT1bYyxlXTpiLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEucHVzaChjLFxuZSk7cmV0dXJuIG5ldyBubChiKX07ZXhwb3J0cy5yZW5kZXI9ZnVuY3Rpb24oYSxiLGMpe2lmKCFwbChiKSl0aHJvdyBFcnJvcihwKDIwMCkpO3JldHVybiBzbChudWxsLGEsYiwhMSxjKX07ZXhwb3J0cy51bm1vdW50Q29tcG9uZW50QXROb2RlPWZ1bmN0aW9uKGEpe2lmKCFwbChhKSl0aHJvdyBFcnJvcihwKDQwKSk7cmV0dXJuIGEuX3JlYWN0Um9vdENvbnRhaW5lcj8oU2soZnVuY3Rpb24oKXtzbChudWxsLG51bGwsYSwhMSxmdW5jdGlvbigpe2EuX3JlYWN0Um9vdENvbnRhaW5lcj1udWxsO2FbdWZdPW51bGx9KX0pLCEwKTohMX07ZXhwb3J0cy51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcz1SaztcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIXBsKGMpKXRocm93IEVycm9yKHAoMjAwKSk7aWYobnVsbD09YXx8dm9pZCAwPT09YS5fcmVhY3RJbnRlcm5hbHMpdGhyb3cgRXJyb3IocCgzOCkpO3JldHVybiBzbChhLGIsYywhMSxkKX07ZXhwb3J0cy52ZXJzaW9uPVwiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4XCI7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGY9cmVxdWlyZShcInJlYWN0XCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksbD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LG49Zi5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRC5SZWFjdEN1cnJlbnRPd25lcixwPXtrZXk6ITAscmVmOiEwLF9fc2VsZjohMCxfX3NvdXJjZTohMH07XG5mdW5jdGlvbiBxKGMsYSxnKXt2YXIgYixkPXt9LGU9bnVsbCxoPW51bGw7dm9pZCAwIT09ZyYmKGU9XCJcIitnKTt2b2lkIDAhPT1hLmtleSYmKGU9XCJcIithLmtleSk7dm9pZCAwIT09YS5yZWYmJihoPWEucmVmKTtmb3IoYiBpbiBhKW0uY2FsbChhLGIpJiYhcC5oYXNPd25Qcm9wZXJ0eShiKSYmKGRbYl09YVtiXSk7aWYoYyYmYy5kZWZhdWx0UHJvcHMpZm9yKGIgaW4gYT1jLmRlZmF1bHRQcm9wcyxhKXZvaWQgMD09PWRbYl0mJihkW2JdPWFbYl0pO3JldHVybnskJHR5cGVvZjprLHR5cGU6YyxrZXk6ZSxyZWY6aCxwcm9wczpkLF9vd25lcjpuLmN1cnJlbnR9fWV4cG9ydHMuRnJhZ21lbnQ9bDtleHBvcnRzLmpzeD1xO2V4cG9ydHMuanN4cz1xO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGYoYSxiKXt2YXIgYz1hLmxlbmd0aDthLnB1c2goYik7YTpmb3IoOzA8Yzspe3ZhciBkPWMtMT4+PjEsZT1hW2RdO2lmKDA8ZyhlLGIpKWFbZF09YixhW2NdPWUsYz1kO2Vsc2UgYnJlYWsgYX19ZnVuY3Rpb24gaChhKXtyZXR1cm4gMD09PWEubGVuZ3RoP251bGw6YVswXX1mdW5jdGlvbiBrKGEpe2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgYj1hWzBdLGM9YS5wb3AoKTtpZihjIT09Yil7YVswXT1jO2E6Zm9yKHZhciBkPTAsZT1hLmxlbmd0aCx3PWU+Pj4xO2Q8dzspe3ZhciBtPTIqKGQrMSktMSxDPWFbbV0sbj1tKzEseD1hW25dO2lmKDA+ZyhDLGMpKW48ZSYmMD5nKHgsQyk/KGFbZF09eCxhW25dPWMsZD1uKTooYVtkXT1DLGFbbV09YyxkPW0pO2Vsc2UgaWYobjxlJiYwPmcoeCxjKSlhW2RdPXgsYVtuXT1jLGQ9bjtlbHNlIGJyZWFrIGF9fXJldHVybiBifVxuZnVuY3Rpb24gZyhhLGIpe3ZhciBjPWEuc29ydEluZGV4LWIuc29ydEluZGV4O3JldHVybiAwIT09Yz9jOmEuaWQtYi5pZH1pZihcIm9iamVjdFwiPT09dHlwZW9mIHBlcmZvcm1hbmNlJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgbD1wZXJmb3JtYW5jZTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBsLm5vdygpfX1lbHNle3ZhciBwPURhdGUscT1wLm5vdygpO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHAubm93KCktcX19dmFyIHI9W10sdD1bXSx1PTEsdj1udWxsLHk9Myx6PSExLEE9ITEsQj0hMSxEPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCxFPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0Om51bGwsRj1cInVuZGVmaW5lZFwiIT09dHlwZW9mIHNldEltbWVkaWF0ZT9zZXRJbW1lZGlhdGU6bnVsbDtcblwidW5kZWZpbmVkXCIhPT10eXBlb2YgbmF2aWdhdG9yJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZyYmdm9pZCAwIT09bmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcmJm5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nLmJpbmQobmF2aWdhdG9yLnNjaGVkdWxpbmcpO2Z1bmN0aW9uIEcoYSl7Zm9yKHZhciBiPWgodCk7bnVsbCE9PWI7KXtpZihudWxsPT09Yi5jYWxsYmFjaylrKHQpO2Vsc2UgaWYoYi5zdGFydFRpbWU8PWEpayh0KSxiLnNvcnRJbmRleD1iLmV4cGlyYXRpb25UaW1lLGYocixiKTtlbHNlIGJyZWFrO2I9aCh0KX19ZnVuY3Rpb24gSChhKXtCPSExO0coYSk7aWYoIUEpaWYobnVsbCE9PWgocikpQT0hMCxJKEopO2Vsc2V7dmFyIGI9aCh0KTtudWxsIT09YiYmSyhILGIuc3RhcnRUaW1lLWEpfX1cbmZ1bmN0aW9uIEooYSxiKXtBPSExO0ImJihCPSExLEUoTCksTD0tMSk7ej0hMDt2YXIgYz15O3RyeXtHKGIpO2Zvcih2PWgocik7bnVsbCE9PXYmJighKHYuZXhwaXJhdGlvblRpbWU+Yil8fGEmJiFNKCkpOyl7dmFyIGQ9di5jYWxsYmFjaztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7di5jYWxsYmFjaz1udWxsO3k9di5wcmlvcml0eUxldmVsO3ZhciBlPWQodi5leHBpcmF0aW9uVGltZTw9Yik7Yj1leHBvcnRzLnVuc3RhYmxlX25vdygpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlP3YuY2FsbGJhY2s9ZTp2PT09aChyKSYmayhyKTtHKGIpfWVsc2UgayhyKTt2PWgocil9aWYobnVsbCE9PXYpdmFyIHc9ITA7ZWxzZXt2YXIgbT1oKHQpO251bGwhPT1tJiZLKEgsbS5zdGFydFRpbWUtYik7dz0hMX1yZXR1cm4gd31maW5hbGx5e3Y9bnVsbCx5PWMsej0hMX19dmFyIE49ITEsTz1udWxsLEw9LTEsUD01LFE9LTE7XG5mdW5jdGlvbiBNKCl7cmV0dXJuIGV4cG9ydHMudW5zdGFibGVfbm93KCktUTxQPyExOiEwfWZ1bmN0aW9uIFIoKXtpZihudWxsIT09Tyl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtRPWE7dmFyIGI9ITA7dHJ5e2I9TyghMCxhKX1maW5hbGx5e2I/UygpOihOPSExLE89bnVsbCl9fWVsc2UgTj0hMX12YXIgUztpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgRilTPWZ1bmN0aW9uKCl7RihSKX07ZWxzZSBpZihcInVuZGVmaW5lZFwiIT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgVD1uZXcgTWVzc2FnZUNoYW5uZWwsVT1ULnBvcnQyO1QucG9ydDEub25tZXNzYWdlPVI7Uz1mdW5jdGlvbigpe1UucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgUz1mdW5jdGlvbigpe0QoUiwwKX07ZnVuY3Rpb24gSShhKXtPPWE7Tnx8KE49ITAsUygpKX1mdW5jdGlvbiBLKGEsYil7TD1EKGZ1bmN0aW9uKCl7YShleHBvcnRzLnVuc3RhYmxlX25vdygpKX0sYil9XG5leHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01O2V4cG9ydHMudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MTtleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQ7ZXhwb3J0cy51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zO2V4cG9ydHMudW5zdGFibGVfUHJvZmlsaW5nPW51bGw7ZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yO2V4cG9ydHMudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7YS5jYWxsYmFjaz1udWxsfTtleHBvcnRzLnVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uPWZ1bmN0aW9uKCl7QXx8enx8KEE9ITAsSShKKSl9O1xuZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbihhKXswPmF8fDEyNTxhP2NvbnNvbGUuZXJyb3IoXCJmb3JjZUZyYW1lUmF0ZSB0YWtlcyBhIHBvc2l0aXZlIGludCBiZXR3ZWVuIDAgYW5kIDEyNSwgZm9yY2luZyBmcmFtZSByYXRlcyBoaWdoZXIgdGhhbiAxMjUgZnBzIGlzIG5vdCBzdXBwb3J0ZWRcIik6UD0wPGE/TWF0aC5mbG9vcigxRTMvYSk6NX07ZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiB5fTtleHBvcnRzLnVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIGgocil9O2V4cG9ydHMudW5zdGFibGVfbmV4dD1mdW5jdGlvbihhKXtzd2l0Y2goeSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6dmFyIGI9MzticmVhaztkZWZhdWx0OmI9eX12YXIgYz15O3k9Yjt0cnl7cmV0dXJuIGEoKX1maW5hbGx5e3k9Y319O2V4cG9ydHMudW5zdGFibGVfcGF1c2VFeGVjdXRpb249ZnVuY3Rpb24oKXt9O1xuZXhwb3J0cy51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt9O2V4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDphPTN9dmFyIGM9eTt5PWE7dHJ5e3JldHVybiBiKCl9ZmluYWxseXt5PWN9fTtcbmV4cG9ydHMudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jPyhjPWMuZGVsYXksYz1cIm51bWJlclwiPT09dHlwZW9mIGMmJjA8Yz9kK2M6ZCk6Yz1kO3N3aXRjaChhKXtjYXNlIDE6dmFyIGU9LTE7YnJlYWs7Y2FzZSAyOmU9MjUwO2JyZWFrO2Nhc2UgNTplPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OmU9MUU0O2JyZWFrO2RlZmF1bHQ6ZT01RTN9ZT1jK2U7YT17aWQ6dSsrLGNhbGxiYWNrOmIscHJpb3JpdHlMZXZlbDphLHN0YXJ0VGltZTpjLGV4cGlyYXRpb25UaW1lOmUsc29ydEluZGV4Oi0xfTtjPmQ/KGEuc29ydEluZGV4PWMsZih0LGEpLG51bGw9PT1oKHIpJiZhPT09aCh0KSYmKEI/KEUoTCksTD0tMSk6Qj0hMCxLKEgsYy1kKSkpOihhLnNvcnRJbmRleD1lLGYocixhKSxBfHx6fHwoQT0hMCxJKEopKSk7cmV0dXJuIGF9O1xuZXhwb3J0cy51bnN0YWJsZV9zaG91bGRZaWVsZD1NO2V4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPXk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9eTt5PWI7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3k9Y319fTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIHN0eWxlc0luRE9NID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG4gICAgaWYgKGluZGV4QnlJZGVudGlmaWVyICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB1cGRhdGVyID0gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLmJ5SW5kZXggPSBpO1xuICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKGksIDAsIHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlcixcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuZnVuY3Rpb24gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgYXBpID0gb3B0aW9ucy5kb21BUEkob3B0aW9ucyk7XG4gIGFwaS51cGRhdGUob2JqKTtcbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gdXBkYXRlcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuICAgICAgaWYgKHN0eWxlc0luRE9NW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRPTVtfaW5kZXhdLnVwZGF0ZXIoKTtcbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKTtcbiAgfVxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuICBjc3MgKz0gb2JqLmNzcztcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfVxuXG4gIC8vIEZvciBvbGQgSUVcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB7XG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSgpIHt9LFxuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7fVxuICAgIH07XG4gIH1cbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIi8qIGpzaGludCBicm93c2VyOiB0cnVlICovXG5cbihmdW5jdGlvbiAoKSB7XG5cbi8vIFdlJ2xsIGNvcHkgdGhlIHByb3BlcnRpZXMgYmVsb3cgaW50byB0aGUgbWlycm9yIGRpdi5cbi8vIE5vdGUgdGhhdCBzb21lIGJyb3dzZXJzLCBzdWNoIGFzIEZpcmVmb3gsIGRvIG5vdCBjb25jYXRlbmF0ZSBwcm9wZXJ0aWVzXG4vLyBpbnRvIHRoZWlyIHNob3J0aGFuZCAoZS5nLiBwYWRkaW5nLXRvcCwgcGFkZGluZy1ib3R0b20gZXRjLiAtPiBwYWRkaW5nKSxcbi8vIHNvIHdlIGhhdmUgdG8gbGlzdCBldmVyeSBzaW5nbGUgcHJvcGVydHkgZXhwbGljaXRseS5cbnZhciBwcm9wZXJ0aWVzID0gW1xuICAnZGlyZWN0aW9uJywgIC8vIFJUTCBzdXBwb3J0XG4gICdib3hTaXppbmcnLFxuICAnd2lkdGgnLCAgLy8gb24gQ2hyb21lIGFuZCBJRSwgZXhjbHVkZSB0aGUgc2Nyb2xsYmFyLCBzbyB0aGUgbWlycm9yIGRpdiB3cmFwcyBleGFjdGx5IGFzIHRoZSB0ZXh0YXJlYSBkb2VzXG4gICdoZWlnaHQnLFxuICAnb3ZlcmZsb3dYJyxcbiAgJ292ZXJmbG93WScsICAvLyBjb3B5IHRoZSBzY3JvbGxiYXIgZm9yIElFXG5cbiAgJ2JvcmRlclRvcFdpZHRoJyxcbiAgJ2JvcmRlclJpZ2h0V2lkdGgnLFxuICAnYm9yZGVyQm90dG9tV2lkdGgnLFxuICAnYm9yZGVyTGVmdFdpZHRoJyxcbiAgJ2JvcmRlclN0eWxlJyxcblxuICAncGFkZGluZ1RvcCcsXG4gICdwYWRkaW5nUmlnaHQnLFxuICAncGFkZGluZ0JvdHRvbScsXG4gICdwYWRkaW5nTGVmdCcsXG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2ZvbnRcbiAgJ2ZvbnRTdHlsZScsXG4gICdmb250VmFyaWFudCcsXG4gICdmb250V2VpZ2h0JyxcbiAgJ2ZvbnRTdHJldGNoJyxcbiAgJ2ZvbnRTaXplJyxcbiAgJ2ZvbnRTaXplQWRqdXN0JyxcbiAgJ2xpbmVIZWlnaHQnLFxuICAnZm9udEZhbWlseScsXG5cbiAgJ3RleHRBbGlnbicsXG4gICd0ZXh0VHJhbnNmb3JtJyxcbiAgJ3RleHRJbmRlbnQnLFxuICAndGV4dERlY29yYXRpb24nLCAgLy8gbWlnaHQgbm90IG1ha2UgYSBkaWZmZXJlbmNlLCBidXQgYmV0dGVyIGJlIHNhZmVcblxuICAnbGV0dGVyU3BhY2luZycsXG4gICd3b3JkU3BhY2luZycsXG5cbiAgJ3RhYlNpemUnLFxuICAnTW96VGFiU2l6ZSdcblxuXTtcblxudmFyIGlzQnJvd3NlciA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyk7XG52YXIgaXNGaXJlZm94ID0gKGlzQnJvd3NlciAmJiB3aW5kb3cubW96SW5uZXJTY3JlZW5YICE9IG51bGwpO1xuXG5mdW5jdGlvbiBnZXRDYXJldENvb3JkaW5hdGVzKGVsZW1lbnQsIHBvc2l0aW9uLCBvcHRpb25zKSB7XG4gIGlmICghaXNCcm93c2VyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0ZXh0YXJlYS1jYXJldC1wb3NpdGlvbiNnZXRDYXJldENvb3JkaW5hdGVzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBhIGJyb3dzZXInKTtcbiAgfVxuXG4gIHZhciBkZWJ1ZyA9IG9wdGlvbnMgJiYgb3B0aW9ucy5kZWJ1ZyB8fCBmYWxzZTtcbiAgaWYgKGRlYnVnKSB7XG4gICAgdmFyIGVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2lucHV0LXRleHRhcmVhLWNhcmV0LXBvc2l0aW9uLW1pcnJvci1kaXYnKTtcbiAgICBpZiAoZWwpIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpO1xuICB9XG5cbiAgLy8gVGhlIG1pcnJvciBkaXYgd2lsbCByZXBsaWNhdGUgdGhlIHRleHRhcmVhJ3Mgc3R5bGVcbiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuaWQgPSAnaW5wdXQtdGV4dGFyZWEtY2FyZXQtcG9zaXRpb24tbWlycm9yLWRpdic7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcblxuICB2YXIgc3R5bGUgPSBkaXYuc3R5bGU7XG4gIHZhciBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkgOiBlbGVtZW50LmN1cnJlbnRTdHlsZTsgIC8vIGN1cnJlbnRTdHlsZSBmb3IgSUUgPCA5XG4gIHZhciBpc0lucHV0ID0gZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0lOUFVUJztcblxuICAvLyBEZWZhdWx0IHRleHRhcmVhIHN0eWxlc1xuICBzdHlsZS53aGl0ZVNwYWNlID0gJ3ByZS13cmFwJztcbiAgaWYgKCFpc0lucHV0KVxuICAgIHN0eWxlLndvcmRXcmFwID0gJ2JyZWFrLXdvcmQnOyAgLy8gb25seSBmb3IgdGV4dGFyZWEtc1xuXG4gIC8vIFBvc2l0aW9uIG9mZi1zY3JlZW5cbiAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOyAgLy8gcmVxdWlyZWQgdG8gcmV0dXJuIGNvb3JkaW5hdGVzIHByb3Blcmx5XG4gIGlmICghZGVidWcpXG4gICAgc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOyAgLy8gbm90ICdkaXNwbGF5OiBub25lJyBiZWNhdXNlIHdlIHdhbnQgcmVuZGVyaW5nXG5cbiAgLy8gVHJhbnNmZXIgdGhlIGVsZW1lbnQncyBwcm9wZXJ0aWVzIHRvIHRoZSBkaXZcbiAgcHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgaWYgKGlzSW5wdXQgJiYgcHJvcCA9PT0gJ2xpbmVIZWlnaHQnKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIDxpbnB1dD5zIGJlY2F1c2UgdGV4dCBpcyByZW5kZXJlZCBjZW50ZXJlZCBhbmQgbGluZSBoZWlnaHQgbWF5IGJlICE9IGhlaWdodFxuICAgICAgc3R5bGUubGluZUhlaWdodCA9IGNvbXB1dGVkLmhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVbcHJvcF0gPSBjb21wdXRlZFtwcm9wXTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChpc0ZpcmVmb3gpIHtcbiAgICAvLyBGaXJlZm94IGxpZXMgYWJvdXQgdGhlIG92ZXJmbG93IHByb3BlcnR5IGZvciB0ZXh0YXJlYXM6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTk4NDI3NVxuICAgIGlmIChlbGVtZW50LnNjcm9sbEhlaWdodCA+IHBhcnNlSW50KGNvbXB1dGVkLmhlaWdodCkpXG4gICAgICBzdHlsZS5vdmVyZmxvd1kgPSAnc2Nyb2xsJztcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOyAgLy8gZm9yIENocm9tZSB0byBub3QgcmVuZGVyIGEgc2Nyb2xsYmFyOyBJRSBrZWVwcyBvdmVyZmxvd1kgPSAnc2Nyb2xsJ1xuICB9XG5cbiAgZGl2LnRleHRDb250ZW50ID0gZWxlbWVudC52YWx1ZS5zdWJzdHJpbmcoMCwgcG9zaXRpb24pO1xuICAvLyBUaGUgc2Vjb25kIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGlucHV0IHR5cGU9XCJ0ZXh0XCIgdnMgdGV4dGFyZWE6XG4gIC8vIHNwYWNlcyBuZWVkIHRvIGJlIHJlcGxhY2VkIHdpdGggbm9uLWJyZWFraW5nIHNwYWNlcyAtIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzEzNDAyMDM1LzEyNjkwMzdcbiAgaWYgKGlzSW5wdXQpXG4gICAgZGl2LnRleHRDb250ZW50ID0gZGl2LnRleHRDb250ZW50LnJlcGxhY2UoL1xccy9nLCAnXFx1MDBhMCcpO1xuXG4gIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAvLyBXcmFwcGluZyBtdXN0IGJlIHJlcGxpY2F0ZWQgKmV4YWN0bHkqLCBpbmNsdWRpbmcgd2hlbiBhIGxvbmcgd29yZCBnZXRzXG4gIC8vIG9udG8gdGhlIG5leHQgbGluZSwgd2l0aCB3aGl0ZXNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgYmVmb3JlICgjNykuXG4gIC8vIFRoZSAgKm9ubHkqIHJlbGlhYmxlIHdheSB0byBkbyB0aGF0IGlzIHRvIGNvcHkgdGhlICplbnRpcmUqIHJlc3Qgb2YgdGhlXG4gIC8vIHRleHRhcmVhJ3MgY29udGVudCBpbnRvIHRoZSA8c3Bhbj4gY3JlYXRlZCBhdCB0aGUgY2FyZXQgcG9zaXRpb24uXG4gIC8vIEZvciBpbnB1dHMsIGp1c3QgJy4nIHdvdWxkIGJlIGVub3VnaCwgYnV0IG5vIG5lZWQgdG8gYm90aGVyLlxuICBzcGFuLnRleHRDb250ZW50ID0gZWxlbWVudC52YWx1ZS5zdWJzdHJpbmcocG9zaXRpb24pIHx8ICcuJzsgIC8vIHx8IGJlY2F1c2UgYSBjb21wbGV0ZWx5IGVtcHR5IGZhdXggc3BhbiBkb2Vzbid0IHJlbmRlciBhdCBhbGxcbiAgZGl2LmFwcGVuZENoaWxkKHNwYW4pO1xuXG4gIHZhciBjb29yZGluYXRlcyA9IHtcbiAgICB0b3A6IHNwYW4ub2Zmc2V0VG9wICsgcGFyc2VJbnQoY29tcHV0ZWRbJ2JvcmRlclRvcFdpZHRoJ10pLFxuICAgIGxlZnQ6IHNwYW4ub2Zmc2V0TGVmdCArIHBhcnNlSW50KGNvbXB1dGVkWydib3JkZXJMZWZ0V2lkdGgnXSksXG4gICAgaGVpZ2h0OiBwYXJzZUludChjb21wdXRlZFsnbGluZUhlaWdodCddKVxuICB9O1xuXG4gIGlmIChkZWJ1Zykge1xuICAgIHNwYW4uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNhYWEnO1xuICB9IGVsc2Uge1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgfVxuXG4gIHJldHVybiBjb29yZGluYXRlcztcbn1cblxuaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzICE9ICd1bmRlZmluZWQnKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gZ2V0Q2FyZXRDb29yZGluYXRlcztcbn0gZWxzZSBpZihpc0Jyb3dzZXIpIHtcbiAgd2luZG93LmdldENhcmV0Q29vcmRpbmF0ZXMgPSBnZXRDYXJldENvb3JkaW5hdGVzO1xufVxuXG59KCkpO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogU2ltaWxhciB0byBpbnZhcmlhbnQgYnV0IG9ubHkgbG9ncyBhIHdhcm5pbmcgaWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBsb2cgaXNzdWVzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpbiBjcml0aWNhbFxuICogcGF0aHMuIFJlbW92aW5nIHRoZSBsb2dnaW5nIGNvZGUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpbGwga2VlcCB0aGVcbiAqIHNhbWUgbG9naWMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb2RlIHBhdGhzLlxuICovXG5cbnZhciBfX0RFVl9fID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJztcblxudmFyIHdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAoX19ERVZfXykge1xuICB2YXIgcHJpbnRXYXJuaW5nID0gZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGZvcm1hdCwgYXJncykge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuID4gMSA/IGxlbiAtIDEgOiAwKTtcbiAgICBmb3IgKHZhciBrZXkgPSAxOyBrZXkgPCBsZW47IGtleSsrKSB7XG4gICAgICBhcmdzW2tleSAtIDFdID0gYXJndW1lbnRzW2tleV07XG4gICAgfVxuICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgdmFyIG1lc3NhZ2UgPSAnV2FybmluZzogJyArXG4gICAgICBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhcmdzW2FyZ0luZGV4KytdO1xuICAgICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfVxuXG4gIHdhcm5pbmcgPSBmdW5jdGlvbihjb25kaXRpb24sIGZvcm1hdCwgYXJncykge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuID4gMiA/IGxlbiAtIDIgOiAwKTtcbiAgICBmb3IgKHZhciBrZXkgPSAyOyBrZXkgPCBsZW47IGtleSsrKSB7XG4gICAgICBhcmdzW2tleSAtIDJdID0gYXJndW1lbnRzW2tleV07XG4gICAgfVxuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICtcbiAgICAgICAgICAnbWVzc2FnZSBhcmd1bWVudCdcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICBwcmludFdhcm5pbmcuYXBwbHkobnVsbCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcbiIsImlmKHR5cGVvZiBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xODlfXyA9PT0gJ3VuZGVmaW5lZCcpIHsgdmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ3VuZGVmaW5lZCdcIik7IGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJzsgdGhyb3cgZTsgfVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzE4OV9fOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fNjM5X187IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGU7IH07XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBkZWZpbml0aW9uKSB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqLCBwcm9wKSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTsgfSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJ2YXIgSW5mb1NlcnZpY2U7XG5cbmNsYXNzIE1vY2t1cEluZm9TZXJ2aWNlSW1wbCB7XG4gIGFzeW5jIGdldFNlc3Npb25JbmZvKCkge1xuICAgIGF3YWl0IHRoaXMuc2xlZXAoMzAwMCk7XG4gICAgdGhyb3cgeyBtZXNzYWdlOiBcIlBsZWFzZSBsb2cgaW4hXCIgfTtcbiAgfVxuXG4gIHNsZWVwKG1zKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gIH1cblxuICBhc3luYyBsb2dpbih1c2VybmFtZSkge1xuICAgIGF3YWl0IHRoaXMuc2xlZXAoMzAwMCk7XG4gICAgaWYgKHVzZXJuYW1lID09IFwiZXJyb3JcIikge1xuICAgICAgdGhyb3cgeyBtZXNzYWdlOiBcIkxvZ2luIGZhaWxlZCEgQWhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGghXCIgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlYWxtOiBcIk1vY2tSZWFsbVwiLFxuICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lLFxuICAgICAgcm9sZXM6IFtdLFxuICAgICAgZXhwaXJlczogNjAwMDAsXG4gICAgfTtcbiAgfVxuICBhc3luYyBsb2dvdXQoKSB7XG4gICAgYXdhaXQgdGhpcy5zbGVlcCgzMDAwKTtcbiAgfVxufVxuXG50cnkge1xuICBJbmZvU2VydmljZSA9IHJlcXVpcmUoXCJAaW5kaXNjYWxlL2Nhb3NkYi13ZWJ1aS1pbmZvLXNlcnZpY2VcIikuSW5mb1NlcnZpY2U7XG59IGNhdGNoIChlcnJvcikge1xuICBjb25zb2xlLmxvZyhcIlByb3ZpZGluZyBtb2NrdXAgaW1wbGVtZW50YXRpb24gZm9yIEluZm9TZXJ2aWNlXCIpO1xuXG4gIEluZm9TZXJ2aWNlID0gTW9ja3VwSW5mb1NlcnZpY2VJbXBsO1xufVxuXG5leHBvcnQgeyBJbmZvU2VydmljZSB9O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBJbmZvU2VydmljZSB9IGZyb20gXCIuLi9JbmZvU2VydmljZVwiO1xuXG5mdW5jdGlvbiBoYW5kbGVFcnJvcihlcnJvcikge1xuICByZXR1cm4gXCJDb3VsZCBub3QgcmV0cmlldmUgU2VydmVyIFZlcnNpb24gSW5mbzogXCIgKyBlcnJvci5tZXNzYWdlO1xufVxuXG5mdW5jdGlvbiBnZXRTZXJ2ZXJWZXJzaW9uSW5mbyhzZXRWZXJzaW9uKSB7XG4gIGNvbnN0IHNlcnZpY2UgPSBuZXcgSW5mb1NlcnZpY2UoKTtcbiAgc2VydmljZVxuICAgIC5nZXRWZXJzaW9uSW5mbygpXG4gICAgLnRoZW4oKHNlcnZlclZlcnNpb24pID0+IHNlcnZlclZlcnNpb24ubm9CdWlsZCgpLnRvU3RyaW5nKCkpXG4gICAgLmNhdGNoKGhhbmRsZUVycm9yKVxuICAgIC50aGVuKHNldFZlcnNpb24pO1xuICByZXR1cm4gXCIuLi5cIjsgLy8gc29tZSBuaWNlciB3YWl0aW5nIGluZm8/XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2ZXJWZXJzaW9uSW5mbygpIHtcbiAgdmFyIFt2ZXJzaW9uLCBzZXRWZXJzaW9uXSA9IHVzZVN0YXRlKG51bGwpO1xuICBpZiAodmVyc2lvbiA9PT0gbnVsbCkge1xuICAgIHZlcnNpb24gPSBnZXRTZXJ2ZXJWZXJzaW9uSW5mbyhzZXRWZXJzaW9uKTtcbiAgfVxuXG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImNhb3NkYi1jb21wLXNlcnZlci12ZXJzaW9uLWluZm9cIj57dmVyc2lvbn08L2Rpdj47XG59XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuICByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuICByZXR1cm4gdGFyZ2V0O1xufSIsImltcG9ydCBpbnZhcmlhbnQgZnJvbSAnaW52YXJpYW50JztcblxudmFyIG5vb3AgPSBmdW5jdGlvbiBub29wKCkge307XG5cbmZ1bmN0aW9uIHJlYWRPbmx5UHJvcFR5cGUoaGFuZGxlciwgbmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHByb3BzLCBwcm9wTmFtZSkge1xuICAgIGlmIChwcm9wc1twcm9wTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFwcm9wc1toYW5kbGVyXSkge1xuICAgICAgICByZXR1cm4gbmV3IEVycm9yKFwiWW91IGhhdmUgcHJvdmlkZWQgYSBgXCIgKyBwcm9wTmFtZSArIFwiYCBwcm9wIHRvIGBcIiArIG5hbWUgKyBcImAgXCIgKyAoXCJ3aXRob3V0IGFuIGBcIiArIGhhbmRsZXIgKyBcImAgaGFuZGxlciBwcm9wLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBcIikgKyAoXCJJZiB0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBcIiArIGRlZmF1bHRLZXkocHJvcE5hbWUpICsgXCJgLiBcIikgKyAoXCJPdGhlcndpc2UsIHNldCBgXCIgKyBoYW5kbGVyICsgXCJgLlwiKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5jb250cm9sbGVkUHJvcFR5cGVzKGNvbnRyb2xsZWRWYWx1ZXMsIGRpc3BsYXlOYW1lKSB7XG4gIHZhciBwcm9wVHlwZXMgPSB7fTtcbiAgT2JqZWN0LmtleXMoY29udHJvbGxlZFZhbHVlcykuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICAgIC8vIGFkZCBkZWZhdWx0IHByb3BUeXBlcyBmb3IgZm9sa3MgdGhhdCB1c2UgcnVudGltZSBjaGVja3NcbiAgICBwcm9wVHlwZXNbZGVmYXVsdEtleShwcm9wKV0gPSBub29wO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBoYW5kbGVyID0gY29udHJvbGxlZFZhbHVlc1twcm9wXTtcbiAgICAgICEodHlwZW9mIGhhbmRsZXIgPT09ICdzdHJpbmcnICYmIGhhbmRsZXIudHJpbSgpLmxlbmd0aCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyBpbnZhcmlhbnQoZmFsc2UsICdVbmNvbnRyb2xsYWJsZSAtIFslc106IHRoZSBwcm9wIGAlc2AgbmVlZHMgYSB2YWxpZCBoYW5kbGVyIGtleSBuYW1lIGluIG9yZGVyIHRvIG1ha2UgaXQgdW5jb250cm9sbGFibGUnLCBkaXNwbGF5TmFtZSwgcHJvcCkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdm9pZCAwO1xuICAgICAgcHJvcFR5cGVzW3Byb3BdID0gcmVhZE9ubHlQcm9wVHlwZShoYW5kbGVyLCBkaXNwbGF5TmFtZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHByb3BUeXBlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3AocHJvcHMsIHByb3ApIHtcbiAgcmV0dXJuIHByb3BzW3Byb3BdICE9PSB1bmRlZmluZWQ7XG59XG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEtleShrZXkpIHtcbiAgcmV0dXJuICdkZWZhdWx0JyArIGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zdWJzdHIoMSk7XG59XG4vKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbkFjY2VwdFJlZihjb21wb25lbnQpIHtcbiAgcmV0dXJuICEhY29tcG9uZW50ICYmICh0eXBlb2YgY29tcG9uZW50ICE9PSAnZnVuY3Rpb24nIHx8IGNvbXBvbmVudC5wcm90b3R5cGUgJiYgY29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn0iLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZVwiO1xuXG5mdW5jdGlvbiBfdG9Qcm9wZXJ0eUtleShhcmcpIHsgdmFyIGtleSA9IF90b1ByaW1pdGl2ZShhcmcsIFwic3RyaW5nXCIpOyByZXR1cm4gdHlwZW9mIGtleSA9PT0gXCJzeW1ib2xcIiA/IGtleSA6IFN0cmluZyhrZXkpOyB9XG5cbmZ1bmN0aW9uIF90b1ByaW1pdGl2ZShpbnB1dCwgaGludCkgeyBpZiAodHlwZW9mIGlucHV0ICE9PSBcIm9iamVjdFwiIHx8IGlucHV0ID09PSBudWxsKSByZXR1cm4gaW5wdXQ7IHZhciBwcmltID0gaW5wdXRbU3ltYm9sLnRvUHJpbWl0aXZlXTsgaWYgKHByaW0gIT09IHVuZGVmaW5lZCkgeyB2YXIgcmVzID0gcHJpbS5jYWxsKGlucHV0LCBoaW50IHx8IFwiZGVmYXVsdFwiKTsgaWYgKHR5cGVvZiByZXMgIT09IFwib2JqZWN0XCIpIHJldHVybiByZXM7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLlwiKTsgfSByZXR1cm4gKGhpbnQgPT09IFwic3RyaW5nXCIgPyBTdHJpbmcgOiBOdW1iZXIpKGlucHV0KTsgfVxuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiB1c2VVbmNvbnRyb2xsZWRQcm9wKHByb3BWYWx1ZSwgZGVmYXVsdFZhbHVlLCBoYW5kbGVyKSB7XG4gIHZhciB3YXNQcm9wUmVmID0gdXNlUmVmKHByb3BWYWx1ZSAhPT0gdW5kZWZpbmVkKTtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoZGVmYXVsdFZhbHVlKSxcbiAgICAgIHN0YXRlVmFsdWUgPSBfdXNlU3RhdGVbMF0sXG4gICAgICBzZXRTdGF0ZSA9IF91c2VTdGF0ZVsxXTtcblxuICB2YXIgaXNQcm9wID0gcHJvcFZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIHZhciB3YXNQcm9wID0gd2FzUHJvcFJlZi5jdXJyZW50O1xuICB3YXNQcm9wUmVmLmN1cnJlbnQgPSBpc1Byb3A7XG4gIC8qKlxuICAgKiBJZiBhIHByb3Agc3dpdGNoZXMgZnJvbSBjb250cm9sbGVkIHRvIFVuY29udHJvbGxlZFxuICAgKiByZXNldCBpdHMgdmFsdWUgdG8gdGhlIGRlZmF1bHRWYWx1ZVxuICAgKi9cblxuICBpZiAoIWlzUHJvcCAmJiB3YXNQcm9wICYmIHN0YXRlVmFsdWUgIT09IGRlZmF1bHRWYWx1ZSkge1xuICAgIHNldFN0YXRlKGRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICByZXR1cm4gW2lzUHJvcCA/IHByb3BWYWx1ZSA6IHN0YXRlVmFsdWUsIHVzZUNhbGxiYWNrKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIGlmIChoYW5kbGVyKSBoYW5kbGVyLmFwcGx5KHZvaWQgMCwgW3ZhbHVlXS5jb25jYXQoYXJncykpO1xuICAgIHNldFN0YXRlKHZhbHVlKTtcbiAgfSwgW2hhbmRsZXJdKV07XG59XG5cbmV4cG9ydCB7IHVzZVVuY29udHJvbGxlZFByb3AgfTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVVuY29udHJvbGxlZChwcm9wcywgY29uZmlnKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhjb25maWcpLnJlZHVjZShmdW5jdGlvbiAocmVzdWx0LCBmaWVsZE5hbWUpIHtcbiAgICB2YXIgX2V4dGVuZHMyO1xuXG4gICAgdmFyIF9yZWYgPSByZXN1bHQsXG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IF9yZWZbVXRpbHMuZGVmYXVsdEtleShmaWVsZE5hbWUpXSxcbiAgICAgICAgcHJvcHNWYWx1ZSA9IF9yZWZbZmllbGROYW1lXSxcbiAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIFtVdGlscy5kZWZhdWx0S2V5KGZpZWxkTmFtZSksIGZpZWxkTmFtZV0ubWFwKF90b1Byb3BlcnR5S2V5KSk7XG5cbiAgICB2YXIgaGFuZGxlck5hbWUgPSBjb25maWdbZmllbGROYW1lXTtcblxuICAgIHZhciBfdXNlVW5jb250cm9sbGVkUHJvcCA9IHVzZVVuY29udHJvbGxlZFByb3AocHJvcHNWYWx1ZSwgZGVmYXVsdFZhbHVlLCBwcm9wc1toYW5kbGVyTmFtZV0pLFxuICAgICAgICB2YWx1ZSA9IF91c2VVbmNvbnRyb2xsZWRQcm9wWzBdLFxuICAgICAgICBoYW5kbGVyID0gX3VzZVVuY29udHJvbGxlZFByb3BbMV07XG5cbiAgICByZXR1cm4gX2V4dGVuZHMoe30sIHJlc3QsIChfZXh0ZW5kczIgPSB7fSwgX2V4dGVuZHMyW2ZpZWxkTmFtZV0gPSB2YWx1ZSwgX2V4dGVuZHMyW2hhbmRsZXJOYW1lXSA9IGhhbmRsZXIsIF9leHRlbmRzMikpO1xuICB9LCBwcm9wcyk7XG59IiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIENyZWF0ZXMgYSBgUmVmYCB3aG9zZSB2YWx1ZSBpcyB1cGRhdGVkIGluIGFuIGVmZmVjdCwgZW5zdXJpbmcgdGhlIG1vc3QgcmVjZW50XG4gKiB2YWx1ZSBpcyB0aGUgb25lIHJlbmRlcmVkIHdpdGguIEdlbmVyYWxseSBvbmx5IHJlcXVpcmVkIGZvciBDb25jdXJyZW50IG1vZGUgdXNhZ2VcbiAqIHdoZXJlIHByZXZpb3VzIHdvcmsgaW4gYHJlbmRlcigpYCBtYXkgYmUgZGlzY2FyZGVkIGJlZm9yZSBiZWluZyB1c2VkLlxuICpcbiAqIFRoaXMgaXMgc2FmZSB0byBhY2Nlc3MgaW4gYW4gZXZlbnQgaGFuZGxlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGBSZWZgIHZhbHVlXG4gKi9cblxuZnVuY3Rpb24gdXNlQ29tbWl0dGVkUmVmKHZhbHVlKSB7XG4gIHZhciByZWYgPSB1c2VSZWYodmFsdWUpO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gIH0sIFt2YWx1ZV0pO1xuICByZXR1cm4gcmVmO1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VDb21taXR0ZWRSZWY7IiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29tbWl0dGVkUmVmIGZyb20gJy4vdXNlQ29tbWl0dGVkUmVmJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUV2ZW50Q2FsbGJhY2soZm4pIHtcbiAgdmFyIHJlZiA9IHVzZUNvbW1pdHRlZFJlZihmbik7XG4gIHJldHVybiB1c2VDYWxsYmFjayhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlZi5jdXJyZW50ICYmIHJlZi5jdXJyZW50LmFwcGx5KHJlZiwgYXJndW1lbnRzKTtcbiAgfSwgW3JlZl0pO1xufSIsImltcG9ydCB7IHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBUcmFjayB3aGV0aGVyIGEgY29tcG9uZW50IGlzIGN1cnJlbnQgbW91bnRlZC4gR2VuZXJhbGx5IGxlc3MgcHJlZmVyYWJsZSB0aGFuXG4gKiBwcm9wZXJsbHkgY2FuY2VsaW5nIGVmZmVjdHMgc28gdGhleSBkb24ndCBydW4gYWZ0ZXIgYSBjb21wb25lbnQgaXMgdW5tb3VudGVkLFxuICogYnV0IGhlbHBmdWwgaW4gY2FzZXMgd2hlcmUgdGhhdCBpc24ndCBmZWFzaWJsZSwgc3VjaCBhcyBhIGBQcm9taXNlYCByZXNvbHV0aW9uLlxuICpcbiAqIEByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjdXJyZW50IGlzTW91bnRlZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlKG51bGwpXG4gKiBjb25zdCBpc01vdW50ZWQgPSB1c2VNb3VudGVkKClcbiAqXG4gKiB1c2VFZmZlY3QoKCkgPT4ge1xuICogICBmZXRjaGRhdGEoKS50aGVuKChuZXdEYXRhKSA9PiB7XG4gKiAgICAgIGlmIChpc01vdW50ZWQoKSkge1xuICogICAgICAgIHNldERhdGEobmV3RGF0YSk7XG4gKiAgICAgIH1cbiAqICAgfSlcbiAqIH0pXG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VNb3VudGVkKCkge1xuICB2YXIgbW91bnRlZCA9IHVzZVJlZih0cnVlKTtcbiAgdmFyIGlzTW91bnRlZCA9IHVzZVJlZihmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG1vdW50ZWQuY3VycmVudDtcbiAgfSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgbW91bnRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgbW91bnRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW10pO1xuICByZXR1cm4gaXNNb3VudGVkLmN1cnJlbnQ7XG59IiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFN0b3JlIHRoZSBsYXN0IG9mIHNvbWUgdmFsdWUuIFRyYWNrZWQgdmlhIGEgYFJlZmAgb25seSB1cGRhdGluZyBpdFxuICogYWZ0ZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzLlxuICpcbiAqIEhlbHBmdWwgaWYgeW91IG5lZWQgdG8gY29tcGFyZSBhIHByb3AgdmFsdWUgdG8gaXQncyBwcmV2aW91cyB2YWx1ZSBkdXJpbmcgcmVuZGVyLlxuICpcbiAqIGBgYHRzXG4gKiBmdW5jdGlvbiBDb21wb25lbnQocHJvcHMpIHtcbiAqICAgY29uc3QgbGFzdFByb3BzID0gdXNlUHJldmlvdXMocHJvcHMpXG4gKlxuICogICBpZiAobGFzdFByb3BzLmZvbyAhPT0gcHJvcHMuZm9vKVxuICogICAgIHJlc2V0VmFsdWVGcm9tUHJvcHMocHJvcHMuZm9vKVxuICogfVxuICogYGBgXG4gKlxuICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byB0cmFja1xuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVByZXZpb3VzKHZhbHVlKSB7XG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfSk7XG4gIHJldHVybiByZWYuY3VycmVudDtcbn0iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbnZhciBpc1JlYWN0TmF0aXZlID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgLy8gQHRzLWlnbm9yZVxuZ2xvYmFsLm5hdmlnYXRvciAmJiAvLyBAdHMtaWdub3JlXG5nbG9iYWwubmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZSc7XG52YXIgaXNET00gPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuLyoqXG4gKiBJcyBgdXNlTGF5b3V0RWZmZWN0YCBpbiBhIERPTSBvciBSZWFjdCBOYXRpdmUgZW52aXJvbm1lbnQsIG90aGVyd2lzZSByZXNvbHZlcyB0byB1c2VFZmZlY3RcbiAqIE9ubHkgdXNlZnVsIHRvIGF2b2lkIHRoZSBjb25zb2xlIHdhcm5pbmcuXG4gKlxuICogUFJFRkVSIGB1c2VFZmZlY3RgIFVOTEVTUyBZT1UgS05PVyBXSEFUIFlPVSBBUkUgRE9JTkcuXG4gKlxuICogQGNhdGVnb3J5IGVmZmVjdHNcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBpc0RPTSB8fCBpc1JlYWN0TmF0aXZlID8gdXNlTGF5b3V0RWZmZWN0IDogdXNlRWZmZWN0OyIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUVmZmVjdCBmcm9tICcuL3VzZUlzb21vcnBoaWNFZmZlY3QnO1xudmFyIHRhcmdldE1hcCA9IG5ldyBXZWFrTWFwKCk7XG52YXIgcmVzaXplT2JzZXJ2ZXI7XG5cbmZ1bmN0aW9uIGdldFJlc2l6ZU9ic2VydmVyKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmV0dXJuLWFzc2lnblxuICByZXR1cm4gcmVzaXplT2JzZXJ2ZXIgPSByZXNpemVPYnNlcnZlciB8fCBuZXcgd2luZG93LlJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgdmFyIGhhbmRsZXIgPSB0YXJnZXRNYXAuZ2V0KGVudHJ5LnRhcmdldCk7XG4gICAgICBpZiAoaGFuZGxlcikgaGFuZGxlcihlbnRyeS5jb250ZW50UmVjdCk7XG4gICAgfSk7XG4gIH0pO1xufVxuLyoqXG4gKiBFZmZpY2llbnRseSBvYnNlcnZlIHNpemUgY2hhbmdlcyBvbiBhbiBlbGVtZW50LiBEZXBlbmRzIG9uIHRoZSBgUmVzaXplT2JzZXJ2ZXJgIGFwaSxcbiAqIGFuZCBwb2x5ZmlsbHMgYXJlIG5lZWRlZCBpbiBvbGRlciBicm93c2Vycy5cbiAqXG4gKiBgYGB0c1xuICogY29uc3QgW3JlZiwgYXR0YWNoUmVmXSA9IHVzZUNhbGxiYWNrUmVmKG51bGwpO1xuICpcbiAqIGNvbnN0IHJlY3QgPSB1c2VSZXNpemVPYnNlcnZlcihyZWYpO1xuICpcbiAqIHJldHVybiAoXG4gKiAgPGRpdiByZWY9e2F0dGFjaFJlZn0+XG4gKiAgICB7SlNPTi5zdHJpbmdpZnkocmVjdCl9XG4gKiAgPC9kaXY+XG4gKiApXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgRE9NIGVsZW1lbnQgdG8gb2JzZXJ2ZVxuICovXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUmVzaXplT2JzZXJ2ZXIoZWxlbWVudCkge1xuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUobnVsbCksXG4gICAgICByZWN0ID0gX3VzZVN0YXRlWzBdLFxuICAgICAgc2V0UmVjdCA9IF91c2VTdGF0ZVsxXTtcblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xuICAgIGdldFJlc2l6ZU9ic2VydmVyKCkub2JzZXJ2ZShlbGVtZW50KTtcbiAgICBzZXRSZWN0KGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgIHRhcmdldE1hcC5zZXQoZWxlbWVudCwgZnVuY3Rpb24gKHJlY3QpIHtcbiAgICAgIHNldFJlY3QocmVjdCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRhcmdldE1hcC5kZWxldGUoZWxlbWVudCk7XG4gICAgfTtcbiAgfSwgW2VsZW1lbnRdKTtcbiAgcmV0dXJuIHJlY3Q7XG59IiwiY29uc3QgX2V4Y2x1ZGVkID0gW1wiYXNcIiwgXCJkaXNhYmxlZFwiXTtcbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5leHBvcnQgZnVuY3Rpb24gaXNUcml2aWFsSHJlZihocmVmKSB7XG4gIHJldHVybiAhaHJlZiB8fCBocmVmLnRyaW0oKSA9PT0gJyMnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUJ1dHRvblByb3BzKHtcbiAgdGFnTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGhyZWYsXG4gIHRhcmdldCxcbiAgcmVsLFxuICByb2xlLFxuICBvbkNsaWNrLFxuICB0YWJJbmRleCA9IDAsXG4gIHR5cGVcbn0pIHtcbiAgaWYgKCF0YWdOYW1lKSB7XG4gICAgaWYgKGhyZWYgIT0gbnVsbCB8fCB0YXJnZXQgIT0gbnVsbCB8fCByZWwgIT0gbnVsbCkge1xuICAgICAgdGFnTmFtZSA9ICdhJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGFnTmFtZSA9ICdidXR0b24nO1xuICAgIH1cbiAgfVxuICBjb25zdCBtZXRhID0ge1xuICAgIHRhZ05hbWVcbiAgfTtcbiAgaWYgKHRhZ05hbWUgPT09ICdidXR0b24nKSB7XG4gICAgcmV0dXJuIFt7XG4gICAgICB0eXBlOiB0eXBlIHx8ICdidXR0b24nLFxuICAgICAgZGlzYWJsZWRcbiAgICB9LCBtZXRhXTtcbiAgfVxuICBjb25zdCBoYW5kbGVDbGljayA9IGV2ZW50ID0+IHtcbiAgICBpZiAoZGlzYWJsZWQgfHwgdGFnTmFtZSA9PT0gJ2EnICYmIGlzVHJpdmlhbEhyZWYoaHJlZikpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG9uQ2xpY2sgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2xpY2soZXZlbnQpO1xuICB9O1xuICBjb25zdCBoYW5kbGVLZXlEb3duID0gZXZlbnQgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUNsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH07XG4gIGlmICh0YWdOYW1lID09PSAnYScpIHtcbiAgICAvLyBFbnN1cmUgdGhlcmUncyBhIGhyZWYgc28gRW50ZXIgY2FuIHRyaWdnZXIgYW5jaG9yIGJ1dHRvbi5cbiAgICBocmVmIHx8IChocmVmID0gJyMnKTtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIGhyZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBbe1xuICAgIHJvbGU6IHJvbGUgIT0gbnVsbCA/IHJvbGUgOiAnYnV0dG9uJyxcbiAgICAvLyBleHBsaWNpdGx5IHVuZGVmaW5lZCBzbyB0aGF0IGl0IG92ZXJyaWRlcyB0aGUgcHJvcHMgZGlzYWJsZWQgaW4gYSBzcHJlYWRcbiAgICAvLyBlLmcuIDxUYWcgey4uLnByb3BzfSB7Li4uaG9va1Byb3BzfSAvPlxuICAgIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gICAgdGFiSW5kZXg6IGRpc2FibGVkID8gdW5kZWZpbmVkIDogdGFiSW5kZXgsXG4gICAgaHJlZixcbiAgICB0YXJnZXQ6IHRhZ05hbWUgPT09ICdhJyA/IHRhcmdldCA6IHVuZGVmaW5lZCxcbiAgICAnYXJpYS1kaXNhYmxlZCc6ICFkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGRpc2FibGVkLFxuICAgIHJlbDogdGFnTmFtZSA9PT0gJ2EnID8gcmVsIDogdW5kZWZpbmVkLFxuICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93blxuICB9LCBtZXRhXTtcbn1cbmNvbnN0IEJ1dHRvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKChfcmVmLCByZWYpID0+IHtcbiAgbGV0IHtcbiAgICAgIGFzOiBhc1Byb3AsXG4gICAgICBkaXNhYmxlZFxuICAgIH0gPSBfcmVmLFxuICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3JlZiwgX2V4Y2x1ZGVkKTtcbiAgY29uc3QgW2J1dHRvblByb3BzLCB7XG4gICAgdGFnTmFtZTogQ29tcG9uZW50XG4gIH1dID0gdXNlQnV0dG9uUHJvcHMoT2JqZWN0LmFzc2lnbih7XG4gICAgdGFnTmFtZTogYXNQcm9wLFxuICAgIGRpc2FibGVkXG4gIH0sIHByb3BzKSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCBidXR0b25Qcm9wcywge1xuICAgIHJlZjogcmVmXG4gIH0pKTtcbn0pO1xuQnV0dG9uLmRpc3BsYXlOYW1lID0gJ0J1dHRvbic7XG5leHBvcnQgZGVmYXVsdCBCdXR0b247IiwiY29uc3QgX2V4Y2x1ZGVkID0gW1wib25LZXlEb3duXCJdO1xuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7IHZhciBrZXksIGk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZUtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gcmV0dXJuIHRhcmdldDsgfVxuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9hbmNob3ItaGFzLWNvbnRlbnQgKi9cblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0ByZXN0YXJ0L2hvb2tzJztcbmltcG9ydCB7IHVzZUJ1dHRvblByb3BzIH0gZnJvbSAnLi9CdXR0b24nO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmV4cG9ydCBmdW5jdGlvbiBpc1RyaXZpYWxIcmVmKGhyZWYpIHtcbiAgcmV0dXJuICFocmVmIHx8IGhyZWYudHJpbSgpID09PSAnIyc7XG59XG4vKipcbiAqIEFuIGdlbmVyaWMgYDxhPmAgY29tcG9uZW50IHRoYXQgY292ZXJzIGEgZmV3IEExMXkgY2FzZXMsIGVuc3VyaW5nIHRoYXRcbiAqIGNhc2VzIHdoZXJlIHRoZSBgaHJlZmAgaXMgbWlzc2luZyBvciB0cml2aWFsIGxpa2UgXCIjXCIgYXJlIHRyZWF0ZWQgbGlrZSBidXR0b25zLlxuICovXG5jb25zdCBBbmNob3IgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigoX3JlZiwgcmVmKSA9PiB7XG4gIGxldCB7XG4gICAgICBvbktleURvd25cbiAgICB9ID0gX3JlZixcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG4gIGNvbnN0IFtidXR0b25Qcm9wc10gPSB1c2VCdXR0b25Qcm9wcyhPYmplY3QuYXNzaWduKHtcbiAgICB0YWdOYW1lOiAnYSdcbiAgfSwgcHJvcHMpKTtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soZSA9PiB7XG4gICAgYnV0dG9uUHJvcHMub25LZXlEb3duKGUpO1xuICAgIG9uS2V5RG93biA9PSBudWxsID8gdm9pZCAwIDogb25LZXlEb3duKGUpO1xuICB9KTtcbiAgaWYgKGlzVHJpdmlhbEhyZWYocHJvcHMuaHJlZikgfHwgcHJvcHMucm9sZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL19qc3goXCJhXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgICAgcmVmOiByZWZcbiAgICB9LCBwcm9wcywgYnV0dG9uUHJvcHMsIHtcbiAgICAgIG9uS2V5RG93bjogaGFuZGxlS2V5RG93blxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goXCJhXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgIHJlZjogcmVmXG4gIH0sIHByb3BzLCB7XG4gICAgb25LZXlEb3duOiBvbktleURvd25cbiAgfSkpO1xufSk7XG5BbmNob3IuZGlzcGxheU5hbWUgPSAnQW5jaG9yJztcbmV4cG9ydCBkZWZhdWx0IEFuY2hvcjsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JSRUFLUE9JTlRTID0gWyd4eGwnLCAneGwnLCAnbGcnLCAnbWQnLCAnc20nLCAneHMnXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9CUkVBS1BPSU5UID0gJ3hzJztcbmNvbnN0IFRoZW1lQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgcHJlZml4ZXM6IHt9LFxuICBicmVha3BvaW50czogREVGQVVMVF9CUkVBS1BPSU5UUyxcbiAgbWluQnJlYWtwb2ludDogREVGQVVMVF9NSU5fQlJFQUtQT0lOVFxufSk7XG5jb25zdCB7XG4gIENvbnN1bWVyLFxuICBQcm92aWRlclxufSA9IFRoZW1lQ29udGV4dDtcbmZ1bmN0aW9uIFRoZW1lUHJvdmlkZXIoe1xuICBwcmVmaXhlcyA9IHt9LFxuICBicmVha3BvaW50cyA9IERFRkFVTFRfQlJFQUtQT0lOVFMsXG4gIG1pbkJyZWFrcG9pbnQgPSBERUZBVUxUX01JTl9CUkVBS1BPSU5ULFxuICBkaXIsXG4gIGNoaWxkcmVuXG59KSB7XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICBwcmVmaXhlczoge1xuICAgICAgLi4ucHJlZml4ZXNcbiAgICB9LFxuICAgIGJyZWFrcG9pbnRzLFxuICAgIG1pbkJyZWFrcG9pbnQsXG4gICAgZGlyXG4gIH0pLCBbcHJlZml4ZXMsIGJyZWFrcG9pbnRzLCBtaW5CcmVha3BvaW50LCBkaXJdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KFByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGNvbnRleHRWYWx1ZSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5cbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlQm9vdHN0cmFwUHJlZml4KHByZWZpeCwgZGVmYXVsdFByZWZpeCkge1xuICBjb25zdCB7XG4gICAgcHJlZml4ZXNcbiAgfSA9IHVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbiAgcmV0dXJuIHByZWZpeCB8fCBwcmVmaXhlc1tkZWZhdWx0UHJlZml4XSB8fCBkZWZhdWx0UHJlZml4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUJvb3RzdHJhcEJyZWFrcG9pbnRzKCkge1xuICBjb25zdCB7XG4gICAgYnJlYWtwb2ludHNcbiAgfSA9IHVzZUNvbnRleHQoVGhlbWVDb250ZXh0KTtcbiAgcmV0dXJuIGJyZWFrcG9pbnRzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUJvb3RzdHJhcE1pbkJyZWFrcG9pbnQoKSB7XG4gIGNvbnN0IHtcbiAgICBtaW5CcmVha3BvaW50XG4gIH0gPSB1c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG4gIHJldHVybiBtaW5CcmVha3BvaW50O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUlzUlRMKCkge1xuICBjb25zdCB7XG4gICAgZGlyXG4gIH0gPSB1c2VDb250ZXh0KFRoZW1lQ29udGV4dCk7XG4gIHJldHVybiBkaXIgPT09ICdydGwnO1xufVxuZnVuY3Rpb24gY3JlYXRlQm9vdHN0cmFwQ29tcG9uZW50KENvbXBvbmVudCwgb3B0cykge1xuICBpZiAodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKSBvcHRzID0ge1xuICAgIHByZWZpeDogb3B0c1xuICB9O1xuICBjb25zdCBpc0NsYXNzeSA9IENvbXBvbmVudC5wcm90b3R5cGUgJiYgQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50O1xuICAvLyBJZiBpdCdzIGEgZnVuY3Rpb25hbCBjb21wb25lbnQgbWFrZSBzdXJlIHdlIGRvbid0IGJyZWFrIGl0IHdpdGggYSByZWZcbiAgY29uc3Qge1xuICAgIHByZWZpeCxcbiAgICBmb3J3YXJkUmVmQXMgPSBpc0NsYXNzeSA/ICdyZWYnIDogJ2lubmVyUmVmJ1xuICB9ID0gb3B0cztcbiAgY29uc3QgV3JhcHBlZCA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gICAgLi4ucHJvcHNcbiAgfSwgcmVmKSA9PiB7XG4gICAgcHJvcHNbZm9yd2FyZFJlZkFzXSA9IHJlZjtcbiAgICBjb25zdCBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChwcm9wcy5ic1ByZWZpeCwgcHJlZml4KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL19qc3goQ29tcG9uZW50LCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGJzUHJlZml4OiBic1ByZWZpeFxuICAgIH0pO1xuICB9KTtcbiAgV3JhcHBlZC5kaXNwbGF5TmFtZSA9IGBCb290c3RyYXAoJHtDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWV9KWA7XG4gIHJldHVybiBXcmFwcGVkO1xufVxuZXhwb3J0IHsgY3JlYXRlQm9vdHN0cmFwQ29tcG9uZW50LCBDb25zdW1lciBhcyBUaGVtZUNvbnN1bWVyIH07XG5leHBvcnQgZGVmYXVsdCBUaGVtZVByb3ZpZGVyOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCkgOiBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGRlZmF1bHQgUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTsiLCJpbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2VcIjtcbmltcG9ydCBfaW5oZXJpdHNMb29zZSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNMb29zZVwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgdGltZW91dHNTaGFwZSB9IGZyb20gJy4vdXRpbHMvUHJvcFR5cGVzJztcbmltcG9ydCBUcmFuc2l0aW9uR3JvdXBDb250ZXh0IGZyb20gJy4vVHJhbnNpdGlvbkdyb3VwQ29udGV4dCc7XG5pbXBvcnQgeyBmb3JjZVJlZmxvdyB9IGZyb20gJy4vdXRpbHMvcmVmbG93JztcbmV4cG9ydCB2YXIgVU5NT1VOVEVEID0gJ3VubW91bnRlZCc7XG5leHBvcnQgdmFyIEVYSVRFRCA9ICdleGl0ZWQnO1xuZXhwb3J0IHZhciBFTlRFUklORyA9ICdlbnRlcmluZyc7XG5leHBvcnQgdmFyIEVOVEVSRUQgPSAnZW50ZXJlZCc7XG5leHBvcnQgdmFyIEVYSVRJTkcgPSAnZXhpdGluZyc7XG4vKipcbiAqIFRoZSBUcmFuc2l0aW9uIGNvbXBvbmVudCBsZXRzIHlvdSBkZXNjcmliZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgY29tcG9uZW50XG4gKiBzdGF0ZSB0byBhbm90aGVyIF9vdmVyIHRpbWVfIHdpdGggYSBzaW1wbGUgZGVjbGFyYXRpdmUgQVBJLiBNb3N0IGNvbW1vbmx5XG4gKiBpdCdzIHVzZWQgdG8gYW5pbWF0ZSB0aGUgbW91bnRpbmcgYW5kIHVubW91bnRpbmcgb2YgYSBjb21wb25lbnQsIGJ1dCBjYW4gYWxzb1xuICogYmUgdXNlZCB0byBkZXNjcmliZSBpbi1wbGFjZSB0cmFuc2l0aW9uIHN0YXRlcyBhcyB3ZWxsLlxuICpcbiAqIC0tLVxuICpcbiAqICoqTm90ZSoqOiBgVHJhbnNpdGlvbmAgaXMgYSBwbGF0Zm9ybS1hZ25vc3RpYyBiYXNlIGNvbXBvbmVudC4gSWYgeW91J3JlIHVzaW5nXG4gKiB0cmFuc2l0aW9ucyBpbiBDU1MsIHlvdSdsbCBwcm9iYWJseSB3YW50IHRvIHVzZVxuICogW2BDU1NUcmFuc2l0aW9uYF0oaHR0cHM6Ly9yZWFjdGNvbW11bml0eS5vcmcvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9jc3MtdHJhbnNpdGlvbilcbiAqIGluc3RlYWQuIEl0IGluaGVyaXRzIGFsbCB0aGUgZmVhdHVyZXMgb2YgYFRyYW5zaXRpb25gLCBidXQgY29udGFpbnNcbiAqIGFkZGl0aW9uYWwgZmVhdHVyZXMgbmVjZXNzYXJ5IHRvIHBsYXkgbmljZSB3aXRoIENTUyB0cmFuc2l0aW9ucyAoaGVuY2UgdGhlXG4gKiBuYW1lIG9mIHRoZSBjb21wb25lbnQpLlxuICpcbiAqIC0tLVxuICpcbiAqIEJ5IGRlZmF1bHQgdGhlIGBUcmFuc2l0aW9uYCBjb21wb25lbnQgZG9lcyBub3QgYWx0ZXIgdGhlIGJlaGF2aW9yIG9mIHRoZVxuICogY29tcG9uZW50IGl0IHJlbmRlcnMsIGl0IG9ubHkgdHJhY2tzIFwiZW50ZXJcIiBhbmQgXCJleGl0XCIgc3RhdGVzIGZvciB0aGVcbiAqIGNvbXBvbmVudHMuIEl0J3MgdXAgdG8geW91IHRvIGdpdmUgbWVhbmluZyBhbmQgZWZmZWN0IHRvIHRob3NlIHN0YXRlcy4gRm9yXG4gKiBleGFtcGxlIHdlIGNhbiBhZGQgc3R5bGVzIHRvIGEgY29tcG9uZW50IHdoZW4gaXQgZW50ZXJzIG9yIGV4aXRzOlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAnO1xuICpcbiAqIGNvbnN0IGR1cmF0aW9uID0gMzAwO1xuICpcbiAqIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAqICAgdHJhbnNpdGlvbjogYG9wYWNpdHkgJHtkdXJhdGlvbn1tcyBlYXNlLWluLW91dGAsXG4gKiAgIG9wYWNpdHk6IDAsXG4gKiB9XG4gKlxuICogY29uc3QgdHJhbnNpdGlvblN0eWxlcyA9IHtcbiAqICAgZW50ZXJpbmc6IHsgb3BhY2l0eTogMSB9LFxuICogICBlbnRlcmVkOiAgeyBvcGFjaXR5OiAxIH0sXG4gKiAgIGV4aXRpbmc6ICB7IG9wYWNpdHk6IDAgfSxcbiAqICAgZXhpdGVkOiAgeyBvcGFjaXR5OiAwIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IEZhZGUgPSAoeyBpbjogaW5Qcm9wIH0pID0+IChcbiAqICAgPFRyYW5zaXRpb24gaW49e2luUHJvcH0gdGltZW91dD17ZHVyYXRpb259PlxuICogICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICA8ZGl2IHN0eWxlPXt7XG4gKiAgICAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAqICAgICAgICAgLi4udHJhbnNpdGlvblN0eWxlc1tzdGF0ZV1cbiAqICAgICAgIH19PlxuICogICAgICAgICBJJ20gYSBmYWRlIFRyYW5zaXRpb24hXG4gKiAgICAgICA8L2Rpdj5cbiAqICAgICApfVxuICogICA8L1RyYW5zaXRpb24+XG4gKiApO1xuICogYGBgXG4gKlxuICogVGhlcmUgYXJlIDQgbWFpbiBzdGF0ZXMgYSBUcmFuc2l0aW9uIGNhbiBiZSBpbjpcbiAqICAtIGAnZW50ZXJpbmcnYFxuICogIC0gYCdlbnRlcmVkJ2BcbiAqICAtIGAnZXhpdGluZydgXG4gKiAgLSBgJ2V4aXRlZCdgXG4gKlxuICogVHJhbnNpdGlvbiBzdGF0ZSBpcyB0b2dnbGVkIHZpYSB0aGUgYGluYCBwcm9wLiBXaGVuIGB0cnVlYCB0aGUgY29tcG9uZW50XG4gKiBiZWdpbnMgdGhlIFwiRW50ZXJcIiBzdGFnZS4gRHVyaW5nIHRoaXMgc3RhZ2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCBmcm9tXG4gKiBpdHMgY3VycmVudCB0cmFuc2l0aW9uIHN0YXRlLCB0byBgJ2VudGVyaW5nJ2AgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGVcbiAqIHRyYW5zaXRpb24gYW5kIHRoZW4gdG8gdGhlIGAnZW50ZXJlZCdgIHN0YWdlIG9uY2UgaXQncyBjb21wbGV0ZS4gTGV0J3MgdGFrZVxuICogdGhlIGZvbGxvd2luZyBleGFtcGxlICh3ZSdsbCB1c2UgdGhlXG4gKiBbdXNlU3RhdGVdKGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1yZWZlcmVuY2UuaHRtbCN1c2VzdGF0ZSkgaG9vayk6XG4gKlxuICogYGBganN4XG4gKiBmdW5jdGlvbiBBcHAoKSB7XG4gKiAgIGNvbnN0IFtpblByb3AsIHNldEluUHJvcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gKiAgIHJldHVybiAoXG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxUcmFuc2l0aW9uIGluPXtpblByb3B9IHRpbWVvdXQ9ezUwMH0+XG4gKiAgICAgICAgIHtzdGF0ZSA9PiAoXG4gKiAgICAgICAgICAgLy8gLi4uXG4gKiAgICAgICAgICl9XG4gKiAgICAgICA8L1RyYW5zaXRpb24+XG4gKiAgICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHNldEluUHJvcCh0cnVlKX0+XG4gKiAgICAgICAgIENsaWNrIHRvIEVudGVyXG4gKiAgICAgICA8L2J1dHRvbj5cbiAqICAgICA8L2Rpdj5cbiAqICAgKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIHRoZSBjb21wb25lbnQgd2lsbCBzaGlmdCB0byB0aGUgYCdlbnRlcmluZydgIHN0YXRlXG4gKiBhbmQgc3RheSB0aGVyZSBmb3IgNTAwbXMgKHRoZSB2YWx1ZSBvZiBgdGltZW91dGApIGJlZm9yZSBpdCBmaW5hbGx5IHN3aXRjaGVzXG4gKiB0byBgJ2VudGVyZWQnYC5cbiAqXG4gKiBXaGVuIGBpbmAgaXMgYGZhbHNlYCB0aGUgc2FtZSB0aGluZyBoYXBwZW5zIGV4Y2VwdCB0aGUgc3RhdGUgbW92ZXMgZnJvbVxuICogYCdleGl0aW5nJ2AgdG8gYCdleGl0ZWQnYC5cbiAqL1xuXG52YXIgVHJhbnNpdGlvbiA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHNMb29zZShUcmFuc2l0aW9uLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUcmFuc2l0aW9uKHByb3BzLCBjb250ZXh0KSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX3RoaXMgPSBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpIHx8IHRoaXM7XG4gICAgdmFyIHBhcmVudEdyb3VwID0gY29udGV4dDsgLy8gSW4gdGhlIGNvbnRleHQgb2YgYSBUcmFuc2l0aW9uR3JvdXAgYWxsIGVudGVycyBhcmUgcmVhbGx5IGFwcGVhcnNcblxuICAgIHZhciBhcHBlYXIgPSBwYXJlbnRHcm91cCAmJiAhcGFyZW50R3JvdXAuaXNNb3VudGluZyA/IHByb3BzLmVudGVyIDogcHJvcHMuYXBwZWFyO1xuICAgIHZhciBpbml0aWFsU3RhdHVzO1xuICAgIF90aGlzLmFwcGVhclN0YXR1cyA9IG51bGw7XG5cbiAgICBpZiAocHJvcHMuaW4pIHtcbiAgICAgIGlmIChhcHBlYXIpIHtcbiAgICAgICAgaW5pdGlhbFN0YXR1cyA9IEVYSVRFRDtcbiAgICAgICAgX3RoaXMuYXBwZWFyU3RhdHVzID0gRU5URVJJTkc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gRU5URVJFRDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb3BzLnVubW91bnRPbkV4aXQgfHwgcHJvcHMubW91bnRPbkVudGVyKSB7XG4gICAgICAgIGluaXRpYWxTdGF0dXMgPSBVTk1PVU5URUQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbml0aWFsU3RhdHVzID0gRVhJVEVEO1xuICAgICAgfVxuICAgIH1cblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgc3RhdHVzOiBpbml0aWFsU3RhdHVzXG4gICAgfTtcbiAgICBfdGhpcy5uZXh0Q2FsbGJhY2sgPSBudWxsO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIFRyYW5zaXRpb24uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHByZXZTdGF0ZSkge1xuICAgIHZhciBuZXh0SW4gPSBfcmVmLmluO1xuXG4gICAgaWYgKG5leHRJbiAmJiBwcmV2U3RhdGUuc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogRVhJVEVEXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9IC8vIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKHByZXZQcm9wcykge1xuICAvLyAgIGxldCBuZXh0U3RhdHVzID0gbnVsbFxuICAvLyAgIGlmIChwcmV2UHJvcHMgIT09IHRoaXMucHJvcHMpIHtcbiAgLy8gICAgIGNvbnN0IHsgc3RhdHVzIH0gPSB0aGlzLnN0YXRlXG4gIC8vICAgICBpZiAodGhpcy5wcm9wcy5pbikge1xuICAvLyAgICAgICBpZiAoc3RhdHVzICE9PSBFTlRFUklORyAmJiBzdGF0dXMgIT09IEVOVEVSRUQpIHtcbiAgLy8gICAgICAgICBuZXh0U3RhdHVzID0gRU5URVJJTkdcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgaWYgKHN0YXR1cyA9PT0gRU5URVJJTkcgfHwgc3RhdHVzID09PSBFTlRFUkVEKSB7XG4gIC8vICAgICAgICAgbmV4dFN0YXR1cyA9IEVYSVRJTkdcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gICByZXR1cm4geyBuZXh0U3RhdHVzIH1cbiAgLy8gfVxuICA7XG5cbiAgdmFyIF9wcm90byA9IFRyYW5zaXRpb24ucHJvdG90eXBlO1xuXG4gIF9wcm90by5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdHVzKHRydWUsIHRoaXMuYXBwZWFyU3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50RGlkVXBkYXRlID0gZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHZhciBuZXh0U3RhdHVzID0gbnVsbDtcblxuICAgIGlmIChwcmV2UHJvcHMgIT09IHRoaXMucHJvcHMpIHtcbiAgICAgIHZhciBzdGF0dXMgPSB0aGlzLnN0YXRlLnN0YXR1cztcblxuICAgICAgaWYgKHRoaXMucHJvcHMuaW4pIHtcbiAgICAgICAgaWYgKHN0YXR1cyAhPT0gRU5URVJJTkcgJiYgc3RhdHVzICE9PSBFTlRFUkVEKSB7XG4gICAgICAgICAgbmV4dFN0YXR1cyA9IEVOVEVSSU5HO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhdHVzID09PSBFTlRFUklORyB8fCBzdGF0dXMgPT09IEVOVEVSRUQpIHtcbiAgICAgICAgICBuZXh0U3RhdHVzID0gRVhJVElORztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudXBkYXRlU3RhdHVzKGZhbHNlLCBuZXh0U3RhdHVzKTtcbiAgfTtcblxuICBfcHJvdG8uY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmNhbmNlbE5leHRDYWxsYmFjaygpO1xuICB9O1xuXG4gIF9wcm90by5nZXRUaW1lb3V0cyA9IGZ1bmN0aW9uIGdldFRpbWVvdXRzKCkge1xuICAgIHZhciB0aW1lb3V0ID0gdGhpcy5wcm9wcy50aW1lb3V0O1xuICAgIHZhciBleGl0LCBlbnRlciwgYXBwZWFyO1xuICAgIGV4aXQgPSBlbnRlciA9IGFwcGVhciA9IHRpbWVvdXQ7XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsICYmIHR5cGVvZiB0aW1lb3V0ICE9PSAnbnVtYmVyJykge1xuICAgICAgZXhpdCA9IHRpbWVvdXQuZXhpdDtcbiAgICAgIGVudGVyID0gdGltZW91dC5lbnRlcjsgLy8gVE9ETzogcmVtb3ZlIGZhbGxiYWNrIGZvciBuZXh0IG1ham9yXG5cbiAgICAgIGFwcGVhciA9IHRpbWVvdXQuYXBwZWFyICE9PSB1bmRlZmluZWQgPyB0aW1lb3V0LmFwcGVhciA6IGVudGVyO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBleGl0OiBleGl0LFxuICAgICAgZW50ZXI6IGVudGVyLFxuICAgICAgYXBwZWFyOiBhcHBlYXJcbiAgICB9O1xuICB9O1xuXG4gIF9wcm90by51cGRhdGVTdGF0dXMgPSBmdW5jdGlvbiB1cGRhdGVTdGF0dXMobW91bnRpbmcsIG5leHRTdGF0dXMpIHtcbiAgICBpZiAobW91bnRpbmcgPT09IHZvaWQgMCkge1xuICAgICAgbW91bnRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAobmV4dFN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgLy8gbmV4dFN0YXR1cyB3aWxsIGFsd2F5cyBiZSBFTlRFUklORyBvciBFWElUSU5HLlxuICAgICAgdGhpcy5jYW5jZWxOZXh0Q2FsbGJhY2soKTtcblxuICAgICAgaWYgKG5leHRTdGF0dXMgPT09IEVOVEVSSU5HKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgfHwgdGhpcy5wcm9wcy5tb3VudE9uRW50ZXIpIHtcbiAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMucHJvcHMubm9kZVJlZiA/IHRoaXMucHJvcHMubm9kZVJlZi5jdXJyZW50IDogUmVhY3RET00uZmluZERPTU5vZGUodGhpcyk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvcHVsbC83NDlcbiAgICAgICAgICAvLyBXaXRoIHVubW91bnRPbkV4aXQgb3IgbW91bnRPbkVudGVyLCB0aGUgZW50ZXIgYW5pbWF0aW9uIHNob3VsZCBoYXBwZW4gYXQgdGhlIHRyYW5zaXRpb24gYmV0d2VlbiBgZXhpdGVkYCBhbmQgYGVudGVyaW5nYC5cbiAgICAgICAgICAvLyBUbyBtYWtlIHRoZSBhbmltYXRpb24gaGFwcGVuLCAgd2UgaGF2ZSB0byBzZXBhcmF0ZSBlYWNoIHJlbmRlcmluZyBhbmQgYXZvaWQgYmVpbmcgcHJvY2Vzc2VkIGFzIGJhdGNoZWQuXG5cbiAgICAgICAgICBpZiAobm9kZSkgZm9yY2VSZWZsb3cobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBlcmZvcm1FbnRlcihtb3VudGluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBlcmZvcm1FeGl0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnVubW91bnRPbkV4aXQgJiYgdGhpcy5zdGF0ZS5zdGF0dXMgPT09IEVYSVRFRCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogVU5NT1VOVEVEXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FbnRlciA9IGZ1bmN0aW9uIHBlcmZvcm1FbnRlcihtb3VudGluZykge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGVudGVyID0gdGhpcy5wcm9wcy5lbnRlcjtcbiAgICB2YXIgYXBwZWFyaW5nID0gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LmlzTW91bnRpbmcgOiBtb3VudGluZztcblxuICAgIHZhciBfcmVmMiA9IHRoaXMucHJvcHMubm9kZVJlZiA/IFthcHBlYXJpbmddIDogW1JlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpLCBhcHBlYXJpbmddLFxuICAgICAgICBtYXliZU5vZGUgPSBfcmVmMlswXSxcbiAgICAgICAgbWF5YmVBcHBlYXJpbmcgPSBfcmVmMlsxXTtcblxuICAgIHZhciB0aW1lb3V0cyA9IHRoaXMuZ2V0VGltZW91dHMoKTtcbiAgICB2YXIgZW50ZXJUaW1lb3V0ID0gYXBwZWFyaW5nID8gdGltZW91dHMuYXBwZWFyIDogdGltZW91dHMuZW50ZXI7IC8vIG5vIGVudGVyIGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVOVEVSRURcbiAgICAvLyBpZiB3ZSBhcmUgbW91bnRpbmcgYW5kIHJ1bm5pbmcgdGhpcyBpdCBtZWFucyBhcHBlYXIgX211c3RfIGJlIHNldFxuXG4gICAgaWYgKCFtb3VudGluZyAmJiAhZW50ZXIgfHwgY29uZmlnLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgIHN0YXR1czogRU5URVJFRFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczIucHJvcHMub25FbnRlcmVkKG1heWJlTm9kZSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uRW50ZXIobWF5YmVOb2RlLCBtYXliZUFwcGVhcmluZyk7XG4gICAgdGhpcy5zYWZlU2V0U3RhdGUoe1xuICAgICAgc3RhdHVzOiBFTlRFUklOR1xuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMi5wcm9wcy5vbkVudGVyaW5nKG1heWJlTm9kZSwgbWF5YmVBcHBlYXJpbmcpO1xuXG4gICAgICBfdGhpczIub25UcmFuc2l0aW9uRW5kKGVudGVyVGltZW91dCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczIuc2FmZVNldFN0YXRlKHtcbiAgICAgICAgICBzdGF0dXM6IEVOVEVSRURcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkVudGVyZWQobWF5YmVOb2RlLCBtYXliZUFwcGVhcmluZyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgX3Byb3RvLnBlcmZvcm1FeGl0ID0gZnVuY3Rpb24gcGVyZm9ybUV4aXQoKSB7XG4gICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICB2YXIgZXhpdCA9IHRoaXMucHJvcHMuZXhpdDtcbiAgICB2YXIgdGltZW91dHMgPSB0aGlzLmdldFRpbWVvdXRzKCk7XG4gICAgdmFyIG1heWJlTm9kZSA9IHRoaXMucHJvcHMubm9kZVJlZiA/IHVuZGVmaW5lZCA6IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpOyAvLyBubyBleGl0IGFuaW1hdGlvbiBza2lwIHJpZ2h0IHRvIEVYSVRFRFxuXG4gICAgaWYgKCFleGl0IHx8IGNvbmZpZy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zYWZlU2V0U3RhdGUoe1xuICAgICAgICBzdGF0dXM6IEVYSVRFRFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpczMucHJvcHMub25FeGl0ZWQobWF5YmVOb2RlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMub25FeGl0KG1heWJlTm9kZSk7XG4gICAgdGhpcy5zYWZlU2V0U3RhdGUoe1xuICAgICAgc3RhdHVzOiBFWElUSU5HXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMzLnByb3BzLm9uRXhpdGluZyhtYXliZU5vZGUpO1xuXG4gICAgICBfdGhpczMub25UcmFuc2l0aW9uRW5kKHRpbWVvdXRzLmV4aXQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgX3RoaXMzLnNhZmVTZXRTdGF0ZSh7XG4gICAgICAgICAgc3RhdHVzOiBFWElURURcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzMy5wcm9wcy5vbkV4aXRlZChtYXliZU5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIF9wcm90by5jYW5jZWxOZXh0Q2FsbGJhY2sgPSBmdW5jdGlvbiBjYW5jZWxOZXh0Q2FsbGJhY2soKSB7XG4gICAgaWYgKHRoaXMubmV4dENhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwoKTtcbiAgICAgIHRoaXMubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnNhZmVTZXRTdGF0ZSA9IGZ1bmN0aW9uIHNhZmVTZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgdGhlcmUgYXJlIHdlaXJkIHJhY2UgY29uZGl0aW9ucyB3aXRoXG4gICAgLy8gc2V0U3RhdGUgY2FsbGJhY2tzIGFuZCB1bm1vdW50aW5nIGluIHRlc3RpbmcsIHNvIGFsd2F5cyBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHdlIGNhbiBjYW5jZWwgYW55IHBlbmRpbmcgc2V0U3RhdGUgY2FsbGJhY2tzIGFmdGVyIHdlIHVubW91bnQuXG4gICAgY2FsbGJhY2sgPSB0aGlzLnNldE5leHRDYWxsYmFjayhjYWxsYmFjayk7XG4gICAgdGhpcy5zZXRTdGF0ZShuZXh0U3RhdGUsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBfcHJvdG8uc2V0TmV4dENhbGxiYWNrID0gZnVuY3Rpb24gc2V0TmV4dENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICB2YXIgYWN0aXZlID0gdHJ1ZTtcblxuICAgIHRoaXMubmV4dENhbGxiYWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICBfdGhpczQubmV4dENhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLm5leHRDYWxsYmFjay5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dENhbGxiYWNrO1xuICB9O1xuXG4gIF9wcm90by5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiBvblRyYW5zaXRpb25FbmQodGltZW91dCwgaGFuZGxlcikge1xuICAgIHRoaXMuc2V0TmV4dENhbGxiYWNrKGhhbmRsZXIpO1xuICAgIHZhciBub2RlID0gdGhpcy5wcm9wcy5ub2RlUmVmID8gdGhpcy5wcm9wcy5ub2RlUmVmLmN1cnJlbnQgOiBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICB2YXIgZG9lc05vdEhhdmVUaW1lb3V0T3JMaXN0ZW5lciA9IHRpbWVvdXQgPT0gbnVsbCAmJiAhdGhpcy5wcm9wcy5hZGRFbmRMaXN0ZW5lcjtcblxuICAgIGlmICghbm9kZSB8fCBkb2VzTm90SGF2ZVRpbWVvdXRPckxpc3RlbmVyKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5hZGRFbmRMaXN0ZW5lcikge1xuICAgICAgdmFyIF9yZWYzID0gdGhpcy5wcm9wcy5ub2RlUmVmID8gW3RoaXMubmV4dENhbGxiYWNrXSA6IFtub2RlLCB0aGlzLm5leHRDYWxsYmFja10sXG4gICAgICAgICAgbWF5YmVOb2RlID0gX3JlZjNbMF0sXG4gICAgICAgICAgbWF5YmVOZXh0Q2FsbGJhY2sgPSBfcmVmM1sxXTtcblxuICAgICAgdGhpcy5wcm9wcy5hZGRFbmRMaXN0ZW5lcihtYXliZU5vZGUsIG1heWJlTmV4dENhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCAhPSBudWxsKSB7XG4gICAgICBzZXRUaW1lb3V0KHRoaXMubmV4dENhbGxiYWNrLCB0aW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgX3Byb3RvLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgc3RhdHVzID0gdGhpcy5zdGF0ZS5zdGF0dXM7XG5cbiAgICBpZiAoc3RhdHVzID09PSBVTk1PVU5URUQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIF9pbiA9IF90aGlzJHByb3BzLmluLFxuICAgICAgICBfbW91bnRPbkVudGVyID0gX3RoaXMkcHJvcHMubW91bnRPbkVudGVyLFxuICAgICAgICBfdW5tb3VudE9uRXhpdCA9IF90aGlzJHByb3BzLnVubW91bnRPbkV4aXQsXG4gICAgICAgIF9hcHBlYXIgPSBfdGhpcyRwcm9wcy5hcHBlYXIsXG4gICAgICAgIF9lbnRlciA9IF90aGlzJHByb3BzLmVudGVyLFxuICAgICAgICBfZXhpdCA9IF90aGlzJHByb3BzLmV4aXQsXG4gICAgICAgIF90aW1lb3V0ID0gX3RoaXMkcHJvcHMudGltZW91dCxcbiAgICAgICAgX2FkZEVuZExpc3RlbmVyID0gX3RoaXMkcHJvcHMuYWRkRW5kTGlzdGVuZXIsXG4gICAgICAgIF9vbkVudGVyID0gX3RoaXMkcHJvcHMub25FbnRlcixcbiAgICAgICAgX29uRW50ZXJpbmcgPSBfdGhpcyRwcm9wcy5vbkVudGVyaW5nLFxuICAgICAgICBfb25FbnRlcmVkID0gX3RoaXMkcHJvcHMub25FbnRlcmVkLFxuICAgICAgICBfb25FeGl0ID0gX3RoaXMkcHJvcHMub25FeGl0LFxuICAgICAgICBfb25FeGl0aW5nID0gX3RoaXMkcHJvcHMub25FeGl0aW5nLFxuICAgICAgICBfb25FeGl0ZWQgPSBfdGhpcyRwcm9wcy5vbkV4aXRlZCxcbiAgICAgICAgX25vZGVSZWYgPSBfdGhpcyRwcm9wcy5ub2RlUmVmLFxuICAgICAgICBjaGlsZFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UoX3RoaXMkcHJvcHMsIFtcImNoaWxkcmVuXCIsIFwiaW5cIiwgXCJtb3VudE9uRW50ZXJcIiwgXCJ1bm1vdW50T25FeGl0XCIsIFwiYXBwZWFyXCIsIFwiZW50ZXJcIiwgXCJleGl0XCIsIFwidGltZW91dFwiLCBcImFkZEVuZExpc3RlbmVyXCIsIFwib25FbnRlclwiLCBcIm9uRW50ZXJpbmdcIiwgXCJvbkVudGVyZWRcIiwgXCJvbkV4aXRcIiwgXCJvbkV4aXRpbmdcIiwgXCJvbkV4aXRlZFwiLCBcIm5vZGVSZWZcIl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIC8qI19fUFVSRV9fKi9cbiAgICAgIC8vIGFsbG93cyBmb3IgbmVzdGVkIFRyYW5zaXRpb25zXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRyYW5zaXRpb25Hcm91cENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgIH0sIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkcmVuKHN0YXR1cywgY2hpbGRQcm9wcykgOiBSZWFjdC5jbG9uZUVsZW1lbnQoUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbiksIGNoaWxkUHJvcHMpKVxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFRyYW5zaXRpb247XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cblRyYW5zaXRpb24uY29udGV4dFR5cGUgPSBUcmFuc2l0aW9uR3JvdXBDb250ZXh0O1xuVHJhbnNpdGlvbi5wcm9wVHlwZXMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB7XG4gIC8qKlxuICAgKiBBIFJlYWN0IHJlZmVyZW5jZSB0byBET00gZWxlbWVudCB0aGF0IG5lZWQgdG8gdHJhbnNpdGlvbjpcbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzUxMTI3MTMwLzQ2NzE5MzJcbiAgICpcbiAgICogICAtIFdoZW4gYG5vZGVSZWZgIHByb3AgaXMgdXNlZCwgYG5vZGVgIGlzIG5vdCBwYXNzZWQgdG8gY2FsbGJhY2sgZnVuY3Rpb25zXG4gICAqICAgICAgKGUuZy4gYG9uRW50ZXJgKSBiZWNhdXNlIHVzZXIgYWxyZWFkeSBoYXMgZGlyZWN0IGFjY2VzcyB0byB0aGUgbm9kZS5cbiAgICogICAtIFdoZW4gY2hhbmdpbmcgYGtleWAgcHJvcCBvZiBgVHJhbnNpdGlvbmAgaW4gYSBgVHJhbnNpdGlvbkdyb3VwYCBhIG5ld1xuICAgKiAgICAgYG5vZGVSZWZgIG5lZWQgdG8gYmUgcHJvdmlkZWQgdG8gYFRyYW5zaXRpb25gIHdpdGggY2hhbmdlZCBga2V5YCBwcm9wXG4gICAqICAgICAoc2VlXG4gICAqICAgICBbdGVzdC9DU1NUcmFuc2l0aW9uLXRlc3QuanNdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvYmxvYi8xMzQzNWY4OTdiM2FiNzFmNmUxOWQ3MjRmMTQ1NTk2ZjU5MTA1ODFjL3Rlc3QvQ1NTVHJhbnNpdGlvbi10ZXN0LmpzI0wzNjItTDQzNykpLlxuICAgKi9cbiAgbm9kZVJlZjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjdXJyZW50OiB0eXBlb2YgRWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBQcm9wVHlwZXMuYW55IDogZnVuY3Rpb24gKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHByb3BWYWx1ZVtrZXldO1xuICAgICAgcmV0dXJuIFByb3BUeXBlcy5pbnN0YW5jZU9mKHZhbHVlICYmICdvd25lckRvY3VtZW50JyBpbiB2YWx1ZSA/IHZhbHVlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuRWxlbWVudCA6IEVsZW1lbnQpKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpO1xuICAgIH1cbiAgfSksXG5cbiAgLyoqXG4gICAqIEEgYGZ1bmN0aW9uYCBjaGlsZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgUmVhY3QgZWxlbWVudC4gVGhpcyBmdW5jdGlvbiBpc1xuICAgKiBjYWxsZWQgd2l0aCB0aGUgY3VycmVudCB0cmFuc2l0aW9uIHN0YXR1cyAoYCdlbnRlcmluZydgLCBgJ2VudGVyZWQnYCxcbiAgICogYCdleGl0aW5nJ2AsIGAnZXhpdGVkJ2ApLCB3aGljaCBjYW4gYmUgdXNlZCB0byBhcHBseSBjb250ZXh0XG4gICAqIHNwZWNpZmljIHByb3BzIHRvIGEgY29tcG9uZW50LlxuICAgKlxuICAgKiBgYGBqc3hcbiAgICogPFRyYW5zaXRpb24gaW49e3RoaXMuc3RhdGUuaW59IHRpbWVvdXQ9ezE1MH0+XG4gICAqICAge3N0YXRlID0+IChcbiAgICogICAgIDxNeUNvbXBvbmVudCBjbGFzc05hbWU9e2BmYWRlIGZhZGUtJHtzdGF0ZX1gfSAvPlxuICAgKiAgICl9XG4gICAqIDwvVHJhbnNpdGlvbj5cbiAgICogYGBgXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwgUHJvcFR5cGVzLmVsZW1lbnQuaXNSZXF1aXJlZF0pLmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIGNvbXBvbmVudDsgdHJpZ2dlcnMgdGhlIGVudGVyIG9yIGV4aXQgc3RhdGVzXG4gICAqL1xuICBpbjogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgdGhlIGNoaWxkIGNvbXBvbmVudCBpcyBtb3VudGVkIGltbWVkaWF0ZWx5IGFsb25nIHdpdGhcbiAgICogdGhlIHBhcmVudCBgVHJhbnNpdGlvbmAgY29tcG9uZW50LiBJZiB5b3Ugd2FudCB0byBcImxhenkgbW91bnRcIiB0aGUgY29tcG9uZW50IG9uIHRoZVxuICAgKiBmaXJzdCBgaW49e3RydWV9YCB5b3UgY2FuIHNldCBgbW91bnRPbkVudGVyYC4gQWZ0ZXIgdGhlIGZpcnN0IGVudGVyIHRyYW5zaXRpb24gdGhlIGNvbXBvbmVudCB3aWxsIHN0YXlcbiAgICogbW91bnRlZCwgZXZlbiBvbiBcImV4aXRlZFwiLCB1bmxlc3MgeW91IGFsc28gc3BlY2lmeSBgdW5tb3VudE9uRXhpdGAuXG4gICAqL1xuICBtb3VudE9uRW50ZXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgc3RheXMgbW91bnRlZCBhZnRlciBpdCByZWFjaGVzIHRoZSBgJ2V4aXRlZCdgIHN0YXRlLlxuICAgKiBTZXQgYHVubW91bnRPbkV4aXRgIGlmIHlvdSdkIHByZWZlciB0byB1bm1vdW50IHRoZSBjb21wb25lbnQgYWZ0ZXIgaXQgZmluaXNoZXMgZXhpdGluZy5cbiAgICovXG4gIHVubW91bnRPbkV4aXQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBjaGlsZCBjb21wb25lbnQgZG9lcyBub3QgcGVyZm9ybSB0aGUgZW50ZXIgdHJhbnNpdGlvbiB3aGVuXG4gICAqIGl0IGZpcnN0IG1vdW50cywgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgYGluYC4gSWYgeW91IHdhbnQgdGhpc1xuICAgKiBiZWhhdmlvciwgc2V0IGJvdGggYGFwcGVhcmAgYW5kIGBpbmAgdG8gYHRydWVgLlxuICAgKlxuICAgKiA+ICoqTm90ZSoqOiB0aGVyZSBhcmUgbm8gc3BlY2lhbCBhcHBlYXIgc3RhdGVzIGxpa2UgYGFwcGVhcmluZ2AvYGFwcGVhcmVkYCwgdGhpcyBwcm9wXG4gICAqID4gb25seSBhZGRzIGFuIGFkZGl0aW9uYWwgZW50ZXIgdHJhbnNpdGlvbi4gSG93ZXZlciwgaW4gdGhlXG4gICAqID4gYDxDU1NUcmFuc2l0aW9uPmAgY29tcG9uZW50IHRoYXQgZmlyc3QgZW50ZXIgdHJhbnNpdGlvbiBkb2VzIHJlc3VsdCBpblxuICAgKiA+IGFkZGl0aW9uYWwgYC5hcHBlYXItKmAgY2xhc3NlcywgdGhhdCB3YXkgeW91IGNhbiBjaG9vc2UgdG8gc3R5bGUgaXRcbiAgICogPiBkaWZmZXJlbnRseS5cbiAgICovXG4gIGFwcGVhcjogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIGVudGVyIHRyYW5zaXRpb25zLlxuICAgKi9cbiAgZW50ZXI6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBleGl0IHRyYW5zaXRpb25zLlxuICAgKi9cbiAgZXhpdDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBvZiB0aGUgdHJhbnNpdGlvbiwgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBSZXF1aXJlZCB1bmxlc3MgYGFkZEVuZExpc3RlbmVyYCBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogWW91IG1heSBzcGVjaWZ5IGEgc2luZ2xlIHRpbWVvdXQgZm9yIGFsbCB0cmFuc2l0aW9uczpcbiAgICpcbiAgICogYGBganN4XG4gICAqIHRpbWVvdXQ9ezUwMH1cbiAgICogYGBgXG4gICAqXG4gICAqIG9yIGluZGl2aWR1YWxseTpcbiAgICpcbiAgICogYGBganN4XG4gICAqIHRpbWVvdXQ9e3tcbiAgICogIGFwcGVhcjogNTAwLFxuICAgKiAgZW50ZXI6IDMwMCxcbiAgICogIGV4aXQ6IDUwMCxcbiAgICogfX1cbiAgICogYGBgXG4gICAqXG4gICAqIC0gYGFwcGVhcmAgZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIGBlbnRlcmBcbiAgICogLSBgZW50ZXJgIGRlZmF1bHRzIHRvIGAwYFxuICAgKiAtIGBleGl0YCBkZWZhdWx0cyB0byBgMGBcbiAgICpcbiAgICogQHR5cGUge251bWJlciB8IHsgZW50ZXI/OiBudW1iZXIsIGV4aXQ/OiBudW1iZXIsIGFwcGVhcj86IG51bWJlciB9fVxuICAgKi9cbiAgdGltZW91dDogZnVuY3Rpb24gdGltZW91dChwcm9wcykge1xuICAgIHZhciBwdCA9IHRpbWVvdXRzU2hhcGU7XG4gICAgaWYgKCFwcm9wcy5hZGRFbmRMaXN0ZW5lcikgcHQgPSBwdC5pc1JlcXVpcmVkO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHB0LmFwcGx5KHZvaWQgMCwgW3Byb3BzXS5jb25jYXQoYXJncykpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZGQgYSBjdXN0b20gdHJhbnNpdGlvbiBlbmQgdHJpZ2dlci4gQ2FsbGVkIHdpdGggdGhlIHRyYW5zaXRpb25pbmdcbiAgICogRE9NIG5vZGUgYW5kIGEgYGRvbmVgIGNhbGxiYWNrLiBBbGxvd3MgZm9yIG1vcmUgZmluZSBncmFpbmVkIHRyYW5zaXRpb24gZW5kXG4gICAqIGxvZ2ljLiBUaW1lb3V0cyBhcmUgc3RpbGwgdXNlZCBhcyBhIGZhbGxiYWNrIGlmIHByb3ZpZGVkLlxuICAgKlxuICAgKiAqKk5vdGUqKjogd2hlbiBgbm9kZVJlZmAgcHJvcCBpcyBwYXNzZWQsIGBub2RlYCBpcyBub3QgcGFzc2VkLlxuICAgKlxuICAgKiBgYGBqc3hcbiAgICogYWRkRW5kTGlzdGVuZXI9eyhub2RlLCBkb25lKSA9PiB7XG4gICAqICAgLy8gdXNlIHRoZSBjc3MgdHJhbnNpdGlvbmVuZCBldmVudCB0byBtYXJrIHRoZSBmaW5pc2ggb2YgYSB0cmFuc2l0aW9uXG4gICAqICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgZG9uZSwgZmFsc2UpO1xuICAgKiB9fVxuICAgKiBgYGBcbiAgICovXG4gIGFkZEVuZExpc3RlbmVyOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZmlyZWQgYmVmb3JlIHRoZSBcImVudGVyaW5nXCIgc3RhdHVzIGlzIGFwcGxpZWQuIEFuIGV4dHJhIHBhcmFtZXRlclxuICAgKiBgaXNBcHBlYXJpbmdgIGlzIHN1cHBsaWVkIHRvIGluZGljYXRlIGlmIHRoZSBlbnRlciBzdGFnZSBpcyBvY2N1cnJpbmcgb24gdGhlIGluaXRpYWwgbW91bnRcbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQsIGlzQXBwZWFyaW5nOiBib29sKSAtPiB2b2lkXG4gICAqL1xuICBvbkVudGVyOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZmlyZWQgYWZ0ZXIgdGhlIFwiZW50ZXJpbmdcIiBzdGF0dXMgaXMgYXBwbGllZC4gQW4gZXh0cmEgcGFyYW1ldGVyXG4gICAqIGBpc0FwcGVhcmluZ2AgaXMgc3VwcGxpZWQgdG8gaW5kaWNhdGUgaWYgdGhlIGVudGVyIHN0YWdlIGlzIG9jY3VycmluZyBvbiB0aGUgaW5pdGlhbCBtb3VudFxuICAgKlxuICAgKiAqKk5vdGUqKjogd2hlbiBgbm9kZVJlZmAgcHJvcCBpcyBwYXNzZWQsIGBub2RlYCBpcyBub3QgcGFzc2VkLlxuICAgKlxuICAgKiBAdHlwZSBGdW5jdGlvbihub2RlOiBIdG1sRWxlbWVudCwgaXNBcHBlYXJpbmc6IGJvb2wpXG4gICAqL1xuICBvbkVudGVyaW5nOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZmlyZWQgYWZ0ZXIgdGhlIFwiZW50ZXJlZFwiIHN0YXR1cyBpcyBhcHBsaWVkLiBBbiBleHRyYSBwYXJhbWV0ZXJcbiAgICogYGlzQXBwZWFyaW5nYCBpcyBzdXBwbGllZCB0byBpbmRpY2F0ZSBpZiB0aGUgZW50ZXIgc3RhZ2UgaXMgb2NjdXJyaW5nIG9uIHRoZSBpbml0aWFsIG1vdW50XG4gICAqXG4gICAqICoqTm90ZSoqOiB3aGVuIGBub2RlUmVmYCBwcm9wIGlzIHBhc3NlZCwgYG5vZGVgIGlzIG5vdCBwYXNzZWQuXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50LCBpc0FwcGVhcmluZzogYm9vbCkgLT4gdm9pZFxuICAgKi9cbiAgb25FbnRlcmVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZmlyZWQgYmVmb3JlIHRoZSBcImV4aXRpbmdcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpIC0+IHZvaWRcbiAgICovXG4gIG9uRXhpdDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImV4aXRpbmdcIiBzdGF0dXMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogKipOb3RlKio6IHdoZW4gYG5vZGVSZWZgIHByb3AgaXMgcGFzc2VkLCBgbm9kZWAgaXMgbm90IHBhc3NlZC5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24obm9kZTogSHRtbEVsZW1lbnQpIC0+IHZvaWRcbiAgICovXG4gIG9uRXhpdGluZzogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZpcmVkIGFmdGVyIHRoZSBcImV4aXRlZFwiIHN0YXR1cyBpcyBhcHBsaWVkLlxuICAgKlxuICAgKiAqKk5vdGUqKjogd2hlbiBgbm9kZVJlZmAgcHJvcCBpcyBwYXNzZWQsIGBub2RlYCBpcyBub3QgcGFzc2VkXG4gICAqXG4gICAqIEB0eXBlIEZ1bmN0aW9uKG5vZGU6IEh0bWxFbGVtZW50KSAtPiB2b2lkXG4gICAqL1xuICBvbkV4aXRlZDogUHJvcFR5cGVzLmZ1bmNcbn0gOiB7fTsgLy8gTmFtZSB0aGUgZnVuY3Rpb24gc28gaXQgaXMgY2xlYXJlciBpbiB0aGUgZG9jdW1lbnRhdGlvblxuXG5mdW5jdGlvbiBub29wKCkge31cblxuVHJhbnNpdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGluOiBmYWxzZSxcbiAgbW91bnRPbkVudGVyOiBmYWxzZSxcbiAgdW5tb3VudE9uRXhpdDogZmFsc2UsXG4gIGFwcGVhcjogZmFsc2UsXG4gIGVudGVyOiB0cnVlLFxuICBleGl0OiB0cnVlLFxuICBvbkVudGVyOiBub29wLFxuICBvbkVudGVyaW5nOiBub29wLFxuICBvbkVudGVyZWQ6IG5vb3AsXG4gIG9uRXhpdDogbm9vcCxcbiAgb25FeGl0aW5nOiBub29wLFxuICBvbkV4aXRlZDogbm9vcFxufTtcblRyYW5zaXRpb24uVU5NT1VOVEVEID0gVU5NT1VOVEVEO1xuVHJhbnNpdGlvbi5FWElURUQgPSBFWElURUQ7XG5UcmFuc2l0aW9uLkVOVEVSSU5HID0gRU5URVJJTkc7XG5UcmFuc2l0aW9uLkVOVEVSRUQgPSBFTlRFUkVEO1xuVHJhbnNpdGlvbi5FWElUSU5HID0gRVhJVElORztcbmV4cG9ydCBkZWZhdWx0IFRyYW5zaXRpb247IiwiaW1wb3J0IHNldFByb3RvdHlwZU9mIGZyb20gXCIuL3NldFByb3RvdHlwZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaW5oZXJpdHNMb29zZShzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MucHJvdG90eXBlKTtcbiAgc3ViQ2xhc3MucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gc3ViQ2xhc3M7XG4gIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iLCJleHBvcnQgdmFyIGZvcmNlUmVmbG93ID0gZnVuY3Rpb24gZm9yY2VSZWZsb3cobm9kZSkge1xuICByZXR1cm4gbm9kZS5zY3JvbGxUb3A7XG59OyIsIi8qKlxuICogUmV0dXJucyB0aGUgb3duZXIgZG9jdW1lbnQgb2YgYSBnaXZlbiBlbGVtZW50LlxuICogXG4gKiBAcGFyYW0gbm9kZSB0aGUgZWxlbWVudFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvd25lckRvY3VtZW50KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiYgbm9kZS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50O1xufSIsInZhciByVXBwZXIgPSAvKFtBLVpdKS9nO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaHlwaGVuYXRlKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoclVwcGVyLCAnLSQxJykudG9Mb3dlckNhc2UoKTtcbn0iLCIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvMmFlYjhhMmE2YmViMDA2MTdhNDIxN2Y3ZjgyODQ5MjRmYTJhZDgxOS9zcmMvdmVuZG9yL2NvcmUvaHlwaGVuYXRlU3R5bGVOYW1lLmpzXG4gKi9cbmltcG9ydCBoeXBoZW5hdGUgZnJvbSAnLi9oeXBoZW5hdGUnO1xudmFyIG1zUGF0dGVybiA9IC9ebXMtLztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGh5cGhlbmF0ZVN0eWxlTmFtZShzdHJpbmcpIHtcbiAgcmV0dXJuIGh5cGhlbmF0ZShzdHJpbmcpLnJlcGxhY2UobXNQYXR0ZXJuLCAnLW1zLScpO1xufSIsInZhciBzdXBwb3J0ZWRUcmFuc2Zvcm1zID0gL14oKHRyYW5zbGF0ZXxyb3RhdGV8c2NhbGUpKFh8WXxafDNkKT98bWF0cml4KDNkKT98cGVyc3BlY3RpdmV8c2tldyhYfFkpPykkL2k7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RyYW5zZm9ybSh2YWx1ZSkge1xuICByZXR1cm4gISEodmFsdWUgJiYgc3VwcG9ydGVkVHJhbnNmb3Jtcy50ZXN0KHZhbHVlKSk7XG59IiwiaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSAnLi9nZXRDb21wdXRlZFN0eWxlJztcbmltcG9ydCBoeXBoZW5hdGUgZnJvbSAnLi9oeXBoZW5hdGVTdHlsZSc7XG5pbXBvcnQgaXNUcmFuc2Zvcm0gZnJvbSAnLi9pc1RyYW5zZm9ybSc7XG5cbmZ1bmN0aW9uIHN0eWxlKG5vZGUsIHByb3BlcnR5KSB7XG4gIHZhciBjc3MgPSAnJztcbiAgdmFyIHRyYW5zZm9ybXMgPSAnJztcblxuICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBub2RlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoaHlwaGVuYXRlKHByb3BlcnR5KSkgfHwgZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKGh5cGhlbmF0ZShwcm9wZXJ0eSkpO1xuICB9XG5cbiAgT2JqZWN0LmtleXMocHJvcGVydHkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciB2YWx1ZSA9IHByb3BlcnR5W2tleV07XG5cbiAgICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSAwKSB7XG4gICAgICBub2RlLnN0eWxlLnJlbW92ZVByb3BlcnR5KGh5cGhlbmF0ZShrZXkpKTtcbiAgICB9IGVsc2UgaWYgKGlzVHJhbnNmb3JtKGtleSkpIHtcbiAgICAgIHRyYW5zZm9ybXMgKz0ga2V5ICsgXCIoXCIgKyB2YWx1ZSArIFwiKSBcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgY3NzICs9IGh5cGhlbmF0ZShrZXkpICsgXCI6IFwiICsgdmFsdWUgKyBcIjtcIjtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0cmFuc2Zvcm1zKSB7XG4gICAgY3NzICs9IFwidHJhbnNmb3JtOiBcIiArIHRyYW5zZm9ybXMgKyBcIjtcIjtcbiAgfVxuXG4gIG5vZGUuc3R5bGUuY3NzVGV4dCArPSBcIjtcIiArIGNzcztcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R5bGU7IiwiaW1wb3J0IG93bmVyV2luZG93IGZyb20gJy4vb3duZXJXaW5kb3cnO1xuLyoqXG4gKiBSZXR1cm5zIG9uZSBvciBhbGwgY29tcHV0ZWQgc3R5bGUgcHJvcGVydGllcyBvZiBhbiBlbGVtZW50LlxuICogXG4gKiBAcGFyYW0gbm9kZSB0aGUgZWxlbWVudFxuICogQHBhcmFtIHBzdWVkb0VsZW1lbnQgdGhlIHN0eWxlIHByb3BlcnR5XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBwc3VlZG9FbGVtZW50KSB7XG4gIHJldHVybiBvd25lcldpbmRvdyhub2RlKS5nZXRDb21wdXRlZFN0eWxlKG5vZGUsIHBzdWVkb0VsZW1lbnQpO1xufSIsImltcG9ydCBvd25lckRvY3VtZW50IGZyb20gJy4vb3duZXJEb2N1bWVudCc7XG4vKipcbiAqIFJldHVybnMgdGhlIG93bmVyIHdpbmRvdyBvZiBhIGdpdmVuIGVsZW1lbnQuXG4gKiBcbiAqIEBwYXJhbSBub2RlIHRoZSBlbGVtZW50XG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb3duZXJXaW5kb3cobm9kZSkge1xuICB2YXIgZG9jID0gb3duZXJEb2N1bWVudChub2RlKTtcbiAgcmV0dXJuIGRvYyAmJiBkb2MuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xufSIsImV4cG9ydCBkZWZhdWx0ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7IiwiLyogZXNsaW50LWRpc2FibGUgbm8tcmV0dXJuLWFzc2lnbiAqL1xuaW1wb3J0IGNhblVzZURPTSBmcm9tICcuL2NhblVzZURPTSc7XG5leHBvcnQgdmFyIG9wdGlvbnNTdXBwb3J0ZWQgPSBmYWxzZTtcbmV4cG9ydCB2YXIgb25jZVN1cHBvcnRlZCA9IGZhbHNlO1xuXG50cnkge1xuICB2YXIgb3B0aW9ucyA9IHtcbiAgICBnZXQgcGFzc2l2ZSgpIHtcbiAgICAgIHJldHVybiBvcHRpb25zU3VwcG9ydGVkID0gdHJ1ZTtcbiAgICB9LFxuXG4gICAgZ2V0IG9uY2UoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbXVsdGktYXNzaWduXG4gICAgICByZXR1cm4gb25jZVN1cHBvcnRlZCA9IG9wdGlvbnNTdXBwb3J0ZWQgPSB0cnVlO1xuICAgIH1cblxuICB9O1xuXG4gIGlmIChjYW5Vc2VET00pIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgdHJ1ZSk7XG4gIH1cbn0gY2F0Y2ggKGUpIHtcbiAgLyogKi9cbn1cblxuLyoqXG4gKiBBbiBgYWRkRXZlbnRMaXN0ZW5lcmAgcG9ueWZpbGwsIHN1cHBvcnRzIHRoZSBgb25jZWAgb3B0aW9uXG4gKiBcbiAqIEBwYXJhbSBub2RlIHRoZSBlbGVtZW50XG4gKiBAcGFyYW0gZXZlbnROYW1lIHRoZSBldmVudCBuYW1lXG4gKiBAcGFyYW0gaGFuZGxlIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gb3B0aW9ucyBldmVudCBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zICE9PSAnYm9vbGVhbicgJiYgIW9uY2VTdXBwb3J0ZWQpIHtcbiAgICB2YXIgb25jZSA9IG9wdGlvbnMub25jZSxcbiAgICAgICAgY2FwdHVyZSA9IG9wdGlvbnMuY2FwdHVyZTtcbiAgICB2YXIgd3JhcHBlZEhhbmRsZXIgPSBoYW5kbGVyO1xuXG4gICAgaWYgKCFvbmNlU3VwcG9ydGVkICYmIG9uY2UpIHtcbiAgICAgIHdyYXBwZWRIYW5kbGVyID0gaGFuZGxlci5fX29uY2UgfHwgZnVuY3Rpb24gb25jZUhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgb25jZUhhbmRsZXIsIGNhcHR1cmUpO1xuICAgICAgICBoYW5kbGVyLmNhbGwodGhpcywgZXZlbnQpO1xuICAgICAgfTtcblxuICAgICAgaGFuZGxlci5fX29uY2UgPSB3cmFwcGVkSGFuZGxlcjtcbiAgICB9XG5cbiAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCB3cmFwcGVkSGFuZGxlciwgb3B0aW9uc1N1cHBvcnRlZCA/IG9wdGlvbnMgOiBjYXB0dXJlKTtcbiAgfVxuXG4gIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRFdmVudExpc3RlbmVyOyIsImltcG9ydCBhZGRFdmVudExpc3RlbmVyIGZyb20gJy4vYWRkRXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgcmVtb3ZlRXZlbnRMaXN0ZW5lciBmcm9tICcuL3JlbW92ZUV2ZW50TGlzdGVuZXInO1xuXG5mdW5jdGlvbiBsaXN0ZW4obm9kZSwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zKSB7XG4gIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGxpc3RlbjsiLCIvKipcbiAqIEEgYHJlbW92ZUV2ZW50TGlzdGVuZXJgIHBvbnlmaWxsXG4gKiBcbiAqIEBwYXJhbSBub2RlIHRoZSBlbGVtZW50XG4gKiBAcGFyYW0gZXZlbnROYW1lIHRoZSBldmVudCBuYW1lXG4gKiBAcGFyYW0gaGFuZGxlIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gb3B0aW9ucyBldmVudCBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zKSB7XG4gIHZhciBjYXB0dXJlID0gb3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucyAhPT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5jYXB0dXJlIDogb3B0aW9ucztcbiAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgY2FwdHVyZSk7XG5cbiAgaWYgKGhhbmRsZXIuX19vbmNlKSB7XG4gICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlci5fX29uY2UsIGNhcHR1cmUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHJlbW92ZUV2ZW50TGlzdGVuZXI7IiwiaW1wb3J0IGNzcyBmcm9tICcuL2Nzcyc7XG5pbXBvcnQgbGlzdGVuIGZyb20gJy4vbGlzdGVuJztcbmltcG9ydCB0cmlnZ2VyRXZlbnQgZnJvbSAnLi90cmlnZ2VyRXZlbnQnO1xuXG5mdW5jdGlvbiBwYXJzZUR1cmF0aW9uKG5vZGUpIHtcbiAgdmFyIHN0ciA9IGNzcyhub2RlLCAndHJhbnNpdGlvbkR1cmF0aW9uJykgfHwgJyc7XG4gIHZhciBtdWx0ID0gc3RyLmluZGV4T2YoJ21zJykgPT09IC0xID8gMTAwMCA6IDE7XG4gIHJldHVybiBwYXJzZUZsb2F0KHN0cikgKiBtdWx0O1xufVxuXG5mdW5jdGlvbiBlbXVsYXRlVHJhbnNpdGlvbkVuZChlbGVtZW50LCBkdXJhdGlvbiwgcGFkZGluZykge1xuICBpZiAocGFkZGluZyA9PT0gdm9pZCAwKSB7XG4gICAgcGFkZGluZyA9IDU7XG4gIH1cblxuICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gIHZhciBoYW5kbGUgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWNhbGxlZCkgdHJpZ2dlckV2ZW50KGVsZW1lbnQsICd0cmFuc2l0aW9uZW5kJywgdHJ1ZSk7XG4gIH0sIGR1cmF0aW9uICsgcGFkZGluZyk7XG4gIHZhciByZW1vdmUgPSBsaXN0ZW4oZWxlbWVudCwgJ3RyYW5zaXRpb25lbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY2FsbGVkID0gdHJ1ZTtcbiAgfSwge1xuICAgIG9uY2U6IHRydWVcbiAgfSk7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgcmVtb3ZlKCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zaXRpb25FbmQoZWxlbWVudCwgaGFuZGxlciwgZHVyYXRpb24sIHBhZGRpbmcpIHtcbiAgaWYgKGR1cmF0aW9uID09IG51bGwpIGR1cmF0aW9uID0gcGFyc2VEdXJhdGlvbihlbGVtZW50KSB8fCAwO1xuICB2YXIgcmVtb3ZlRW11bGF0ZSA9IGVtdWxhdGVUcmFuc2l0aW9uRW5kKGVsZW1lbnQsIGR1cmF0aW9uLCBwYWRkaW5nKTtcbiAgdmFyIHJlbW92ZSA9IGxpc3RlbihlbGVtZW50LCAndHJhbnNpdGlvbmVuZCcsIGhhbmRsZXIpO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJlbW92ZUVtdWxhdGUoKTtcbiAgICByZW1vdmUoKTtcbiAgfTtcbn0iLCIvKipcbiAqIFRyaWdnZXJzIGFuIGV2ZW50IG9uIGEgZ2l2ZW4gZWxlbWVudC5cbiAqIFxuICogQHBhcmFtIG5vZGUgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSBldmVudE5hbWUgdGhlIGV2ZW50IG5hbWUgdG8gdHJpZ2dlclxuICogQHBhcmFtIGJ1YmJsZXMgd2hldGhlciB0aGUgZXZlbnQgc2hvdWxkIGJ1YmJsZSB1cFxuICogQHBhcmFtIGNhbmNlbGFibGUgd2hldGhlciB0aGUgZXZlbnQgc2hvdWxkIGJlIGNhbmNlbGFibGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHJpZ2dlckV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgYnViYmxlcywgY2FuY2VsYWJsZSkge1xuICBpZiAoYnViYmxlcyA9PT0gdm9pZCAwKSB7XG4gICAgYnViYmxlcyA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKGNhbmNlbGFibGUgPT09IHZvaWQgMCkge1xuICAgIGNhbmNlbGFibGUgPSB0cnVlO1xuICB9XG5cbiAgaWYgKG5vZGUpIHtcbiAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO1xuICAgIGV2ZW50LmluaXRFdmVudChldmVudE5hbWUsIGJ1YmJsZXMsIGNhbmNlbGFibGUpO1xuICAgIG5vZGUuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cbn0iLCJpbXBvcnQgY3NzIGZyb20gJ2RvbS1oZWxwZXJzL2Nzcyc7XG5pbXBvcnQgdHJhbnNpdGlvbkVuZCBmcm9tICdkb20taGVscGVycy90cmFuc2l0aW9uRW5kJztcbmZ1bmN0aW9uIHBhcnNlRHVyYXRpb24obm9kZSwgcHJvcGVydHkpIHtcbiAgY29uc3Qgc3RyID0gY3NzKG5vZGUsIHByb3BlcnR5KSB8fCAnJztcbiAgY29uc3QgbXVsdCA9IHN0ci5pbmRleE9mKCdtcycpID09PSAtMSA/IDEwMDAgOiAxO1xuICByZXR1cm4gcGFyc2VGbG9hdChzdHIpICogbXVsdDtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyYW5zaXRpb25FbmRMaXN0ZW5lcihlbGVtZW50LCBoYW5kbGVyKSB7XG4gIGNvbnN0IGR1cmF0aW9uID0gcGFyc2VEdXJhdGlvbihlbGVtZW50LCAndHJhbnNpdGlvbkR1cmF0aW9uJyk7XG4gIGNvbnN0IGRlbGF5ID0gcGFyc2VEdXJhdGlvbihlbGVtZW50LCAndHJhbnNpdGlvbkRlbGF5Jyk7XG4gIGNvbnN0IHJlbW92ZSA9IHRyYW5zaXRpb25FbmQoZWxlbWVudCwgZSA9PiB7XG4gICAgaWYgKGUudGFyZ2V0ID09PSBlbGVtZW50KSB7XG4gICAgICByZW1vdmUoKTtcbiAgICAgIGhhbmRsZXIoZSk7XG4gICAgfVxuICB9LCBkdXJhdGlvbiArIGRlbGF5KTtcbn0iLCIvLyByZWFkaW5nIGEgZGltZW5zaW9uIHByb3Agd2lsbCBjYXVzZSB0aGUgYnJvd3NlciB0byByZWNhbGN1bGF0ZSxcbi8vIHdoaWNoIHdpbGwgbGV0IG91ciBhbmltYXRpb25zIHdvcmtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRyaWdnZXJCcm93c2VyUmVmbG93KG5vZGUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgbm9kZS5vZmZzZXRIZWlnaHQ7XG59IiwiaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcblxudmFyIHRvRm5SZWYgPSBmdW5jdGlvbiB0b0ZuUmVmKHJlZikge1xuICByZXR1cm4gIXJlZiB8fCB0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nID8gcmVmIDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVJlZnMocmVmQSwgcmVmQikge1xuICB2YXIgYSA9IHRvRm5SZWYocmVmQSk7XG4gIHZhciBiID0gdG9GblJlZihyZWZCKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmIChhKSBhKHZhbHVlKTtcbiAgICBpZiAoYikgYih2YWx1ZSk7XG4gIH07XG59XG4vKipcbiAqIENyZWF0ZSBhbmQgcmV0dXJucyBhIHNpbmdsZSBjYWxsYmFjayByZWYgY29tcG9zZWQgZnJvbSB0d28gb3RoZXIgUmVmcy5cbiAqXG4gKiBgYGB0c3hcbiAqIGNvbnN0IEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAqICAgY29uc3QgW2VsZW1lbnQsIGF0dGFjaFJlZl0gPSB1c2VDYWxsYmFja1JlZjxIVE1MQnV0dG9uRWxlbWVudD4oKTtcbiAqICAgY29uc3QgbWVyZ2VkUmVmID0gdXNlTWVyZ2VkUmVmcyhyZWYsIGF0dGFjaFJlZik7XG4gKlxuICogICByZXR1cm4gPGJ1dHRvbiByZWY9e21lcmdlZFJlZn0gey4uLnByb3BzfS8+XG4gKiB9KVxuICogYGBgXG4gKlxuICogQHBhcmFtIHJlZkEgQSBDYWxsYmFjayBvciBtdXRhYmxlIFJlZlxuICogQHBhcmFtIHJlZkIgQSBDYWxsYmFjayBvciBtdXRhYmxlIFJlZlxuICogQGNhdGVnb3J5IHJlZnNcbiAqL1xuXG5mdW5jdGlvbiB1c2VNZXJnZWRSZWZzKHJlZkEsIHJlZkIpIHtcbiAgcmV0dXJuIHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBtZXJnZVJlZnMocmVmQSwgcmVmQik7XG4gIH0sIFtyZWZBLCByZWZCXSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZU1lcmdlZFJlZnM7IiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVHJhbnNpdGlvbiBmcm9tICdyZWFjdC10cmFuc2l0aW9uLWdyb3VwL1RyYW5zaXRpb24nO1xuaW1wb3J0IHVzZU1lcmdlZFJlZnMgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlTWVyZ2VkUmVmcyc7XG5pbXBvcnQgc2FmZUZpbmRET01Ob2RlIGZyb20gJy4vc2FmZUZpbmRET01Ob2RlJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG4vLyBOb3JtYWxpemVzIFRyYW5zaXRpb24gY2FsbGJhY2tzIHdoZW4gbm9kZVJlZiBpcyB1c2VkLlxuY29uc3QgVHJhbnNpdGlvbldyYXBwZXIgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigoe1xuICBvbkVudGVyLFxuICBvbkVudGVyaW5nLFxuICBvbkVudGVyZWQsXG4gIG9uRXhpdCxcbiAgb25FeGl0aW5nLFxuICBvbkV4aXRlZCxcbiAgYWRkRW5kTGlzdGVuZXIsXG4gIGNoaWxkcmVuLFxuICBjaGlsZFJlZixcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBjb25zdCBub2RlUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBtZXJnZWRSZWYgPSB1c2VNZXJnZWRSZWZzKG5vZGVSZWYsIGNoaWxkUmVmKTtcbiAgY29uc3QgYXR0YWNoUmVmID0gciA9PiB7XG4gICAgbWVyZ2VkUmVmKHNhZmVGaW5kRE9NTm9kZShyKSk7XG4gIH07XG4gIGNvbnN0IG5vcm1hbGl6ZSA9IGNhbGxiYWNrID0+IHBhcmFtID0+IHtcbiAgICBpZiAoY2FsbGJhY2sgJiYgbm9kZVJlZi5jdXJyZW50KSB7XG4gICAgICBjYWxsYmFjayhub2RlUmVmLmN1cnJlbnQsIHBhcmFtKTtcbiAgICB9XG4gIH07XG5cbiAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG4gIGNvbnN0IGhhbmRsZUVudGVyID0gdXNlQ2FsbGJhY2sobm9ybWFsaXplKG9uRW50ZXIpLCBbb25FbnRlcl0pO1xuICBjb25zdCBoYW5kbGVFbnRlcmluZyA9IHVzZUNhbGxiYWNrKG5vcm1hbGl6ZShvbkVudGVyaW5nKSwgW29uRW50ZXJpbmddKTtcbiAgY29uc3QgaGFuZGxlRW50ZXJlZCA9IHVzZUNhbGxiYWNrKG5vcm1hbGl6ZShvbkVudGVyZWQpLCBbb25FbnRlcmVkXSk7XG4gIGNvbnN0IGhhbmRsZUV4aXQgPSB1c2VDYWxsYmFjayhub3JtYWxpemUob25FeGl0KSwgW29uRXhpdF0pO1xuICBjb25zdCBoYW5kbGVFeGl0aW5nID0gdXNlQ2FsbGJhY2sobm9ybWFsaXplKG9uRXhpdGluZyksIFtvbkV4aXRpbmddKTtcbiAgY29uc3QgaGFuZGxlRXhpdGVkID0gdXNlQ2FsbGJhY2sobm9ybWFsaXplKG9uRXhpdGVkKSwgW29uRXhpdGVkXSk7XG4gIGNvbnN0IGhhbmRsZUFkZEVuZExpc3RlbmVyID0gdXNlQ2FsbGJhY2sobm9ybWFsaXplKGFkZEVuZExpc3RlbmVyKSwgW2FkZEVuZExpc3RlbmVyXSk7XG4gIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KFRyYW5zaXRpb24sIHtcbiAgICByZWY6IHJlZixcbiAgICAuLi5wcm9wcyxcbiAgICBvbkVudGVyOiBoYW5kbGVFbnRlcixcbiAgICBvbkVudGVyZWQ6IGhhbmRsZUVudGVyZWQsXG4gICAgb25FbnRlcmluZzogaGFuZGxlRW50ZXJpbmcsXG4gICAgb25FeGl0OiBoYW5kbGVFeGl0LFxuICAgIG9uRXhpdGVkOiBoYW5kbGVFeGl0ZWQsXG4gICAgb25FeGl0aW5nOiBoYW5kbGVFeGl0aW5nLFxuICAgIGFkZEVuZExpc3RlbmVyOiBoYW5kbGVBZGRFbmRMaXN0ZW5lcixcbiAgICBub2RlUmVmOiBub2RlUmVmLFxuICAgIGNoaWxkcmVuOiB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyAoc3RhdHVzLCBpbm5lclByb3BzKSA9PiBjaGlsZHJlbihzdGF0dXMsIHtcbiAgICAgIC4uLmlubmVyUHJvcHMsXG4gICAgICByZWY6IGF0dGFjaFJlZlxuICAgIH0pIDogLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgcmVmOiBhdHRhY2hSZWZcbiAgICB9KVxuICB9KTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgVHJhbnNpdGlvbldyYXBwZXI7IiwiaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzYWZlRmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gIGlmIChjb21wb25lbnRPckVsZW1lbnQgJiYgJ3NldFN0YXRlJyBpbiBjb21wb25lbnRPckVsZW1lbnQpIHtcbiAgICByZXR1cm4gUmVhY3RET00uZmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KTtcbiAgfVxuICByZXR1cm4gY29tcG9uZW50T3JFbGVtZW50ICE9IG51bGwgPyBjb21wb25lbnRPckVsZW1lbnQgOiBudWxsO1xufSIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBFTlRFUkVELCBFTlRFUklORyB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbic7XG5pbXBvcnQgdHJhbnNpdGlvbkVuZExpc3RlbmVyIGZyb20gJy4vdHJhbnNpdGlvbkVuZExpc3RlbmVyJztcbmltcG9ydCB0cmlnZ2VyQnJvd3NlclJlZmxvdyBmcm9tICcuL3RyaWdnZXJCcm93c2VyUmVmbG93JztcbmltcG9ydCBUcmFuc2l0aW9uV3JhcHBlciBmcm9tICcuL1RyYW5zaXRpb25XcmFwcGVyJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBmYWRlU3R5bGVzID0ge1xuICBbRU5URVJJTkddOiAnc2hvdycsXG4gIFtFTlRFUkVEXTogJ3Nob3cnXG59O1xuY29uc3QgRmFkZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGNsYXNzTmFtZSxcbiAgY2hpbGRyZW4sXG4gIHRyYW5zaXRpb25DbGFzc2VzID0ge30sXG4gIG9uRW50ZXIsXG4gIC4uLnJlc3Rcbn0sIHJlZikgPT4ge1xuICBjb25zdCBwcm9wcyA9IHtcbiAgICBpbjogZmFsc2UsXG4gICAgdGltZW91dDogMzAwLFxuICAgIG1vdW50T25FbnRlcjogZmFsc2UsXG4gICAgdW5tb3VudE9uRXhpdDogZmFsc2UsXG4gICAgYXBwZWFyOiBmYWxzZSxcbiAgICAuLi5yZXN0XG4gIH07XG4gIGNvbnN0IGhhbmRsZUVudGVyID0gdXNlQ2FsbGJhY2soKG5vZGUsIGlzQXBwZWFyaW5nKSA9PiB7XG4gICAgdHJpZ2dlckJyb3dzZXJSZWZsb3cobm9kZSk7XG4gICAgb25FbnRlciA9PSBudWxsID8gdm9pZCAwIDogb25FbnRlcihub2RlLCBpc0FwcGVhcmluZyk7XG4gIH0sIFtvbkVudGVyXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChUcmFuc2l0aW9uV3JhcHBlciwge1xuICAgIHJlZjogcmVmLFxuICAgIGFkZEVuZExpc3RlbmVyOiB0cmFuc2l0aW9uRW5kTGlzdGVuZXIsXG4gICAgLi4ucHJvcHMsXG4gICAgb25FbnRlcjogaGFuZGxlRW50ZXIsXG4gICAgY2hpbGRSZWY6IGNoaWxkcmVuLnJlZixcbiAgICBjaGlsZHJlbjogKHN0YXR1cywgaW5uZXJQcm9wcykgPT4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgLi4uaW5uZXJQcm9wcyxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcygnZmFkZScsIGNsYXNzTmFtZSwgY2hpbGRyZW4ucHJvcHMuY2xhc3NOYW1lLCBmYWRlU3R5bGVzW3N0YXR1c10sIHRyYW5zaXRpb25DbGFzc2VzW3N0YXR1c10pXG4gICAgfSlcbiAgfSk7XG59KTtcbkZhZGUuZGlzcGxheU5hbWUgPSAnRmFkZSc7XG5leHBvcnQgZGVmYXVsdCBGYWRlOyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBwcm9wVHlwZXMgPSB7XG4gIC8qKiBBbiBhY2Nlc3NpYmxlIGxhYmVsIGluZGljYXRpbmcgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGFib3V0IHRoZSBDbG9zZSBCdXR0b24uICovXG4gICdhcmlhLWxhYmVsJzogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIEEgY2FsbGJhY2sgZmlyZWQgYWZ0ZXIgdGhlIENsb3NlIEJ1dHRvbiBpcyBjbGlja2VkLiAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIFJlbmRlciBkaWZmZXJlbnQgY29sb3IgdmFyaWFudCBmb3IgdGhlIGJ1dHRvbi5cbiAgICpcbiAgICogT21pdHRpbmcgdGhpcyB3aWxsIHJlbmRlciB0aGUgZGVmYXVsdCBkYXJrIGNvbG9yLlxuICAgKi9cbiAgdmFyaWFudDogUHJvcFR5cGVzLm9uZU9mKFsnd2hpdGUnXSlcbn07XG5jb25zdCBDbG9zZUJ1dHRvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGNsYXNzTmFtZSxcbiAgdmFyaWFudCxcbiAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwgPSAnQ2xvc2UnLFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiAvKiNfX1BVUkVfXyovX2pzeChcImJ1dHRvblwiLCB7XG4gIHJlZjogcmVmLFxuICB0eXBlOiBcImJ1dHRvblwiLFxuICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoJ2J0bi1jbG9zZScsIHZhcmlhbnQgJiYgYGJ0bi1jbG9zZS0ke3ZhcmlhbnR9YCwgY2xhc3NOYW1lKSxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgLi4ucHJvcHNcbn0pKTtcbkNsb3NlQnV0dG9uLmRpc3BsYXlOYW1lID0gJ0Nsb3NlQnV0dG9uJztcbkNsb3NlQnV0dG9uLnByb3BUeXBlcyA9IHByb3BUeXBlcztcbmV4cG9ydCBkZWZhdWx0IENsb3NlQnV0dG9uOyIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmV4cG9ydCBkZWZhdWx0IChjbGFzc05hbWUgPT4gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHAsIHJlZikgPT4gLyojX19QVVJFX18qL19qc3goXCJkaXZcIiwge1xuICAuLi5wLFxuICByZWY6IHJlZixcbiAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKHAuY2xhc3NOYW1lLCBjbGFzc05hbWUpXG59KSkpOyIsInZhciBySHlwaGVuID0gLy0oLikvZztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2Uockh5cGhlbiwgZnVuY3Rpb24gKF8sIGNocikge1xuICAgIHJldHVybiBjaHIudG9VcHBlckNhc2UoKTtcbiAgfSk7XG59IiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgY2FtZWxpemUgZnJvbSAnZG9tLWhlbHBlcnMvY2FtZWxpemUnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4IH0gZnJvbSAnLi9UaGVtZVByb3ZpZGVyJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBwYXNjYWxDYXNlID0gc3RyID0+IHN0clswXS50b1VwcGVyQ2FzZSgpICsgY2FtZWxpemUoc3RyKS5zbGljZSgxKTtcbi8vIFRPRE86IGVtc3RyaWN0ZW4gJiBmaXggdGhlIHR5cGluZyBoZXJlISBgY3JlYXRlV2l0aEJzUHJlZml4PFRFbGVtZW50VHlwZT4uLi5gXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVXaXRoQnNQcmVmaXgocHJlZml4LCB7XG4gIGRpc3BsYXlOYW1lID0gcGFzY2FsQ2FzZShwcmVmaXgpLFxuICBDb21wb25lbnQsXG4gIGRlZmF1bHRQcm9wc1xufSA9IHt9KSB7XG4gIGNvbnN0IEJzQ29tcG9uZW50ID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHtcbiAgICBjbGFzc05hbWUsXG4gICAgYnNQcmVmaXgsXG4gICAgYXM6IFRhZyA9IENvbXBvbmVudCB8fCAnZGl2JyxcbiAgICAuLi5wcm9wc1xuICB9LCByZWYpID0+IHtcbiAgICBjb25zdCBjb21wb25lbnRQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIC4uLnByb3BzXG4gICAgfTtcbiAgICBjb25zdCByZXNvbHZlZFByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChic1ByZWZpeCwgcHJlZml4KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL19qc3goVGFnLCB7XG4gICAgICByZWY6IHJlZixcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIHJlc29sdmVkUHJlZml4KSxcbiAgICAgIC4uLmNvbXBvbmVudFByb3BzXG4gICAgfSk7XG4gIH0pO1xuICBCc0NvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lO1xuICByZXR1cm4gQnNDb21wb25lbnQ7XG59IiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VVbmNvbnRyb2xsZWQgfSBmcm9tICd1bmNvbnRyb2xsYWJsZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAcmVzdGFydC9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCBBbmNob3IgZnJvbSAnQHJlc3RhcnQvdWkvQW5jaG9yJztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgRmFkZSBmcm9tICcuL0ZhZGUnO1xuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gJy4vQ2xvc2VCdXR0b24nO1xuaW1wb3J0IGRpdldpdGhDbGFzc05hbWUgZnJvbSAnLi9kaXZXaXRoQ2xhc3NOYW1lJztcbmltcG9ydCBjcmVhdGVXaXRoQnNQcmVmaXggZnJvbSAnLi9jcmVhdGVXaXRoQnNQcmVmaXgnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IERpdlN0eWxlZEFzSDQgPSBkaXZXaXRoQ2xhc3NOYW1lKCdoNCcpO1xuRGl2U3R5bGVkQXNINC5kaXNwbGF5TmFtZSA9ICdEaXZTdHlsZWRBc0g0JztcbmNvbnN0IEFsZXJ0SGVhZGluZyA9IGNyZWF0ZVdpdGhCc1ByZWZpeCgnYWxlcnQtaGVhZGluZycsIHtcbiAgQ29tcG9uZW50OiBEaXZTdHlsZWRBc0g0XG59KTtcbmNvbnN0IEFsZXJ0TGluayA9IGNyZWF0ZVdpdGhCc1ByZWZpeCgnYWxlcnQtbGluaycsIHtcbiAgQ29tcG9uZW50OiBBbmNob3Jcbn0pO1xuY29uc3QgQWxlcnQgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigodW5jb250cm9sbGVkUHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgYnNQcmVmaXgsXG4gICAgc2hvdyA9IHRydWUsXG4gICAgY2xvc2VMYWJlbCA9ICdDbG9zZSBhbGVydCcsXG4gICAgY2xvc2VWYXJpYW50LFxuICAgIGNsYXNzTmFtZSxcbiAgICBjaGlsZHJlbixcbiAgICB2YXJpYW50ID0gJ3ByaW1hcnknLFxuICAgIG9uQ2xvc2UsXG4gICAgZGlzbWlzc2libGUsXG4gICAgdHJhbnNpdGlvbiA9IEZhZGUsXG4gICAgLi4ucHJvcHNcbiAgfSA9IHVzZVVuY29udHJvbGxlZCh1bmNvbnRyb2xsZWRQcm9wcywge1xuICAgIHNob3c6ICdvbkNsb3NlJ1xuICB9KTtcbiAgY29uc3QgcHJlZml4ID0gdXNlQm9vdHN0cmFwUHJlZml4KGJzUHJlZml4LCAnYWxlcnQnKTtcbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSB1c2VFdmVudENhbGxiYWNrKGUgPT4ge1xuICAgIGlmIChvbkNsb3NlKSB7XG4gICAgICBvbkNsb3NlKGZhbHNlLCBlKTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBUcmFuc2l0aW9uID0gdHJhbnNpdGlvbiA9PT0gdHJ1ZSA/IEZhZGUgOiB0cmFuc2l0aW9uO1xuICBjb25zdCBhbGVydCA9IC8qI19fUFVSRV9fKi9fanN4cyhcImRpdlwiLCB7XG4gICAgcm9sZTogXCJhbGVydFwiLFxuICAgIC4uLighVHJhbnNpdGlvbiA/IHByb3BzIDogdW5kZWZpbmVkKSxcbiAgICByZWY6IHJlZixcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBwcmVmaXgsIHZhcmlhbnQgJiYgYCR7cHJlZml4fS0ke3ZhcmlhbnR9YCwgZGlzbWlzc2libGUgJiYgYCR7cHJlZml4fS1kaXNtaXNzaWJsZWApLFxuICAgIGNoaWxkcmVuOiBbZGlzbWlzc2libGUgJiYgLyojX19QVVJFX18qL19qc3goQ2xvc2VCdXR0b24sIHtcbiAgICAgIG9uQ2xpY2s6IGhhbmRsZUNsb3NlLFxuICAgICAgXCJhcmlhLWxhYmVsXCI6IGNsb3NlTGFiZWwsXG4gICAgICB2YXJpYW50OiBjbG9zZVZhcmlhbnRcbiAgICB9KSwgY2hpbGRyZW5dXG4gIH0pO1xuICBpZiAoIVRyYW5zaXRpb24pIHJldHVybiBzaG93ID8gYWxlcnQgOiBudWxsO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goVHJhbnNpdGlvbiwge1xuICAgIHVubW91bnRPbkV4aXQ6IHRydWUsXG4gICAgLi4ucHJvcHMsXG4gICAgcmVmOiB1bmRlZmluZWQsXG4gICAgaW46IHNob3csXG4gICAgY2hpbGRyZW46IGFsZXJ0XG4gIH0pO1xufSk7XG5BbGVydC5kaXNwbGF5TmFtZSA9ICdBbGVydCc7XG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKEFsZXJ0LCB7XG4gIExpbms6IEFsZXJ0TGluayxcbiAgSGVhZGluZzogQWxlcnRIZWFkaW5nXG59KTsiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBBbGVydCBmcm9tIFwicmVhY3QtYm9vdHN0cmFwL0FsZXJ0XCI7XG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlID0gKHtcbiAgaGVhZGluZyxcbiAgaWNvbixcbiAgdHlwZSxcbiAgZGlzbWlzc2libGUsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSA9PiB7XG4gIHZhciB2YXJpYW50ID0gXCJwcmltYXJ5XCI7XG4gIGNvbnN0IHNob3dJY29uID0gaWNvbiA9PT0gdW5kZWZpbmVkIHx8IGljb247XG4gIHZhciBpY29uQ2xhc3MgPSBcImJpIGJpLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICB2YXIgW3Nob3csIHNldFNob3ddID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgaWYgKCFzaG93KSB7XG4gICAgcmV0dXJuIDxSZWFjdC5GcmFnbWVudCAvPjtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBcImVycm9yXCIpIHtcbiAgICB2YXJpYW50ID0gXCJkYW5nZXJcIjtcbiAgICBpY29uQ2xhc3MgPSBcImJpIGJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWZpbGxcIjtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBcIndhcm5pbmdcIikge1xuICAgIHZhcmlhbnQgPSBcIndhcm5pbmdcIjtcbiAgICBpY29uQ2xhc3MgPSBcImJpIGJpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICB2YXJpYW50ID0gXCJzdWNjZXNzXCI7XG4gICAgaWNvbkNsYXNzID0gXCJiaSBiaS1jaGVjay1jaXJjbGVcIjtcbiAgfVxuXG4gIGljb24gPSBzaG93SWNvbiAmJiAoaWNvbiB8fCA8aSBjbGFzc05hbWU9e2Ake2ljb25DbGFzc30gbWUtMiBtLTBgfT48L2k+KTtcblxuICByZXR1cm4gKFxuICAgIDxBbGVydFxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICB2YXJpYW50PXt2YXJpYW50fVxuICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvdyhmYWxzZSl9XG4gICAgICBkaXNtaXNzaWJsZT17ZGlzbWlzc2libGV9XG4gICAgPlxuICAgICAge2hlYWRpbmcgJiYgKFxuICAgICAgICA8QWxlcnQuSGVhZGluZz5cbiAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgPC9BbGVydC5IZWFkaW5nPlxuICAgICAgKX1cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtLTBcIj5cbiAgICAgICAgeyFoZWFkaW5nICYmIGljb259XG4gICAgICAgIDxkaXY+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9BbGVydD5cbiAgKTtcbn07XG5cbk1lc3NhZ2UucHJvcFR5cGVzID0ge1xuICBoZWFkaW5nOiBQcm9wVHlwZXMubm9kZSxcbiAgaWNvbjogUHJvcFR5cGVzLm5vZGUsXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbXCJlcnJvclwiLCBcIndhcm5pbmdcIiwgXCJzdWNjZXNzXCIsIFwiaW5mb1wiXSksXG4gIGRpc21pc3NpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSxcbiAgICBQcm9wVHlwZXMubm9kZSxcbiAgXSksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBjb25zdCBFcnJvck1lc3NhZ2UgPSAoeyBoZWFkaW5nLCBlcnJvciB9KSA9PiB7XG4gIGNvbnNvbGUud2FybihlcnJvcik7XG4gIGhlYWRpbmcgPSBoZWFkaW5nIHx8IFwiRXJyb3JcIjtcblxuICB2YXIgbWVzc2FnZTtcbiAgaWYgKHR5cGVvZiBlcnJvciA9PT0gXCJzdHJpbmdcIiB8fCBlcnJvciBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgIG1lc3NhZ2UgPSBlcnJvcjtcbiAgfSBlbHNlIGlmIChcbiAgICBlcnJvci5tZXNzYWdlICYmXG4gICAgKHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSBcInN0cmluZ1wiIHx8IGVycm9yLm1lc3NhZ2UgaW5zdGFuY2VvZiBTdHJpbmcpXG4gICkge1xuICAgIG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBKU09OLnN0cmluZ2lmeShlcnJvcik7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxNZXNzYWdlIGNsYXNzTmFtZT1cIm10LTMgbXgtM1wiIGhlYWRpbmc9e2hlYWRpbmd9IHR5cGU9XCJlcnJvclwiIGRpc21pc3NpYmxlPlxuICAgICAge21lc3NhZ2V9XG4gICAgPC9NZXNzYWdlPlxuICApO1xufTtcblxuRXJyb3JNZXNzYWdlLnByb3BUeXBlcyA9IHtcbiAgaGVhZGluZzogUHJvcFR5cGVzLm5vZGUsXG4gIGVycm9yOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuaW5zdGFuY2VPZihFcnJvcildKSxcbn07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5mbyA9ICh7IGNsYXNzTmFtZSwgc2l6ZSwgY29sb3IsIHRpdGxlIH0pID0+IHtcbiAgdmFyIGNsYXNzZXMgPSBcInNwaW5uZXItYm9yZGVyXCI7XG5cbiAgaWYgKGNsYXNzTmFtZSkge1xuICAgIGNsYXNzZXMgKz0gXCIgXCIgKyBjbGFzc05hbWU7XG4gIH1cbiAgaWYgKHNpemUgPT09IFwic21cIikge1xuICAgIGNsYXNzZXMgKz0gXCIgc3Bpbm5lci1ib3JkZXItc21cIjtcbiAgfVxuICBpZiAoY29sb3IgPT09IFwicHJpbWFyeVwiKSB7XG4gICAgY2xhc3NlcyArPSBcIiB0ZXh0LXByaW1hcnlcIjtcbiAgfSBlbHNlIGlmIChjb2xvciA9PT0gXCJzZWNvbmRhcnlcIikge1xuICAgIGNsYXNzZXMgKz0gXCIgdGV4dC1zZWNvbmRhcnlcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPHNwYW4gdGl0bGU9e3RpdGxlfSBjbGFzc05hbWU9e2NsYXNzZXN9IHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICApO1xufTtcblxuTG9hZGluZ0luZm8ucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihbXCJzbVwiXSksXG4gIGNvbG9yOiBQcm9wVHlwZXMub25lT2YoW1wicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiXSksXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTG9hZGluZ0luZm8uZGVmYXVsdFByb3BzID0ge1xuICB0aXRsZTogXCJMb2FkaW5nLi4uXCIsXG59O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgeyBJbmZvU2VydmljZSB9IGZyb20gXCIuLi9JbmZvU2VydmljZVwiO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gXCIuL01lc3NhZ2VcIjtcbmltcG9ydCB7IExvYWRpbmdJbmZvIH0gZnJvbSBcIi4vTG9hZGluZ0luZm9cIjtcblxuYXN5bmMgZnVuY3Rpb24gX2xvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCkge1xuICBjb25zdCBzZXJ2aWNlID0gbmV3IEluZm9TZXJ2aWNlKCk7XG4gIHJldHVybiBhd2FpdCBzZXJ2aWNlLmxvZ2luKHVzZXJuYW1lLCBwYXNzd29yZCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChzaG93TG9hZGluZ0luZm8sIHRoZW4sIG9uRXJyb3IpIHtcbiAgcmV0dXJuIChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgc2hvd0xvYWRpbmdJbmZvKCk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSBldmVudC50YXJnZXQudXNlcm5hbWUudmFsdWU7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBldmVudC50YXJnZXQucGFzc3dvcmQudmFsdWU7XG5cbiAgICAvLyBkZWFjdGl2ZSBsb2dpbiBmb3JtIChubyByZXRyeSB1bnRpbCB0aGUgc2VydmVyIGFuc3dlciBpcyB0aGVyZSBvciBhXG4gICAgLy8gdGltZW91dCkuXG4gICAgZXZlbnQudGFyZ2V0LnN1Ym1pdC5kaXNhYmxlZCA9IHRydWU7XG5cbiAgICB2YXIgbG9naW5fcHJvbWlzZSA9IF9sb2dpbih1c2VybmFtZSwgcGFzc3dvcmQpLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIC8vIGFjdGl2ZSBsb2dpbiBhZ2FpblxuICAgICAgZXZlbnQudGFyZ2V0LnN1Ym1pdC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoZW4pIHtcbiAgICAgIGxvZ2luX3Byb21pc2UgPSBsb2dpbl9wcm9taXNlLnRoZW4odGhlbik7XG4gICAgfVxuXG4gICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgIGxvZ2luX3Byb21pc2UuY2F0Y2gob25FcnJvcik7XG4gICAgfVxuICB9O1xufVxuXG5jbGFzcyBUaW1lb3V0IHtcbiAgY29uc3RydWN0b3IoY2IsIG1zKSB7XG4gICAgdGhpcy5jYiA9IGNiO1xuICAgIG1zID0gTnVtYmVyLmlzSW50ZWdlcihtcykgPyBtcyA6IDEwMDAwO1xuICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5jYiwgbXMpO1xuICB9XG4gIHJlc2V0KG1zKSB7XG4gICAgdGhpcy5wYXVzZSgpO1xuICAgIGlmICh0aGlzLmNiKSB7XG4gICAgICBtcyA9IE51bWJlci5pc0ludGVnZXIobXMpID8gbXMgOiAyMDAwMDtcbiAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQodGhpcy5jYiwgbXMpO1xuICAgIH1cbiAgfVxuICBwYXVzZSgpIHtcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICAgIHRoaXMudGltZW91dCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgc3RvcCgpIHtcbiAgICB0aGlzLnBhdXNlKCk7XG4gICAgdGhpcy5jYiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5jb25zdCBMb2dpbkZvcm1JbnB1dHMgPSAoeyB0aGVuLCBvbkVycm9yLCBzaG93TWVzc2FnZXMsIHNob3dMb2FkaW5nSW5mbyB9KSA9PiB7XG4gIGNvbnN0IHRpbWVvdXQgPSBuZXcgVGltZW91dChzaG93TWVzc2FnZXMpO1xuICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHRpbWVvdXQucGF1c2UoKTtcbiAgY29uc3Qgb25CbHVyID0gKCkgPT4gdGltZW91dC5yZXNldCgpO1xuICBjb25zdCBvbkNsaWNrID0gKCkgPT4gdGltZW91dC5zdG9wKCk7XG5cbiAgY29uc3Qgd3JhcHBlZE9uRXJyb3IgPSBhc3luYyAoZXJyb3IpID0+IHtcbiAgICBzaG93TWVzc2FnZXMoKTtcbiAgICBpZiAob25FcnJvcikge1xuICAgICAgcmV0dXJuIGF3YWl0IG9uRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBjbGFzc05hbWU9XCJtLTBcIlxuICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdChzaG93TG9hZGluZ0luZm8sIHRoZW4sIHdyYXBwZWRPbkVycm9yKX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyBnLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tNVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVXNlcm5hbWVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlVzZXJuYW1lXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tNVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYXNzd29yZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLXNtLTFcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zZWNvbmRhcnkgbmF2YmFyLWJ0biBkLWlubGluZS1ibG9ja1wiXG4gICAgICAgICAgICBuYW1lPVwic3VibWl0XCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIExvZ2luXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICApO1xufTtcblxuTG9naW5Gb3JtSW5wdXRzLnByb3BUeXBlcyA9IHtcbiAgdGhlbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNob3dNZXNzYWdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2hvd0xvYWRpbmdJbmZvOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuY29uc3QgTG9naW5Gb3JtTWVzc2FnZSA9ICh7IG1lc3NhZ2UsIG1lc3NhZ2VUeXBlLCBzaG93SW5wdXRzIH0pID0+IHtcbiAgbWVzc2FnZSA9IG1lc3NhZ2UgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tYXV0b1wiPlxuICAgICAgPE1lc3NhZ2UgdHlwZT17bWVzc2FnZVR5cGV9PnttZXNzYWdlfTwvTWVzc2FnZT5cbiAgICA8L2Rpdj5cbiAgKSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiYWxpZ24taXRlbXMtY2VudGVyIHJvdyBnLTNcIj5cbiAgICAgIHttZXNzYWdlfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtc20tMVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zZWNvbmRhcnkgbmF2YmFyLWJ0biBkLWlubGluZS1ibG9ja1wiXG4gICAgICAgICAgbmFtZT1cInNob3dcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e3Nob3dJbnB1dHN9XG4gICAgICAgID5cbiAgICAgICAgICBMb2dpblxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuTG9naW5Gb3JtTWVzc2FnZS5wcm9wVHlwZXMgPSB7XG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5ub2RlLFxuICBtZXNzYWdlVHlwZTogUHJvcFR5cGVzLm9uZU9mKFtcImVycm9yXCIsIFwid2FybmluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJpbmZvXCJdKSxcbiAgc2hvd0lucHV0czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBjb25zdCBMb2dpbkZvcm0gPSAoeyB0aGVuLCBvbkVycm9yLCBtZXNzYWdlLCBtZXNzYWdlVHlwZSB9KSA9PiB7XG4gIGNvbnN0IFtzaG93SW5wdXRzLCBzZXRTaG93SW5wdXRzXSA9IHVzZVN0YXRlKFwibWVzc2FnZXNcIik7XG5cbiAgaWYgKHNob3dJbnB1dHMgPT09IFwiaW5wdXRzXCIpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPExvZ2luRm9ybUlucHV0c1xuICAgICAgICB0aGVuPXt0aGVufVxuICAgICAgICBvbkVycm9yPXtvbkVycm9yfVxuICAgICAgICBzaG93TWVzc2FnZXM9eygpID0+IHNldFNob3dJbnB1dHMoXCJtZXNzYWdlc1wiKX1cbiAgICAgICAgc2hvd0xvYWRpbmdJbmZvPXsoKSA9PiBzZXRTaG93SW5wdXRzKFwibG9hZGluZ1wiKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSBlbHNlIGlmIChzaG93SW5wdXRzID09PSBcImxvYWRpbmdcIikge1xuICAgIHJldHVybiA8TG9hZGluZ0luZm8gc2l6ZT1cInNtXCIgLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxMb2dpbkZvcm1NZXNzYWdlXG4gICAgICBtZXNzYWdlPXttZXNzYWdlfVxuICAgICAgbWVzc2FnZVR5cGU9e21lc3NhZ2VUeXBlfVxuICAgICAgc2hvd0lucHV0cz17KCkgPT4gc2V0U2hvd0lucHV0cyhcImlucHV0c1wiKX1cbiAgICAvPlxuICApO1xufTtcblxuTG9naW5Gb3JtLnByb3BUeXBlcyA9IHtcbiAgdGhlbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5ub2RlLFxuICBtZXNzYWdlVHlwZTogUHJvcFR5cGVzLm9uZU9mKFtcImVycm9yXCIsIFwid2FybmluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJpbmZvXCJdKSxcbn07XG4iLCJ2YXIgdG9BcnJheSA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoRnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsIFtdLnNsaWNlKTtcbi8qKlxuICogUnVucyBgcXVlcnlTZWxlY3RvckFsbGAgb24gYSBnaXZlbiBlbGVtZW50LlxuICogXG4gKiBAcGFyYW0gZWxlbWVudCB0aGUgZWxlbWVudFxuICogQHBhcmFtIHNlbGVjdG9yIHRoZSBzZWxlY3RvclxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHFzYShlbGVtZW50LCBzZWxlY3Rvcikge1xuICByZXR1cm4gdG9BcnJheShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpKTtcbn0iLCJpbXBvcnQgeyB1c2VSZWR1Y2VyIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBhIGNvbXBvbmVudCB1cGRhdGUuIHRoZSBob29rIGVxdWl2YWxlbnQgdG9cbiAqIGB0aGlzLmZvcmNlVXBkYXRlKClgIGluIGEgY2xhc3MgY29tcG9uZW50LiBJbiBtb3N0IGNhc2VzIHVzaW5nIGEgc3RhdGUgdmFsdWUgZGlyZWN0bHlcbiAqIGlzIHByZWZlcmFibGUgYnV0IG1heSBiZSByZXF1aXJlZCBpbiBzb21lIGFkdmFuY2VkIHVzYWdlcyBvZiByZWZzIGZvciBpbnRlcm9wIG9yXG4gKiB3aGVuIGRpcmVjdCBET00gbWFuaXB1bGF0aW9uIGlzIHJlcXVpcmVkLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG4gKlxuICogY29uc3QgdXBkYXRlT25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAqICBmb3JjZVVwZGF0ZSgpXG4gKiB9LCBbZm9yY2VVcGRhdGVdKVxuICpcbiAqIHJldHVybiA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXt1cGRhdGVPbkNsaWNrfT5IaSB0aGVyZTwvYnV0dG9uPlxuICogYGBgXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRm9yY2VVcGRhdGUoKSB7XG4gIC8vIFRoZSB0b2dnbGluZyBzdGF0ZSB2YWx1ZSBpcyBkZXNpZ25lZCB0byBkZWZlYXQgUmVhY3Qgb3B0aW1pemF0aW9ucyBmb3Igc2tpcHBpbmdcbiAgLy8gdXBkYXRlcyB3aGVuIHRoZXkgYXJlIHN0cmljdGluZyBlcXVhbCB0byB0aGUgbGFzdCBzdGF0ZSB2YWx1ZVxuICB2YXIgX3VzZVJlZHVjZXIgPSB1c2VSZWR1Y2VyKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgIHJldHVybiAhc3RhdGU7XG4gIH0sIGZhbHNlKSxcbiAgICAgIGRpc3BhdGNoID0gX3VzZVJlZHVjZXJbMV07XG5cbiAgcmV0dXJuIGRpc3BhdGNoO1xufSIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IERyb3Bkb3duQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGRlZmF1bHQgRHJvcGRvd25Db250ZXh0OyIsInZhciBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBmaW5kKGl0ZXIsIHRhciwga2V5KSB7XG5cdGZvciAoa2V5IG9mIGl0ZXIua2V5cygpKSB7XG5cdFx0aWYgKGRlcXVhbChrZXksIHRhcikpIHJldHVybiBrZXk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcXVhbChmb28sIGJhcikge1xuXHR2YXIgY3RvciwgbGVuLCB0bXA7XG5cdGlmIChmb28gPT09IGJhcikgcmV0dXJuIHRydWU7XG5cblx0aWYgKGZvbyAmJiBiYXIgJiYgKGN0b3I9Zm9vLmNvbnN0cnVjdG9yKSA9PT0gYmFyLmNvbnN0cnVjdG9yKSB7XG5cdFx0aWYgKGN0b3IgPT09IERhdGUpIHJldHVybiBmb28uZ2V0VGltZSgpID09PSBiYXIuZ2V0VGltZSgpO1xuXHRcdGlmIChjdG9yID09PSBSZWdFeHApIHJldHVybiBmb28udG9TdHJpbmcoKSA9PT0gYmFyLnRvU3RyaW5nKCk7XG5cblx0XHRpZiAoY3RvciA9PT0gQXJyYXkpIHtcblx0XHRcdGlmICgobGVuPWZvby5sZW5ndGgpID09PSBiYXIubGVuZ3RoKSB7XG5cdFx0XHRcdHdoaWxlIChsZW4tLSAmJiBkZXF1YWwoZm9vW2xlbl0sIGJhcltsZW5dKSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbGVuID09PSAtMTtcblx0XHR9XG5cblx0XHRpZiAoY3RvciA9PT0gU2V0KSB7XG5cdFx0XHRpZiAoZm9vLnNpemUgIT09IGJhci5zaXplKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGZvciAobGVuIG9mIGZvbykge1xuXHRcdFx0XHR0bXAgPSBsZW47XG5cdFx0XHRcdGlmICh0bXAgJiYgdHlwZW9mIHRtcCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHR0bXAgPSBmaW5kKGJhciwgdG1wKTtcblx0XHRcdFx0XHRpZiAoIXRtcCkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghYmFyLmhhcyh0bXApKSByZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAoY3RvciA9PT0gTWFwKSB7XG5cdFx0XHRpZiAoZm9vLnNpemUgIT09IGJhci5zaXplKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdGZvciAobGVuIG9mIGZvbykge1xuXHRcdFx0XHR0bXAgPSBsZW5bMF07XG5cdFx0XHRcdGlmICh0bXAgJiYgdHlwZW9mIHRtcCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHR0bXAgPSBmaW5kKGJhciwgdG1wKTtcblx0XHRcdFx0XHRpZiAoIXRtcCkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghZGVxdWFsKGxlblsxXSwgYmFyLmdldCh0bXApKSkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKGN0b3IgPT09IEFycmF5QnVmZmVyKSB7XG5cdFx0XHRmb28gPSBuZXcgVWludDhBcnJheShmb28pO1xuXHRcdFx0YmFyID0gbmV3IFVpbnQ4QXJyYXkoYmFyKTtcblx0XHR9IGVsc2UgaWYgKGN0b3IgPT09IERhdGFWaWV3KSB7XG5cdFx0XHRpZiAoKGxlbj1mb28uYnl0ZUxlbmd0aCkgPT09IGJhci5ieXRlTGVuZ3RoKSB7XG5cdFx0XHRcdHdoaWxlIChsZW4tLSAmJiBmb28uZ2V0SW50OChsZW4pID09PSBiYXIuZ2V0SW50OChsZW4pKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBsZW4gPT09IC0xO1xuXHRcdH1cblxuXHRcdGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcoZm9vKSkge1xuXHRcdFx0aWYgKChsZW49Zm9vLmJ5dGVMZW5ndGgpID09PSBiYXIuYnl0ZUxlbmd0aCkge1xuXHRcdFx0XHR3aGlsZSAobGVuLS0gJiYgZm9vW2xlbl0gPT09IGJhcltsZW5dKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBsZW4gPT09IC0xO1xuXHRcdH1cblxuXHRcdGlmICghY3RvciB8fCB0eXBlb2YgZm9vID09PSAnb2JqZWN0Jykge1xuXHRcdFx0bGVuID0gMDtcblx0XHRcdGZvciAoY3RvciBpbiBmb28pIHtcblx0XHRcdFx0aWYgKGhhcy5jYWxsKGZvbywgY3RvcikgJiYgKytsZW4gJiYgIWhhcy5jYWxsKGJhciwgY3RvcikpIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWYgKCEoY3RvciBpbiBiYXIpIHx8ICFkZXF1YWwoZm9vW2N0b3JdLCBiYXJbY3Rvcl0pKSByZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmtleXMoYmFyKS5sZW5ndGggPT09IGxlbjtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZm9vICE9PSBmb28gJiYgYmFyICE9PSBiYXI7XG59XG4iLCJpbXBvcnQgeyBhdXRvIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgaWYgKG5vZGUgPT0gbnVsbCkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICBpZiAobm9kZS50b1N0cmluZygpICE9PSAnW29iamVjdCBXaW5kb3ddJykge1xuICAgIHZhciBvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50O1xuICAgIHJldHVybiBvd25lckRvY3VtZW50ID8gb3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3cgOiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5FbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5IVE1MRWxlbWVudDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpIHtcbiAgLy8gSUUgMTEgaGFzIG5vIFNoYWRvd1Jvb3RcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLlNoYWRvd1Jvb3Q7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdDtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfTsiLCJleHBvcnQgdmFyIG1heCA9IE1hdGgubWF4O1xuZXhwb3J0IHZhciBtaW4gPSBNYXRoLm1pbjtcbmV4cG9ydCB2YXIgcm91bmQgPSBNYXRoLnJvdW5kOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVBU3RyaW5nKCkge1xuICB2YXIgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG5cbiAgaWYgKHVhRGF0YSAhPSBudWxsICYmIHVhRGF0YS5icmFuZHMgJiYgQXJyYXkuaXNBcnJheSh1YURhdGEuYnJhbmRzKSkge1xuICAgIHJldHVybiB1YURhdGEuYnJhbmRzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0uYnJhbmQgKyBcIi9cIiArIGl0ZW0udmVyc2lvbjtcbiAgICB9KS5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbn0iLCJpbXBvcnQgZ2V0VUFTdHJpbmcgZnJvbSBcIi4uL3V0aWxzL3VzZXJBZ2VudC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNMYXlvdXRWaWV3cG9ydCgpIHtcbiAgcmV0dXJuICEvXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KGdldFVBU3RyaW5nKCkpO1xufSIsImltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgaXNMYXlvdXRWaWV3cG9ydCBmcm9tIFwiLi9pc0xheW91dFZpZXdwb3J0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgaW5jbHVkZVNjYWxlLCBpc0ZpeGVkU3RyYXRlZ3kpIHtcbiAgaWYgKGluY2x1ZGVTY2FsZSA9PT0gdm9pZCAwKSB7XG4gICAgaW5jbHVkZVNjYWxlID0gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNGaXhlZFN0cmF0ZWd5ID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkU3RyYXRlZ3kgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBjbGllbnRSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIHNjYWxlWCA9IDE7XG4gIHZhciBzY2FsZVkgPSAxO1xuXG4gIGlmIChpbmNsdWRlU2NhbGUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIHNjYWxlWCA9IGVsZW1lbnQub2Zmc2V0V2lkdGggPiAwID8gcm91bmQoY2xpZW50UmVjdC53aWR0aCkgLyBlbGVtZW50Lm9mZnNldFdpZHRoIHx8IDEgOiAxO1xuICAgIHNjYWxlWSA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0ID4gMCA/IHJvdW5kKGNsaWVudFJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDEgOiAxO1xuICB9XG5cbiAgdmFyIF9yZWYgPSBpc0VsZW1lbnQoZWxlbWVudCkgPyBnZXRXaW5kb3coZWxlbWVudCkgOiB3aW5kb3csXG4gICAgICB2aXN1YWxWaWV3cG9ydCA9IF9yZWYudmlzdWFsVmlld3BvcnQ7XG5cbiAgdmFyIGFkZFZpc3VhbE9mZnNldHMgPSAhaXNMYXlvdXRWaWV3cG9ydCgpICYmIGlzRml4ZWRTdHJhdGVneTtcbiAgdmFyIHggPSAoY2xpZW50UmVjdC5sZWZ0ICsgKGFkZFZpc3VhbE9mZnNldHMgJiYgdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0IDogMCkpIC8gc2NhbGVYO1xuICB2YXIgeSA9IChjbGllbnRSZWN0LnRvcCArIChhZGRWaXN1YWxPZmZzZXRzICYmIHZpc3VhbFZpZXdwb3J0ID8gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wIDogMCkpIC8gc2NhbGVZO1xuICB2YXIgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoIC8gc2NhbGVYO1xuICB2YXIgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQgLyBzY2FsZVk7XG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHdpZHRoLFxuICAgIGhlaWdodDogaGVpZ2h0LFxuICAgIHRvcDogeSxcbiAgICByaWdodDogeCArIHdpZHRoLFxuICAgIGJvdHRvbTogeSArIGhlaWdodCxcbiAgICBsZWZ0OiB4LFxuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xufSIsImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb250YWlucyhwYXJlbnQsIGNoaWxkKSB7XG4gIHZhciByb290Tm9kZSA9IGNoaWxkLmdldFJvb3ROb2RlICYmIGNoaWxkLmdldFJvb3ROb2RlKCk7IC8vIEZpcnN0LCBhdHRlbXB0IHdpdGggZmFzdGVyIG5hdGl2ZSBtZXRob2RcblxuICBpZiAocGFyZW50LmNvbnRhaW5zKGNoaWxkKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIHRoZW4gZmFsbGJhY2sgdG8gY3VzdG9tIGltcGxlbWVudGF0aW9uIHdpdGggU2hhZG93IERPTSBzdXBwb3J0XG4gIGVsc2UgaWYgKHJvb3ROb2RlICYmIGlzU2hhZG93Um9vdChyb290Tm9kZSkpIHtcbiAgICAgIHZhciBuZXh0ID0gY2hpbGQ7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKG5leHQgJiYgcGFyZW50LmlzU2FtZU5vZGUobmV4dCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ106IG5lZWQgYSBiZXR0ZXIgd2F5IHRvIGhhbmRsZSB0aGlzLi4uXG5cblxuICAgICAgICBuZXh0ID0gbmV4dC5wYXJlbnROb2RlIHx8IG5leHQuaG9zdDtcbiAgICAgIH0gd2hpbGUgKG5leHQpO1xuICAgIH0gLy8gR2l2ZSB1cCwgdGhlIHJlc3VsdCBpcyBmYWxzZVxuXG5cbiAgcmV0dXJuIGZhbHNlO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVOYW1lKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQgPyAoZWxlbWVudC5ub2RlTmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSA6IG51bGw7XG59IiwiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0V2luZG93KGVsZW1lbnQpLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG59IiwiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RhYmxlRWxlbWVudChlbGVtZW50KSB7XG4gIHJldHVybiBbJ3RhYmxlJywgJ3RkJywgJ3RoJ10uaW5kZXhPZihnZXROb2RlTmFtZShlbGVtZW50KSkgPj0gMDtcbn0iLCJpbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkge1xuICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dOiBhc3N1bWUgYm9keSBpcyBhbHdheXMgYXZhaWxhYmxlXG4gIHJldHVybiAoKGlzRWxlbWVudChlbGVtZW50KSA/IGVsZW1lbnQub3duZXJEb2N1bWVudCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICBlbGVtZW50LmRvY3VtZW50KSB8fCB3aW5kb3cuZG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudDtcbn0iLCJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRQYXJlbnROb2RlKGVsZW1lbnQpIHtcbiAgaWYgKGdldE5vZGVOYW1lKGVsZW1lbnQpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiAoLy8gdGhpcyBpcyBhIHF1aWNrZXIgKGJ1dCBsZXNzIHR5cGUgc2FmZSkgd2F5IHRvIHNhdmUgcXVpdGUgc29tZSBieXRlcyBmcm9tIHRoZSBidW5kbGVcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG4gICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gICAgZWxlbWVudC5hc3NpZ25lZFNsb3QgfHwgLy8gc3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGVcbiAgICBlbGVtZW50LnBhcmVudE5vZGUgfHwgKCAvLyBET00gRWxlbWVudCBkZXRlY3RlZFxuICAgIGlzU2hhZG93Um9vdChlbGVtZW50KSA/IGVsZW1lbnQuaG9zdCA6IG51bGwpIHx8IC8vIFNoYWRvd1Jvb3QgZGV0ZWN0ZWRcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogSFRNTEVsZW1lbnQgaXMgYSBOb2RlXG4gICAgZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpIC8vIGZhbGxiYWNrXG5cbiAgKTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgaXNUYWJsZUVsZW1lbnQgZnJvbSBcIi4vaXNUYWJsZUVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRVQVN0cmluZyBmcm9tIFwiLi4vdXRpbHMvdXNlckFnZW50LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFRydWVPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BvcHBlcmpzL3BvcHBlci1jb3JlL2lzc3Vlcy84MzdcbiAgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50O1xufSAvLyBgLm9mZnNldFBhcmVudGAgcmVwb3J0cyBgbnVsbGAgZm9yIGZpeGVkIGVsZW1lbnRzLCB3aGlsZSBhYnNvbHV0ZSBlbGVtZW50c1xuLy8gcmV0dXJuIHRoZSBjb250YWluaW5nIGJsb2NrXG5cblxuZnVuY3Rpb24gZ2V0Q29udGFpbmluZ0Jsb2NrKGVsZW1lbnQpIHtcbiAgdmFyIGlzRmlyZWZveCA9IC9maXJlZm94L2kudGVzdChnZXRVQVN0cmluZygpKTtcbiAgdmFyIGlzSUUgPSAvVHJpZGVudC9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG5cbiAgaWYgKGlzSUUgJiYgaXNIVE1MRWxlbWVudChlbGVtZW50KSkge1xuICAgIC8vIEluIElFIDksIDEwIGFuZCAxMSBmaXhlZCBlbGVtZW50cyBjb250YWluaW5nIGJsb2NrIGlzIGFsd2F5cyBlc3RhYmxpc2hlZCBieSB0aGUgdmlld3BvcnRcbiAgICB2YXIgZWxlbWVudENzcyA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG5cbiAgICBpZiAoZWxlbWVudENzcy5wb3NpdGlvbiA9PT0gJ2ZpeGVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnROb2RlID0gZ2V0UGFyZW50Tm9kZShlbGVtZW50KTtcblxuICBpZiAoaXNTaGFkb3dSb290KGN1cnJlbnROb2RlKSkge1xuICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUuaG9zdDtcbiAgfVxuXG4gIHdoaWxlIChpc0hUTUxFbGVtZW50KGN1cnJlbnROb2RlKSAmJiBbJ2h0bWwnLCAnYm9keSddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoY3VycmVudE5vZGUpKSA8IDApIHtcbiAgICB2YXIgY3NzID0gZ2V0Q29tcHV0ZWRTdHlsZShjdXJyZW50Tm9kZSk7IC8vIFRoaXMgaXMgbm9uLWV4aGF1c3RpdmUgYnV0IGNvdmVycyB0aGUgbW9zdCBjb21tb24gQ1NTIHByb3BlcnRpZXMgdGhhdFxuICAgIC8vIGNyZWF0ZSBhIGNvbnRhaW5pbmcgYmxvY2suXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NvbnRhaW5pbmdfYmxvY2sjaWRlbnRpZnlpbmdfdGhlX2NvbnRhaW5pbmdfYmxvY2tcblxuICAgIGlmIChjc3MudHJhbnNmb3JtICE9PSAnbm9uZScgfHwgY3NzLnBlcnNwZWN0aXZlICE9PSAnbm9uZScgfHwgY3NzLmNvbnRhaW4gPT09ICdwYWludCcgfHwgWyd0cmFuc2Zvcm0nLCAncGVyc3BlY3RpdmUnXS5pbmRleE9mKGNzcy53aWxsQ2hhbmdlKSAhPT0gLTEgfHwgaXNGaXJlZm94ICYmIGNzcy53aWxsQ2hhbmdlID09PSAnZmlsdGVyJyB8fCBpc0ZpcmVmb3ggJiYgY3NzLmZpbHRlciAmJiBjc3MuZmlsdGVyICE9PSAnbm9uZScpIHtcbiAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufSAvLyBHZXRzIHRoZSBjbG9zZXN0IGFuY2VzdG9yIHBvc2l0aW9uZWQgZWxlbWVudC4gSGFuZGxlcyBzb21lIGVkZ2UgY2FzZXMsXG4vLyBzdWNoIGFzIHRhYmxlIGFuY2VzdG9ycyBhbmQgY3Jvc3MgYnJvd3NlciBidWdzLlxuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9mZnNldFBhcmVudChlbGVtZW50KSB7XG4gIHZhciB3aW5kb3cgPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpO1xuXG4gIHdoaWxlIChvZmZzZXRQYXJlbnQgJiYgaXNUYWJsZUVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBnZXRDb21wdXRlZFN0eWxlKG9mZnNldFBhcmVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG4gICAgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChvZmZzZXRQYXJlbnQpO1xuICB9XG5cbiAgaWYgKG9mZnNldFBhcmVudCAmJiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSA9PT0gJ2h0bWwnIHx8IGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdib2R5JyAmJiBnZXRDb21wdXRlZFN0eWxlKG9mZnNldFBhcmVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnKSkge1xuICAgIHJldHVybiB3aW5kb3c7XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB8fCB3aW5kb3c7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gWyd0b3AnLCAnYm90dG9tJ10uaW5kZXhPZihwbGFjZW1lbnQpID49IDAgPyAneCcgOiAneSc7XG59IiwiaW1wb3J0IHsgbWF4IGFzIG1hdGhNYXgsIG1pbiBhcyBtYXRoTWluIH0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhpbihtaW4sIHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIG1hdGhNYXgobWluLCBtYXRoTWluKHZhbHVlLCBtYXgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW5NYXhDbGFtcChtaW4sIHZhbHVlLCBtYXgpIHtcbiAgdmFyIHYgPSB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KTtcbiAgcmV0dXJuIHYgPiBtYXggPyBtYXggOiB2O1xufSIsImltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4vZ2V0RnJlc2hTaWRlT2JqZWN0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZVBhZGRpbmdPYmplY3QocGFkZGluZ09iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZ2V0RnJlc2hTaWRlT2JqZWN0KCksIHBhZGRpbmdPYmplY3QpO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEZyZXNoU2lkZU9iamVjdCgpIHtcbiAgcmV0dXJuIHtcbiAgICB0b3A6IDAsXG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIGxlZnQ6IDBcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBleHBhbmRUb0hhc2hNYXAodmFsdWUsIGtleXMpIHtcbiAgcmV0dXJuIGtleXMucmVkdWNlKGZ1bmN0aW9uIChoYXNoTWFwLCBrZXkpIHtcbiAgICBoYXNoTWFwW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gaGFzaE1hcDtcbiAgfSwge30pO1xufSIsImV4cG9ydCB2YXIgdG9wID0gJ3RvcCc7XG5leHBvcnQgdmFyIGJvdHRvbSA9ICdib3R0b20nO1xuZXhwb3J0IHZhciByaWdodCA9ICdyaWdodCc7XG5leHBvcnQgdmFyIGxlZnQgPSAnbGVmdCc7XG5leHBvcnQgdmFyIGF1dG8gPSAnYXV0byc7XG5leHBvcnQgdmFyIGJhc2VQbGFjZW1lbnRzID0gW3RvcCwgYm90dG9tLCByaWdodCwgbGVmdF07XG5leHBvcnQgdmFyIHN0YXJ0ID0gJ3N0YXJ0JztcbmV4cG9ydCB2YXIgZW5kID0gJ2VuZCc7XG5leHBvcnQgdmFyIGNsaXBwaW5nUGFyZW50cyA9ICdjbGlwcGluZ1BhcmVudHMnO1xuZXhwb3J0IHZhciB2aWV3cG9ydCA9ICd2aWV3cG9ydCc7XG5leHBvcnQgdmFyIHBvcHBlciA9ICdwb3BwZXInO1xuZXhwb3J0IHZhciByZWZlcmVuY2UgPSAncmVmZXJlbmNlJztcbmV4cG9ydCB2YXIgdmFyaWF0aW9uUGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9iYXNlUGxhY2VtZW50cy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gIHJldHVybiBhY2MuY29uY2F0KFtwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pO1xuZXhwb3J0IHZhciBwbGFjZW1lbnRzID0gLyojX19QVVJFX18qL1tdLmNvbmNhdChiYXNlUGxhY2VtZW50cywgW2F1dG9dKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gIHJldHVybiBhY2MuY29uY2F0KFtwbGFjZW1lbnQsIHBsYWNlbWVudCArIFwiLVwiICsgc3RhcnQsIHBsYWNlbWVudCArIFwiLVwiICsgZW5kXSk7XG59LCBbXSk7IC8vIG1vZGlmaWVycyB0aGF0IG5lZWQgdG8gcmVhZCB0aGUgRE9NXG5cbmV4cG9ydCB2YXIgYmVmb3JlUmVhZCA9ICdiZWZvcmVSZWFkJztcbmV4cG9ydCB2YXIgcmVhZCA9ICdyZWFkJztcbmV4cG9ydCB2YXIgYWZ0ZXJSZWFkID0gJ2FmdGVyUmVhZCc7IC8vIHB1cmUtbG9naWMgbW9kaWZpZXJzXG5cbmV4cG9ydCB2YXIgYmVmb3JlTWFpbiA9ICdiZWZvcmVNYWluJztcbmV4cG9ydCB2YXIgbWFpbiA9ICdtYWluJztcbmV4cG9ydCB2YXIgYWZ0ZXJNYWluID0gJ2FmdGVyTWFpbic7IC8vIG1vZGlmaWVyIHdpdGggdGhlIHB1cnBvc2UgdG8gd3JpdGUgdG8gdGhlIERPTSAob3Igd3JpdGUgaW50byBhIGZyYW1ld29yayBzdGF0ZSlcblxuZXhwb3J0IHZhciBiZWZvcmVXcml0ZSA9ICdiZWZvcmVXcml0ZSc7XG5leHBvcnQgdmFyIHdyaXRlID0gJ3dyaXRlJztcbmV4cG9ydCB2YXIgYWZ0ZXJXcml0ZSA9ICdhZnRlcldyaXRlJztcbmV4cG9ydCB2YXIgbW9kaWZpZXJQaGFzZXMgPSBbYmVmb3JlUmVhZCwgcmVhZCwgYWZ0ZXJSZWFkLCBiZWZvcmVNYWluLCBtYWluLCBhZnRlck1haW4sIGJlZm9yZVdyaXRlLCB3cml0ZSwgYWZ0ZXJXcml0ZV07IiwiaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRMYXlvdXRSZWN0IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qc1wiO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gXCIuLi9kb20tdXRpbHMvY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgd2l0aGluIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi4vdXRpbHMvbWVyZ2VQYWRkaW5nT2JqZWN0LmpzXCI7XG5pbXBvcnQgZXhwYW5kVG9IYXNoTWFwIGZyb20gXCIuLi91dGlscy9leHBhbmRUb0hhc2hNYXAuanNcIjtcbmltcG9ydCB7IGxlZnQsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdG9wLCBib3R0b20gfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG52YXIgdG9QYWRkaW5nT2JqZWN0ID0gZnVuY3Rpb24gdG9QYWRkaW5nT2JqZWN0KHBhZGRpbmcsIHN0YXRlKSB7XG4gIHBhZGRpbmcgPSB0eXBlb2YgcGFkZGluZyA9PT0gJ2Z1bmN0aW9uJyA/IHBhZGRpbmcoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiBwYWRkaW5nO1xuICByZXR1cm4gbWVyZ2VQYWRkaW5nT2JqZWN0KHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IHBhZGRpbmcgOiBleHBhbmRUb0hhc2hNYXAocGFkZGluZywgYmFzZVBsYWNlbWVudHMpKTtcbn07XG5cbmZ1bmN0aW9uIGFycm93KF9yZWYpIHtcbiAgdmFyIF9zdGF0ZSRtb2RpZmllcnNEYXRhJDtcblxuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnM7XG4gIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHM7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgYXhpcyA9IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KTtcbiAgdmFyIGlzVmVydGljYWwgPSBbbGVmdCwgcmlnaHRdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgdmFyIGxlbiA9IGlzVmVydGljYWwgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG5cbiAgaWYgKCFhcnJvd0VsZW1lbnQgfHwgIXBvcHBlck9mZnNldHMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcGFkZGluZ09iamVjdCA9IHRvUGFkZGluZ09iamVjdChvcHRpb25zLnBhZGRpbmcsIHN0YXRlKTtcbiAgdmFyIGFycm93UmVjdCA9IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KTtcbiAgdmFyIG1pblByb3AgPSBheGlzID09PSAneScgPyB0b3AgOiBsZWZ0O1xuICB2YXIgbWF4UHJvcCA9IGF4aXMgPT09ICd5JyA/IGJvdHRvbSA6IHJpZ2h0O1xuICB2YXIgZW5kRGlmZiA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZVtsZW5dICsgc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdIC0gcG9wcGVyT2Zmc2V0c1theGlzXSAtIHN0YXRlLnJlY3RzLnBvcHBlcltsZW5dO1xuICB2YXIgc3RhcnREaWZmID0gcG9wcGVyT2Zmc2V0c1theGlzXSAtIHN0YXRlLnJlY3RzLnJlZmVyZW5jZVtheGlzXTtcbiAgdmFyIGFycm93T2Zmc2V0UGFyZW50ID0gZ2V0T2Zmc2V0UGFyZW50KGFycm93RWxlbWVudCk7XG4gIHZhciBjbGllbnRTaXplID0gYXJyb3dPZmZzZXRQYXJlbnQgPyBheGlzID09PSAneScgPyBhcnJvd09mZnNldFBhcmVudC5jbGllbnRIZWlnaHQgfHwgMCA6IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFdpZHRoIHx8IDAgOiAwO1xuICB2YXIgY2VudGVyVG9SZWZlcmVuY2UgPSBlbmREaWZmIC8gMiAtIHN0YXJ0RGlmZiAvIDI7IC8vIE1ha2Ugc3VyZSB0aGUgYXJyb3cgZG9lc24ndCBvdmVyZmxvdyB0aGUgcG9wcGVyIGlmIHRoZSBjZW50ZXIgcG9pbnQgaXNcbiAgLy8gb3V0c2lkZSBvZiB0aGUgcG9wcGVyIGJvdW5kc1xuXG4gIHZhciBtaW4gPSBwYWRkaW5nT2JqZWN0W21pblByb3BdO1xuICB2YXIgbWF4ID0gY2xpZW50U2l6ZSAtIGFycm93UmVjdFtsZW5dIC0gcGFkZGluZ09iamVjdFttYXhQcm9wXTtcbiAgdmFyIGNlbnRlciA9IGNsaWVudFNpemUgLyAyIC0gYXJyb3dSZWN0W2xlbl0gLyAyICsgY2VudGVyVG9SZWZlcmVuY2U7XG4gIHZhciBvZmZzZXQgPSB3aXRoaW4obWluLCBjZW50ZXIsIG1heCk7IC8vIFByZXZlbnRzIGJyZWFraW5nIHN5bnRheCBoaWdobGlnaHRpbmcuLi5cblxuICB2YXIgYXhpc1Byb3AgPSBheGlzO1xuICBzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdID0gKF9zdGF0ZSRtb2RpZmllcnNEYXRhJCA9IHt9LCBfc3RhdGUkbW9kaWZpZXJzRGF0YSRbYXhpc1Byb3BdID0gb2Zmc2V0LCBfc3RhdGUkbW9kaWZpZXJzRGF0YSQuY2VudGVyT2Zmc2V0ID0gb2Zmc2V0IC0gY2VudGVyLCBfc3RhdGUkbW9kaWZpZXJzRGF0YSQpO1xufVxuXG5mdW5jdGlvbiBlZmZlY3QoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJGVsZW1lbnQgPSBvcHRpb25zLmVsZW1lbnQsXG4gICAgICBhcnJvd0VsZW1lbnQgPSBfb3B0aW9ucyRlbGVtZW50ID09PSB2b2lkIDAgPyAnW2RhdGEtcG9wcGVyLWFycm93XScgOiBfb3B0aW9ucyRlbGVtZW50O1xuXG4gIGlmIChhcnJvd0VsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfSAvLyBDU1Mgc2VsZWN0b3JcblxuXG4gIGlmICh0eXBlb2YgYXJyb3dFbGVtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLnBvcHBlci5xdWVyeVNlbGVjdG9yKGFycm93RWxlbWVudCk7XG5cbiAgICBpZiAoIWFycm93RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoYXJyb3dFbGVtZW50KSkge1xuICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogXCJhcnJvd1wiIGVsZW1lbnQgbXVzdCBiZSBhbiBIVE1MRWxlbWVudCAobm90IGFuIFNWR0VsZW1lbnQpLicsICdUbyB1c2UgYW4gU1ZHIGFycm93LCB3cmFwIGl0IGluIGFuIEhUTUxFbGVtZW50IHRoYXQgd2lsbCBiZSB1c2VkIGFzJywgJ3RoZSBhcnJvdy4nXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29udGFpbnMoc3RhdGUuZWxlbWVudHMucG9wcGVyLCBhcnJvd0VsZW1lbnQpKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgY29uc29sZS5lcnJvcihbJ1BvcHBlcjogXCJhcnJvd1wiIG1vZGlmaWVyXFwncyBgZWxlbWVudGAgbXVzdCBiZSBhIGNoaWxkIG9mIHRoZSBwb3BwZXInLCAnZWxlbWVudC4nXS5qb2luKCcgJykpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0YXRlLmVsZW1lbnRzLmFycm93ID0gYXJyb3dFbGVtZW50O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnYXJyb3cnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogYXJyb3csXG4gIGVmZmVjdDogZWZmZWN0LFxuICByZXF1aXJlczogWydwb3BwZXJPZmZzZXRzJ10sXG4gIHJlcXVpcmVzSWZFeGlzdHM6IFsncHJldmVudE92ZXJmbG93J11cbn07IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG59IiwiaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCBlbmQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB1bnNldFNpZGVzID0ge1xuICB0b3A6ICdhdXRvJyxcbiAgcmlnaHQ6ICdhdXRvJyxcbiAgYm90dG9tOiAnYXV0bycsXG4gIGxlZnQ6ICdhdXRvJ1xufTsgLy8gUm91bmQgdGhlIG9mZnNldHMgdG8gdGhlIG5lYXJlc3Qgc3VpdGFibGUgc3VicGl4ZWwgYmFzZWQgb24gdGhlIERQUi5cbi8vIFpvb21pbmcgY2FuIGNoYW5nZSB0aGUgRFBSLCBidXQgaXQgc2VlbXMgdG8gcmVwb3J0IGEgdmFsdWUgdGhhdCB3aWxsXG4vLyBjbGVhbmx5IGRpdmlkZSB0aGUgdmFsdWVzIGludG8gdGhlIGFwcHJvcHJpYXRlIHN1YnBpeGVscy5cblxuZnVuY3Rpb24gcm91bmRPZmZzZXRzQnlEUFIoX3JlZiwgd2luKSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcbiAgdmFyIGRwciA9IHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG4gIHJldHVybiB7XG4gICAgeDogcm91bmQoeCAqIGRwcikgLyBkcHIgfHwgMCxcbiAgICB5OiByb3VuZCh5ICogZHByKSAvIGRwciB8fCAwXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1N0eWxlcyhfcmVmMikge1xuICB2YXIgX09iamVjdCRhc3NpZ24yO1xuXG4gIHZhciBwb3BwZXIgPSBfcmVmMi5wb3BwZXIsXG4gICAgICBwb3BwZXJSZWN0ID0gX3JlZjIucG9wcGVyUmVjdCxcbiAgICAgIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICAgIHZhcmlhdGlvbiA9IF9yZWYyLnZhcmlhdGlvbixcbiAgICAgIG9mZnNldHMgPSBfcmVmMi5vZmZzZXRzLFxuICAgICAgcG9zaXRpb24gPSBfcmVmMi5wb3NpdGlvbixcbiAgICAgIGdwdUFjY2VsZXJhdGlvbiA9IF9yZWYyLmdwdUFjY2VsZXJhdGlvbixcbiAgICAgIGFkYXB0aXZlID0gX3JlZjIuYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHMgPSBfcmVmMi5yb3VuZE9mZnNldHMsXG4gICAgICBpc0ZpeGVkID0gX3JlZjIuaXNGaXhlZDtcbiAgdmFyIF9vZmZzZXRzJHggPSBvZmZzZXRzLngsXG4gICAgICB4ID0gX29mZnNldHMkeCA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHgsXG4gICAgICBfb2Zmc2V0cyR5ID0gb2Zmc2V0cy55LFxuICAgICAgeSA9IF9vZmZzZXRzJHkgPT09IHZvaWQgMCA/IDAgOiBfb2Zmc2V0cyR5O1xuXG4gIHZhciBfcmVmMyA9IHR5cGVvZiByb3VuZE9mZnNldHMgPT09ICdmdW5jdGlvbicgPyByb3VuZE9mZnNldHMoe1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9KSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjMueDtcbiAgeSA9IF9yZWYzLnk7XG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tO1xuICAgICAgdmFyIG9mZnNldFkgPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIG9mZnNldFBhcmVudFtoZWlnaHRQcm9wXTtcbiAgICAgIHkgLT0gb2Zmc2V0WSAtIHBvcHBlclJlY3QuaGVpZ2h0O1xuICAgICAgeSAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCAocGxhY2VtZW50ID09PSB0b3AgfHwgcGxhY2VtZW50ID09PSBib3R0b20pICYmIHZhcmlhdGlvbiA9PT0gZW5kKSB7XG4gICAgICBzaWRlWCA9IHJpZ2h0O1xuICAgICAgdmFyIG9mZnNldFggPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC53aWR0aCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF07XG4gICAgICB4IC09IG9mZnNldFggLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICB2YXIgX3JlZjQgPSByb3VuZE9mZnNldHMgPT09IHRydWUgPyByb3VuZE9mZnNldHNCeURQUih7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0sIGdldFdpbmRvdyhwb3BwZXIpKSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjQueDtcbiAgeSA9IF9yZWY0Lnk7XG5cbiAgaWYgKGdwdUFjY2VsZXJhdGlvbikge1xuICAgIHZhciBfT2JqZWN0JGFzc2lnbjtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIChfT2JqZWN0JGFzc2lnbiA9IHt9LCBfT2JqZWN0JGFzc2lnbltzaWRlWV0gPSBoYXNZID8gJzAnIDogJycsIF9PYmplY3QkYXNzaWduW3NpZGVYXSA9IGhhc1ggPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ24udHJhbnNmb3JtID0gKHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpIDw9IDEgPyBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiIDogXCJ0cmFuc2xhdGUzZChcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4LCAwKVwiLCBfT2JqZWN0JGFzc2lnbikpO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduMiA9IHt9LCBfT2JqZWN0JGFzc2lnbjJbc2lkZVldID0gaGFzWSA/IHkgKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yW3NpZGVYXSA9IGhhc1ggPyB4ICsgXCJweFwiIDogJycsIF9PYmplY3QkYXNzaWduMi50cmFuc2Zvcm0gPSAnJywgX09iamVjdCRhc3NpZ24yKSk7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVTdHlsZXMoX3JlZjUpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjUuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjUub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJGdwdUFjY2VsZXJhdCA9IG9wdGlvbnMuZ3B1QWNjZWxlcmF0aW9uLFxuICAgICAgZ3B1QWNjZWxlcmF0aW9uID0gX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZ3B1QWNjZWxlcmF0LFxuICAgICAgX29wdGlvbnMkYWRhcHRpdmUgPSBvcHRpb25zLmFkYXB0aXZlLFxuICAgICAgYWRhcHRpdmUgPSBfb3B0aW9ucyRhZGFwdGl2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJGFkYXB0aXZlLFxuICAgICAgX29wdGlvbnMkcm91bmRPZmZzZXRzID0gb3B0aW9ucy5yb3VuZE9mZnNldHMsXG4gICAgICByb3VuZE9mZnNldHMgPSBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRyb3VuZE9mZnNldHM7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHZhciB0cmFuc2l0aW9uUHJvcGVydHkgPSBnZXRDb21wdXRlZFN0eWxlKHN0YXRlLmVsZW1lbnRzLnBvcHBlcikudHJhbnNpdGlvblByb3BlcnR5IHx8ICcnO1xuXG4gICAgaWYgKGFkYXB0aXZlICYmIFsndHJhbnNmb3JtJywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLnNvbWUoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG4gICAgICByZXR1cm4gdHJhbnNpdGlvblByb3BlcnR5LmluZGV4T2YocHJvcGVydHkpID49IDA7XG4gICAgfSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihbJ1BvcHBlcjogRGV0ZWN0ZWQgQ1NTIHRyYW5zaXRpb25zIG9uIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nJywgJ0NTUyBwcm9wZXJ0aWVzOiBcInRyYW5zZm9ybVwiLCBcInRvcFwiLCBcInJpZ2h0XCIsIFwiYm90dG9tXCIsIFwibGVmdFwiLicsICdcXG5cXG4nLCAnRGlzYWJsZSB0aGUgXCJjb21wdXRlU3R5bGVzXCIgbW9kaWZpZXJcXCdzIGBhZGFwdGl2ZWAgb3B0aW9uIHRvIGFsbG93JywgJ2ZvciBzbW9vdGggdHJhbnNpdGlvbnMsIG9yIHJlbW92ZSB0aGVzZSBwcm9wZXJ0aWVzIGZyb20gdGhlIENTUycsICd0cmFuc2l0aW9uIGRlY2xhcmF0aW9uIG9uIHRoZSBwb3BwZXIgZWxlbWVudCBpZiBvbmx5IHRyYW5zaXRpb25pbmcnLCAnb3BhY2l0eSBvciBiYWNrZ3JvdW5kLWNvbG9yIGZvciBleGFtcGxlLicsICdcXG5cXG4nLCAnV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBwb3BwZXIgZWxlbWVudCBhcyBhIHdyYXBwZXIgYXJvdW5kIGFuIGlubmVyJywgJ2VsZW1lbnQgdGhhdCBjYW4gaGF2ZSBhbnkgQ1NTIHByb3BlcnR5IHRyYW5zaXRpb25lZCBmb3IgYW5pbWF0aW9ucy4nXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjb21tb25TdHlsZXMgPSB7XG4gICAgcGxhY2VtZW50OiBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCksXG4gICAgdmFyaWF0aW9uOiBnZXRWYXJpYXRpb24oc3RhdGUucGxhY2VtZW50KSxcbiAgICBwb3BwZXI6IHN0YXRlLmVsZW1lbnRzLnBvcHBlcixcbiAgICBwb3BwZXJSZWN0OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgZ3B1QWNjZWxlcmF0aW9uOiBncHVBY2NlbGVyYXRpb24sXG4gICAgaXNGaXhlZDogc3RhdGUub3B0aW9ucy5zdHJhdGVneSA9PT0gJ2ZpeGVkJ1xuICB9O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zdHlsZXMucG9wcGVyLCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgYWRhcHRpdmU6IGFkYXB0aXZlLFxuICAgICAgcm91bmRPZmZzZXRzOiByb3VuZE9mZnNldHNcbiAgICB9KSkpO1xuICB9XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3cgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5hcnJvdyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5hcnJvdywgbWFwVG9TdHlsZXMoT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCB7XG4gICAgICBvZmZzZXRzOiBzdGF0ZS5tb2RpZmllcnNEYXRhLmFycm93LFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBhZGFwdGl2ZTogZmFsc2UsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyLCB7XG4gICAgJ2RhdGEtcG9wcGVyLXBsYWNlbWVudCc6IHN0YXRlLnBsYWNlbWVudFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2NvbXB1dGVTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ2JlZm9yZVdyaXRlJyxcbiAgZm46IGNvbXB1dGVTdHlsZXMsXG4gIGRhdGE6IHt9XG59OyIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRXaW5kb3cuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG52YXIgcGFzc2l2ZSA9IHtcbiAgcGFzc2l2ZTogdHJ1ZVxufTtcblxuZnVuY3Rpb24gZWZmZWN0KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIGluc3RhbmNlID0gX3JlZi5pbnN0YW5jZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnM7XG4gIHZhciBfb3B0aW9ucyRzY3JvbGwgPSBvcHRpb25zLnNjcm9sbCxcbiAgICAgIHNjcm9sbCA9IF9vcHRpb25zJHNjcm9sbCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHNjcm9sbCxcbiAgICAgIF9vcHRpb25zJHJlc2l6ZSA9IG9wdGlvbnMucmVzaXplLFxuICAgICAgcmVzaXplID0gX29wdGlvbnMkcmVzaXplID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkcmVzaXplO1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KHN0YXRlLmVsZW1lbnRzLnBvcHBlcik7XG4gIHZhciBzY3JvbGxQYXJlbnRzID0gW10uY29uY2F0KHN0YXRlLnNjcm9sbFBhcmVudHMucmVmZXJlbmNlLCBzdGF0ZS5zY3JvbGxQYXJlbnRzLnBvcHBlcik7XG5cbiAgaWYgKHNjcm9sbCkge1xuICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2Nyb2xsUGFyZW50KSB7XG4gICAgICBzY3JvbGxQYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaW5zdGFuY2UudXBkYXRlLCBwYXNzaXZlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChyZXNpemUpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaW5zdGFuY2UudXBkYXRlLCBwYXNzaXZlKTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHNjcm9sbCkge1xuICAgICAgc2Nyb2xsUGFyZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChzY3JvbGxQYXJlbnQpIHtcbiAgICAgICAgc2Nyb2xsUGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVzaXplKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaW5zdGFuY2UudXBkYXRlLCBwYXNzaXZlKTtcbiAgICB9XG4gIH07XG59IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdldmVudExpc3RlbmVycycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnd3JpdGUnLFxuICBmbjogZnVuY3Rpb24gZm4oKSB7fSxcbiAgZWZmZWN0OiBlZmZlY3QsXG4gIGRhdGE6IHt9XG59OyIsInZhciBoYXNoID0ge1xuICBsZWZ0OiAncmlnaHQnLFxuICByaWdodDogJ2xlZnQnLFxuICBib3R0b206ICd0b3AnLFxuICB0b3A6ICdib3R0b20nXG59O1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQucmVwbGFjZSgvbGVmdHxyaWdodHxib3R0b218dG9wL2csIGZ1bmN0aW9uIChtYXRjaGVkKSB7XG4gICAgcmV0dXJuIGhhc2hbbWF0Y2hlZF07XG4gIH0pO1xufSIsInZhciBoYXNoID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xuICAgIHJldHVybiBoYXNoW21hdGNoZWRdO1xuICB9KTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsKG5vZGUpIHtcbiAgdmFyIHdpbiA9IGdldFdpbmRvdyhub2RlKTtcbiAgdmFyIHNjcm9sbExlZnQgPSB3aW4ucGFnZVhPZmZzZXQ7XG4gIHZhciBzY3JvbGxUb3AgPSB3aW4ucGFnZVlPZmZzZXQ7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogc2Nyb2xsTGVmdCxcbiAgICBzY3JvbGxUb3A6IHNjcm9sbFRvcFxuICB9O1xufSIsImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGwuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCkge1xuICAvLyBJZiA8aHRtbD4gaGFzIGEgQ1NTIHdpZHRoIGdyZWF0ZXIgdGhhbiB0aGUgdmlld3BvcnQsIHRoZW4gdGhpcyB3aWxsIGJlXG4gIC8vIGluY29ycmVjdCBmb3IgUlRMLlxuICAvLyBQb3BwZXIgMSBpcyBicm9rZW4gaW4gdGhpcyBjYXNlIGFuZCBuZXZlciBoYWQgYSBidWcgcmVwb3J0IHNvIGxldCdzIGFzc3VtZVxuICAvLyBpdCdzIG5vdCBhbiBpc3N1ZS4gSSBkb24ndCB0aGluayBhbnlvbmUgZXZlciBzcGVjaWZpZXMgd2lkdGggb24gPGh0bWw+XG4gIC8vIGFueXdheS5cbiAgLy8gQnJvd3NlcnMgd2hlcmUgdGhlIGxlZnQgc2Nyb2xsYmFyIGRvZXNuJ3QgY2F1c2UgYW4gaXNzdWUgcmVwb3J0IGAwYCBmb3JcbiAgLy8gdGhpcyAoZS5nLiBFZGdlIDIwMTksIElFMTEsIFNhZmFyaSlcbiAgcmV0dXJuIGdldEJvdW5kaW5nQ2xpZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpLmxlZnQgKyBnZXRXaW5kb3dTY3JvbGwoZWxlbWVudCkuc2Nyb2xsTGVmdDtcbn0iLCJpbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1Njcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIC8vIEZpcmVmb3ggd2FudHMgdXMgdG8gY2hlY2sgYC14YCBhbmQgYC15YCB2YXJpYXRpb25zIGFzIHdlbGxcbiAgdmFyIF9nZXRDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSxcbiAgICAgIG92ZXJmbG93ID0gX2dldENvbXB1dGVkU3R5bGUub3ZlcmZsb3csXG4gICAgICBvdmVyZmxvd1ggPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1gsXG4gICAgICBvdmVyZmxvd1kgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvd1k7XG5cbiAgcmV0dXJuIC9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbi8udGVzdChvdmVyZmxvdyArIG92ZXJmbG93WSArIG92ZXJmbG93WCk7XG59IiwiaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGlzU2Nyb2xsUGFyZW50IGZyb20gXCIuL2lzU2Nyb2xsUGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZSkge1xuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5kZXhPZihnZXROb2RlTmFtZShub2RlKSkgPj0gMCkge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBpZiAoaXNIVE1MRWxlbWVudChub2RlKSAmJiBpc1Njcm9sbFBhcmVudChub2RlKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKG5vZGUpKTtcbn0iLCJpbXBvcnQgZ2V0U2Nyb2xsUGFyZW50IGZyb20gXCIuL2dldFNjcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuLypcbmdpdmVuIGEgRE9NIGVsZW1lbnQsIHJldHVybiB0aGUgbGlzdCBvZiBhbGwgc2Nyb2xsIHBhcmVudHMsIHVwIHRoZSBsaXN0IG9mIGFuY2Vzb3JzXG51bnRpbCB3ZSBnZXQgdG8gdGhlIHRvcCB3aW5kb3cgb2JqZWN0LiBUaGlzIGxpc3QgaXMgd2hhdCB3ZSBhdHRhY2ggc2Nyb2xsIGxpc3RlbmVyc1xudG8sIGJlY2F1c2UgaWYgYW55IG9mIHRoZXNlIHBhcmVudCBlbGVtZW50cyBzY3JvbGwsIHdlJ2xsIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZVxucmVmZXJlbmNlIGVsZW1lbnQncyBwb3NpdGlvbi5cbiovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpc3RTY3JvbGxQYXJlbnRzKGVsZW1lbnQsIGxpc3QpIHtcbiAgdmFyIF9lbGVtZW50JG93bmVyRG9jdW1lbjtcblxuICBpZiAobGlzdCA9PT0gdm9pZCAwKSB7XG4gICAgbGlzdCA9IFtdO1xuICB9XG5cbiAgdmFyIHNjcm9sbFBhcmVudCA9IGdldFNjcm9sbFBhcmVudChlbGVtZW50KTtcbiAgdmFyIGlzQm9keSA9IHNjcm9sbFBhcmVudCA9PT0gKChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keSk7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3coc2Nyb2xsUGFyZW50KTtcbiAgdmFyIHRhcmdldCA9IGlzQm9keSA/IFt3aW5dLmNvbmNhdCh3aW4udmlzdWFsVmlld3BvcnQgfHwgW10sIGlzU2Nyb2xsUGFyZW50KHNjcm9sbFBhcmVudCkgPyBzY3JvbGxQYXJlbnQgOiBbXSkgOiBzY3JvbGxQYXJlbnQ7XG4gIHZhciB1cGRhdGVkTGlzdCA9IGxpc3QuY29uY2F0KHRhcmdldCk7XG4gIHJldHVybiBpc0JvZHkgPyB1cGRhdGVkTGlzdCA6IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLWNhbGxdOiBpc0JvZHkgdGVsbHMgdXMgdGFyZ2V0IHdpbGwgYmUgYW4gSFRNTEVsZW1lbnQgaGVyZVxuICB1cGRhdGVkTGlzdC5jb25jYXQobGlzdFNjcm9sbFBhcmVudHMoZ2V0UGFyZW50Tm9kZSh0YXJnZXQpKSk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVjdFRvQ2xpZW50UmVjdChyZWN0KSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZWN0LCB7XG4gICAgbGVmdDogcmVjdC54LFxuICAgIHRvcDogcmVjdC55LFxuICAgIHJpZ2h0OiByZWN0LnggKyByZWN0LndpZHRoLFxuICAgIGJvdHRvbTogcmVjdC55ICsgcmVjdC5oZWlnaHRcbiAgfSk7XG59IiwiaW1wb3J0IHsgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWaWV3cG9ydFJlY3QgZnJvbSBcIi4vZ2V0Vmlld3BvcnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRSZWN0IGZyb20gXCIuL2dldERvY3VtZW50UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4vY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4uL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgZmFsc2UsIHN0cmF0ZWd5ID09PSAnZml4ZWQnKTtcbiAgcmVjdC50b3AgPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICByZWN0LmxlZnQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIHJlY3QuYm90dG9tID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC5yaWdodCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3Qud2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LmhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnggPSByZWN0LmxlZnQ7XG4gIHJlY3QueSA9IHJlY3QudG9wO1xuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQsIHN0cmF0ZWd5KSB7XG4gIHJldHVybiBjbGlwcGluZ1BhcmVudCA9PT0gdmlld3BvcnQgPyByZWN0VG9DbGllbnRSZWN0KGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkpIDogaXNFbGVtZW50KGNsaXBwaW5nUGFyZW50KSA/IGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnksIHN0cmF0ZWd5KSB7XG4gIHZhciBtYWluQ2xpcHBpbmdQYXJlbnRzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ1BhcmVudHMnID8gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIDogW10uY29uY2F0KGJvdW5kYXJ5KTtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IFtdLmNvbmNhdChtYWluQ2xpcHBpbmdQYXJlbnRzLCBbcm9vdEJvdW5kYXJ5XSk7XG4gIHZhciBmaXJzdENsaXBwaW5nUGFyZW50ID0gY2xpcHBpbmdQYXJlbnRzWzBdO1xuICB2YXIgY2xpcHBpbmdSZWN0ID0gY2xpcHBpbmdQYXJlbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjUmVjdCwgY2xpcHBpbmdQYXJlbnQpIHtcbiAgICB2YXIgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSk7XG4gICAgYWNjUmVjdC50b3AgPSBtYXgocmVjdC50b3AsIGFjY1JlY3QudG9wKTtcbiAgICBhY2NSZWN0LnJpZ2h0ID0gbWluKHJlY3QucmlnaHQsIGFjY1JlY3QucmlnaHQpO1xuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XG4gICAgYWNjUmVjdC5sZWZ0ID0gbWF4KHJlY3QubGVmdCwgYWNjUmVjdC5sZWZ0KTtcbiAgICByZXR1cm4gYWNjUmVjdDtcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgZmlyc3RDbGlwcGluZ1BhcmVudCwgc3RyYXRlZ3kpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSIsImltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGlzTGF5b3V0Vmlld3BvcnQgZnJvbSBcIi4vaXNMYXlvdXRWaWV3cG9ydC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRSZWN0KGVsZW1lbnQsIHN0cmF0ZWd5KSB7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3coZWxlbWVudCk7XG4gIHZhciBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICB2YXIgdmlzdWFsVmlld3BvcnQgPSB3aW4udmlzdWFsVmlld3BvcnQ7XG4gIHZhciB3aWR0aCA9IGh0bWwuY2xpZW50V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBodG1sLmNsaWVudEhlaWdodDtcbiAgdmFyIHggPSAwO1xuICB2YXIgeSA9IDA7XG5cbiAgaWYgKHZpc3VhbFZpZXdwb3J0KSB7XG4gICAgd2lkdGggPSB2aXN1YWxWaWV3cG9ydC53aWR0aDtcbiAgICBoZWlnaHQgPSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7XG4gICAgdmFyIGxheW91dFZpZXdwb3J0ID0gaXNMYXlvdXRWaWV3cG9ydCgpO1xuXG4gICAgaWYgKGxheW91dFZpZXdwb3J0IHx8ICFsYXlvdXRWaWV3cG9ydCAmJiBzdHJhdGVneSA9PT0gJ2ZpeGVkJykge1xuICAgICAgeCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQ7XG4gICAgICB5ID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHdpZHRoLFxuICAgIGhlaWdodDogaGVpZ2h0LFxuICAgIHg6IHggKyBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQpLFxuICAgIHk6IHlcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0RG9jdW1lbnRFbGVtZW50IGZyb20gXCIuL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGwuanNcIjtcbmltcG9ydCB7IG1heCB9IGZyb20gXCIuLi91dGlscy9tYXRoLmpzXCI7IC8vIEdldHMgdGhlIGVudGlyZSBzaXplIG9mIHRoZSBzY3JvbGxhYmxlIGRvY3VtZW50IGFyZWEsIGV2ZW4gZXh0ZW5kaW5nIG91dHNpZGVcbi8vIG9mIHRoZSBgPGh0bWw+YCBhbmQgYDxib2R5PmAgcmVjdCBib3VuZHMgaWYgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGVcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0RG9jdW1lbnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIF9lbGVtZW50JG93bmVyRG9jdW1lbjtcblxuICB2YXIgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgdmFyIHdpblNjcm9sbCA9IGdldFdpbmRvd1Njcm9sbChlbGVtZW50KTtcbiAgdmFyIGJvZHkgPSAoX2VsZW1lbnQkb3duZXJEb2N1bWVuID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2VsZW1lbnQkb3duZXJEb2N1bWVuLmJvZHk7XG4gIHZhciB3aWR0aCA9IG1heChodG1sLnNjcm9sbFdpZHRoLCBodG1sLmNsaWVudFdpZHRoLCBib2R5ID8gYm9keS5zY3JvbGxXaWR0aCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudFdpZHRoIDogMCk7XG4gIHZhciBoZWlnaHQgPSBtYXgoaHRtbC5zY3JvbGxIZWlnaHQsIGh0bWwuY2xpZW50SGVpZ2h0LCBib2R5ID8gYm9keS5zY3JvbGxIZWlnaHQgOiAwLCBib2R5ID8gYm9keS5jbGllbnRIZWlnaHQgOiAwKTtcbiAgdmFyIHggPSAtd2luU2Nyb2xsLnNjcm9sbExlZnQgKyBnZXRXaW5kb3dTY3JvbGxCYXJYKGVsZW1lbnQpO1xuICB2YXIgeSA9IC13aW5TY3JvbGwuc2Nyb2xsVG9wO1xuXG4gIGlmIChnZXRDb21wdXRlZFN0eWxlKGJvZHkgfHwgaHRtbCkuZGlyZWN0aW9uID09PSAncnRsJykge1xuICAgIHggKz0gbWF4KGh0bWwuY2xpZW50V2lkdGgsIGJvZHkgPyBib2R5LmNsaWVudFdpZHRoIDogMCkgLSB3aWR0aDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2lkdGg6IHdpZHRoLFxuICAgIGhlaWdodDogaGVpZ2h0LFxuICAgIHg6IHgsXG4gICAgeTogeVxuICB9O1xufSIsImltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4vZ2V0VmFyaWF0aW9uLmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuL2dldE1haW5BeGlzRnJvbVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBzdGFydCwgZW5kIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlT2Zmc2V0cyhfcmVmKSB7XG4gIHZhciByZWZlcmVuY2UgPSBfcmVmLnJlZmVyZW5jZSxcbiAgICAgIGVsZW1lbnQgPSBfcmVmLmVsZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfcmVmLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQgPyBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50ID8gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgOiBudWxsO1xuICB2YXIgY29tbW9uWCA9IHJlZmVyZW5jZS54ICsgcmVmZXJlbmNlLndpZHRoIC8gMiAtIGVsZW1lbnQud2lkdGggLyAyO1xuICB2YXIgY29tbW9uWSA9IHJlZmVyZW5jZS55ICsgcmVmZXJlbmNlLmhlaWdodCAvIDIgLSBlbGVtZW50LmhlaWdodCAvIDI7XG4gIHZhciBvZmZzZXRzO1xuXG4gIHN3aXRjaCAoYmFzZVBsYWNlbWVudCkge1xuICAgIGNhc2UgdG9wOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgLSBlbGVtZW50LmhlaWdodFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBib3R0b206XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiBjb21tb25YLFxuICAgICAgICB5OiByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcmlnaHQ6XG4gICAgICBvZmZzZXRzID0ge1xuICAgICAgICB4OiByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBsZWZ0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggLSBlbGVtZW50LndpZHRoLFxuICAgICAgICB5OiBjb21tb25ZXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLngsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55XG4gICAgICB9O1xuICB9XG5cbiAgdmFyIG1haW5BeGlzID0gYmFzZVBsYWNlbWVudCA/IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudChiYXNlUGxhY2VtZW50KSA6IG51bGw7XG5cbiAgaWYgKG1haW5BeGlzICE9IG51bGwpIHtcbiAgICB2YXIgbGVuID0gbWFpbkF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHN3aXRjaCAodmFyaWF0aW9uKSB7XG4gICAgICBjYXNlIHN0YXJ0OlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdIC0gKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBlbmQ6XG4gICAgICAgIG9mZnNldHNbbWFpbkF4aXNdID0gb2Zmc2V0c1ttYWluQXhpc10gKyAocmVmZXJlbmNlW2xlbl0gLyAyIC0gZWxlbWVudFtsZW5dIC8gMik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvZmZzZXRzO1xufSIsImltcG9ydCBnZXRDbGlwcGluZ1JlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBjb21wdXRlT2Zmc2V0cyBmcm9tIFwiLi9jb21wdXRlT2Zmc2V0cy5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4vcmVjdFRvQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IHsgY2xpcHBpbmdQYXJlbnRzLCByZWZlcmVuY2UsIHBvcHBlciwgYm90dG9tLCB0b3AsIHJpZ2h0LCBiYXNlUGxhY2VtZW50cywgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IG1lcmdlUGFkZGluZ09iamVjdCBmcm9tIFwiLi9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4vZXhwYW5kVG9IYXNoTWFwLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBfb3B0aW9ucyRwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucyRwbGFjZW1lbnQgPT09IHZvaWQgMCA/IHN0YXRlLnBsYWNlbWVudCA6IF9vcHRpb25zJHBsYWNlbWVudCxcbiAgICAgIF9vcHRpb25zJHN0cmF0ZWd5ID0gX29wdGlvbnMuc3RyYXRlZ3ksXG4gICAgICBzdHJhdGVneSA9IF9vcHRpb25zJHN0cmF0ZWd5ID09PSB2b2lkIDAgPyBzdGF0ZS5zdHJhdGVneSA6IF9vcHRpb25zJHN0cmF0ZWd5LFxuICAgICAgX29wdGlvbnMkYm91bmRhcnkgPSBfb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMkYm91bmRhcnkgPT09IHZvaWQgMCA/IGNsaXBwaW5nUGFyZW50cyA6IF9vcHRpb25zJGJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMkcm9vdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyB2aWV3cG9ydCA6IF9vcHRpb25zJHJvb3RCb3VuZGFyeSxcbiAgICAgIF9vcHRpb25zJGVsZW1lbnRDb250ZSA9IF9vcHRpb25zLmVsZW1lbnRDb250ZXh0LFxuICAgICAgZWxlbWVudENvbnRleHQgPSBfb3B0aW9ucyRlbGVtZW50Q29udGUgPT09IHZvaWQgMCA/IHBvcHBlciA6IF9vcHRpb25zJGVsZW1lbnRDb250ZSxcbiAgICAgIF9vcHRpb25zJGFsdEJvdW5kYXJ5ID0gX29wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IF9vcHRpb25zJGFsdEJvdW5kYXJ5ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkcGFkZGluZyA9IF9vcHRpb25zLnBhZGRpbmcsXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMkcGFkZGluZyA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHBhZGRpbmc7XG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gbWVyZ2VQYWRkaW5nT2JqZWN0KHR5cGVvZiBwYWRkaW5nICE9PSAnbnVtYmVyJyA/IHBhZGRpbmcgOiBleHBhbmRUb0hhc2hNYXAocGFkZGluZywgYmFzZVBsYWNlbWVudHMpKTtcbiAgdmFyIGFsdENvbnRleHQgPSBlbGVtZW50Q29udGV4dCA9PT0gcG9wcGVyID8gcmVmZXJlbmNlIDogcG9wcGVyO1xuICB2YXIgcG9wcGVyUmVjdCA9IHN0YXRlLnJlY3RzLnBvcHBlcjtcbiAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1thbHRCb3VuZGFyeSA/IGFsdENvbnRleHQgOiBlbGVtZW50Q29udGV4dF07XG4gIHZhciBjbGlwcGluZ0NsaWVudFJlY3QgPSBnZXRDbGlwcGluZ1JlY3QoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudCA6IGVsZW1lbnQuY29udGV4dEVsZW1lbnQgfHwgZ2V0RG9jdW1lbnRFbGVtZW50KHN0YXRlLmVsZW1lbnRzLnBvcHBlciksIGJvdW5kYXJ5LCByb290Qm91bmRhcnksIHN0cmF0ZWd5KTtcbiAgdmFyIHJlZmVyZW5jZUNsaWVudFJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3Qoc3RhdGUuZWxlbWVudHMucmVmZXJlbmNlKTtcbiAgdmFyIHBvcHBlck9mZnNldHMgPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiByZWZlcmVuY2VDbGllbnRSZWN0LFxuICAgIGVsZW1lbnQ6IHBvcHBlclJlY3QsXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXG4gICAgcGxhY2VtZW50OiBwbGFjZW1lbnRcbiAgfSk7XG4gIHZhciBwb3BwZXJDbGllbnRSZWN0ID0gcmVjdFRvQ2xpZW50UmVjdChPYmplY3QuYXNzaWduKHt9LCBwb3BwZXJSZWN0LCBwb3BwZXJPZmZzZXRzKSk7XG4gIHZhciBlbGVtZW50Q2xpZW50UmVjdCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyBwb3BwZXJDbGllbnRSZWN0IDogcmVmZXJlbmNlQ2xpZW50UmVjdDsgLy8gcG9zaXRpdmUgPSBvdmVyZmxvd2luZyB0aGUgY2xpcHBpbmcgcmVjdFxuICAvLyAwIG9yIG5lZ2F0aXZlID0gd2l0aGluIHRoZSBjbGlwcGluZyByZWN0XG5cbiAgdmFyIG92ZXJmbG93T2Zmc2V0cyA9IHtcbiAgICB0b3A6IGNsaXBwaW5nQ2xpZW50UmVjdC50b3AgLSBlbGVtZW50Q2xpZW50UmVjdC50b3AgKyBwYWRkaW5nT2JqZWN0LnRvcCxcbiAgICBib3R0b206IGVsZW1lbnRDbGllbnRSZWN0LmJvdHRvbSAtIGNsaXBwaW5nQ2xpZW50UmVjdC5ib3R0b20gKyBwYWRkaW5nT2JqZWN0LmJvdHRvbSxcbiAgICBsZWZ0OiBjbGlwcGluZ0NsaWVudFJlY3QubGVmdCAtIGVsZW1lbnRDbGllbnRSZWN0LmxlZnQgKyBwYWRkaW5nT2JqZWN0LmxlZnQsXG4gICAgcmlnaHQ6IGVsZW1lbnRDbGllbnRSZWN0LnJpZ2h0IC0gY2xpcHBpbmdDbGllbnRSZWN0LnJpZ2h0ICsgcGFkZGluZ09iamVjdC5yaWdodFxuICB9O1xuICB2YXIgb2Zmc2V0RGF0YSA9IHN0YXRlLm1vZGlmaWVyc0RhdGEub2Zmc2V0OyAvLyBPZmZzZXRzIGNhbiBiZSBhcHBsaWVkIG9ubHkgdG8gdGhlIHBvcHBlciBlbGVtZW50XG5cbiAgaWYgKGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgJiYgb2Zmc2V0RGF0YSkge1xuICAgIHZhciBvZmZzZXQgPSBvZmZzZXREYXRhW3BsYWNlbWVudF07XG4gICAgT2JqZWN0LmtleXMob3ZlcmZsb3dPZmZzZXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciBtdWx0aXBseSA9IFtyaWdodCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/IDEgOiAtMTtcbiAgICAgIHZhciBheGlzID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKGtleSkgPj0gMCA/ICd5JyA6ICd4JztcbiAgICAgIG92ZXJmbG93T2Zmc2V0c1trZXldICs9IG9mZnNldFtheGlzXSAqIG11bHRpcGx5O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG92ZXJmbG93T2Zmc2V0cztcbn0iLCJpbXBvcnQgZ2V0T3Bwb3NpdGVQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuLi91dGlscy9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGNvbXB1dGVBdXRvUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9jb21wdXRlQXV0b1BsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgYm90dG9tLCB0b3AsIHN0YXJ0LCByaWdodCwgbGVmdCwgYXV0byB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi4vdXRpbHMvZ2V0VmFyaWF0aW9uLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZnVuY3Rpb24gZ2V0RXhwYW5kZWRGYWxsYmFja1BsYWNlbWVudHMocGxhY2VtZW50KSB7XG4gIGlmIChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8pIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgb3Bwb3NpdGVQbGFjZW1lbnQgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICByZXR1cm4gW2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCksIG9wcG9zaXRlUGxhY2VtZW50LCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChvcHBvc2l0ZVBsYWNlbWVudCldO1xufVxuXG5mdW5jdGlvbiBmbGlwKF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdLl9za2lwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIF9vcHRpb25zJG1haW5BeGlzID0gb3B0aW9ucy5tYWluQXhpcyxcbiAgICAgIGNoZWNrTWFpbkF4aXMgPSBfb3B0aW9ucyRtYWluQXhpcyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJG1haW5BeGlzLFxuICAgICAgX29wdGlvbnMkYWx0QXhpcyA9IG9wdGlvbnMuYWx0QXhpcyxcbiAgICAgIGNoZWNrQWx0QXhpcyA9IF9vcHRpb25zJGFsdEF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgc3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzID0gb3B0aW9ucy5mYWxsYmFja1BsYWNlbWVudHMsXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPSBvcHRpb25zLmZsaXBWYXJpYXRpb25zLFxuICAgICAgZmxpcFZhcmlhdGlvbnMgPSBfb3B0aW9ucyRmbGlwVmFyaWF0aW8gPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRmbGlwVmFyaWF0aW8sXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBvcHRpb25zLmFsbG93ZWRBdXRvUGxhY2VtZW50cztcbiAgdmFyIHByZWZlcnJlZFBsYWNlbWVudCA9IHN0YXRlLm9wdGlvbnMucGxhY2VtZW50O1xuICB2YXIgYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KTtcbiAgdmFyIGlzQmFzZVBsYWNlbWVudCA9IGJhc2VQbGFjZW1lbnQgPT09IHByZWZlcnJlZFBsYWNlbWVudDtcbiAgdmFyIGZhbGxiYWNrUGxhY2VtZW50cyA9IHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyB8fCAoaXNCYXNlUGxhY2VtZW50IHx8ICFmbGlwVmFyaWF0aW9ucyA/IFtnZXRPcHBvc2l0ZVBsYWNlbWVudChwcmVmZXJyZWRQbGFjZW1lbnQpXSA6IGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHByZWZlcnJlZFBsYWNlbWVudCkpO1xuICB2YXIgcGxhY2VtZW50cyA9IFtwcmVmZXJyZWRQbGFjZW1lbnRdLmNvbmNhdChmYWxsYmFja1BsYWNlbWVudHMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkgPT09IGF1dG8gPyBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmcsXG4gICAgICBmbGlwVmFyaWF0aW9uczogZmxpcFZhcmlhdGlvbnMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHM6IGFsbG93ZWRBdXRvUGxhY2VtZW50c1xuICAgIH0pIDogcGxhY2VtZW50KTtcbiAgfSwgW10pO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBjaGVja3NNYXAgPSBuZXcgTWFwKCk7XG4gIHZhciBtYWtlRmFsbGJhY2tDaGVja3MgPSB0cnVlO1xuICB2YXIgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gcGxhY2VtZW50c1swXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHBsYWNlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGxhY2VtZW50ID0gcGxhY2VtZW50c1tpXTtcblxuICAgIHZhciBfYmFzZVBsYWNlbWVudCA9IGdldEJhc2VQbGFjZW1lbnQocGxhY2VtZW50KTtcblxuICAgIHZhciBpc1N0YXJ0VmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCkgPT09IHN0YXJ0O1xuICAgIHZhciBpc1ZlcnRpY2FsID0gW3RvcCwgYm90dG9tXS5pbmRleE9mKF9iYXNlUGxhY2VtZW50KSA+PSAwO1xuICAgIHZhciBsZW4gPSBpc1ZlcnRpY2FsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIHZhciBvdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeTogcm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnk6IGFsdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZzogcGFkZGluZ1xuICAgIH0pO1xuICAgIHZhciBtYWluVmFyaWF0aW9uU2lkZSA9IGlzVmVydGljYWwgPyBpc1N0YXJ0VmFyaWF0aW9uID8gcmlnaHQgOiBsZWZ0IDogaXNTdGFydFZhcmlhdGlvbiA/IGJvdHRvbSA6IHRvcDtcblxuICAgIGlmIChyZWZlcmVuY2VSZWN0W2xlbl0gPiBwb3BwZXJSZWN0W2xlbl0pIHtcbiAgICAgIG1haW5WYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIH1cblxuICAgIHZhciBhbHRWYXJpYXRpb25TaWRlID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQobWFpblZhcmlhdGlvblNpZGUpO1xuICAgIHZhciBjaGVja3MgPSBbXTtcblxuICAgIGlmIChjaGVja01haW5BeGlzKSB7XG4gICAgICBjaGVja3MucHVzaChvdmVyZmxvd1tfYmFzZVBsYWNlbWVudF0gPD0gMCk7XG4gICAgfVxuXG4gICAgaWYgKGNoZWNrQWx0QXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbbWFpblZhcmlhdGlvblNpZGVdIDw9IDAsIG92ZXJmbG93W2FsdFZhcmlhdGlvblNpZGVdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja3MuZXZlcnkoZnVuY3Rpb24gKGNoZWNrKSB7XG4gICAgICByZXR1cm4gY2hlY2s7XG4gICAgfSkpIHtcbiAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudDtcbiAgICAgIG1ha2VGYWxsYmFja0NoZWNrcyA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY2hlY2tzTWFwLnNldChwbGFjZW1lbnQsIGNoZWNrcyk7XG4gIH1cblxuICBpZiAobWFrZUZhbGxiYWNrQ2hlY2tzKSB7XG4gICAgLy8gYDJgIG1heSBiZSBkZXNpcmVkIGluIHNvbWUgY2FzZXMg4oCTIHJlc2VhcmNoIGxhdGVyXG4gICAgdmFyIG51bWJlck9mQ2hlY2tzID0gZmxpcFZhcmlhdGlvbnMgPyAzIDogMTtcblxuICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKF9pKSB7XG4gICAgICB2YXIgZml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHMuZmluZChmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgICAgIHZhciBjaGVja3MgPSBjaGVja3NNYXAuZ2V0KHBsYWNlbWVudCk7XG5cbiAgICAgICAgaWYgKGNoZWNrcykge1xuICAgICAgICAgIHJldHVybiBjaGVja3Muc2xpY2UoMCwgX2kpLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgICAgICAgcmV0dXJuIGNoZWNrO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGZpdHRpbmdQbGFjZW1lbnQpIHtcbiAgICAgICAgZmlyc3RGaXR0aW5nUGxhY2VtZW50ID0gZml0dGluZ1BsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIFwiYnJlYWtcIjtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9yICh2YXIgX2kgPSBudW1iZXJPZkNoZWNrczsgX2kgPiAwOyBfaS0tKSB7XG4gICAgICB2YXIgX3JldCA9IF9sb29wKF9pKTtcblxuICAgICAgaWYgKF9yZXQgPT09IFwiYnJlYWtcIikgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXRlLnBsYWNlbWVudCAhPT0gZmlyc3RGaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCA9IHRydWU7XG4gICAgc3RhdGUucGxhY2VtZW50ID0gZmlyc3RGaXR0aW5nUGxhY2VtZW50O1xuICAgIHN0YXRlLnJlc2V0ID0gdHJ1ZTtcbiAgfVxufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZmxpcCcsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIGZuOiBmbGlwLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ29mZnNldCddLFxuICBkYXRhOiB7XG4gICAgX3NraXA6IGZhbHNlXG4gIH1cbn07IiwiaW1wb3J0IGdldFZhcmlhdGlvbiBmcm9tIFwiLi9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCB7IHZhcmlhdGlvblBsYWNlbWVudHMsIGJhc2VQbGFjZW1lbnRzLCBwbGFjZW1lbnRzIGFzIGFsbFBsYWNlbWVudHMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi9kZXRlY3RPdmVyZmxvdy5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4vZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyA9IG9wdGlvbnMsXG4gICAgICBwbGFjZW1lbnQgPSBfb3B0aW9ucy5wbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeSA9IF9vcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gX29wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZyA9IF9vcHRpb25zLnBhZGRpbmcsXG4gICAgICBmbGlwVmFyaWF0aW9ucyA9IF9vcHRpb25zLmZsaXBWYXJpYXRpb25zLFxuICAgICAgX29wdGlvbnMkYWxsb3dlZEF1dG9QID0gX29wdGlvbnMuYWxsb3dlZEF1dG9QbGFjZW1lbnRzLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gX29wdGlvbnMkYWxsb3dlZEF1dG9QID09PSB2b2lkIDAgPyBhbGxQbGFjZW1lbnRzIDogX29wdGlvbnMkYWxsb3dlZEF1dG9QO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHBsYWNlbWVudCk7XG4gIHZhciBwbGFjZW1lbnRzID0gdmFyaWF0aW9uID8gZmxpcFZhcmlhdGlvbnMgPyB2YXJpYXRpb25QbGFjZW1lbnRzIDogdmFyaWF0aW9uUGxhY2VtZW50cy5maWx0ZXIoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgIHJldHVybiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSA9PT0gdmFyaWF0aW9uO1xuICB9KSA6IGJhc2VQbGFjZW1lbnRzO1xuICB2YXIgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFsbG93ZWRBdXRvUGxhY2VtZW50cy5pbmRleE9mKHBsYWNlbWVudCkgPj0gMDtcbiAgfSk7XG5cbiAgaWYgKGFsbG93ZWRQbGFjZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGFsbG93ZWRQbGFjZW1lbnRzID0gcGxhY2VtZW50cztcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoWydQb3BwZXI6IFRoZSBgYWxsb3dlZEF1dG9QbGFjZW1lbnRzYCBvcHRpb24gZGlkIG5vdCBhbGxvdyBhbnknLCAncGxhY2VtZW50cy4gRW5zdXJlIHRoZSBgcGxhY2VtZW50YCBvcHRpb24gbWF0Y2hlcyB0aGUgdmFyaWF0aW9uJywgJ29mIHRoZSBhbGxvd2VkIHBsYWNlbWVudHMuJywgJ0ZvciBleGFtcGxlLCBcImF1dG9cIiBjYW5ub3QgYmUgdXNlZCB0byBhbGxvdyBcImJvdHRvbS1zdGFydFwiLicsICdVc2UgXCJhdXRvLXN0YXJ0XCIgaW5zdGVhZC4nXS5qb2luKCcgJykpO1xuICAgIH1cbiAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS10eXBlXTogRmxvdyBzZWVtcyB0byBoYXZlIHByb2JsZW1zIHdpdGggdHdvIGFycmF5IHVuaW9ucy4uLlxuXG5cbiAgdmFyIG92ZXJmbG93cyA9IGFsbG93ZWRQbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5OiBib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeTogcm9vdEJvdW5kYXJ5LFxuICAgICAgcGFkZGluZzogcGFkZGluZ1xuICAgIH0pW2dldEJhc2VQbGFjZW1lbnQocGxhY2VtZW50KV07XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICByZXR1cm4gT2JqZWN0LmtleXMob3ZlcmZsb3dzKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIG92ZXJmbG93c1thXSAtIG92ZXJmbG93c1tiXTtcbiAgfSk7XG59IiwiaW1wb3J0IHsgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0IH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5cbmZ1bmN0aW9uIGdldFNpZGVPZmZzZXRzKG92ZXJmbG93LCByZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKSB7XG4gIGlmIChwcmV2ZW50ZWRPZmZzZXRzID09PSB2b2lkIDApIHtcbiAgICBwcmV2ZW50ZWRPZmZzZXRzID0ge1xuICAgICAgeDogMCxcbiAgICAgIHk6IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IG92ZXJmbG93LnRvcCAtIHJlY3QuaGVpZ2h0IC0gcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIHJpZ2h0OiBvdmVyZmxvdy5yaWdodCAtIHJlY3Qud2lkdGggKyBwcmV2ZW50ZWRPZmZzZXRzLngsXG4gICAgYm90dG9tOiBvdmVyZmxvdy5ib3R0b20gLSByZWN0LmhlaWdodCArIHByZXZlbnRlZE9mZnNldHMueSxcbiAgICBsZWZ0OiBvdmVyZmxvdy5sZWZ0IC0gcmVjdC53aWR0aCAtIHByZXZlbnRlZE9mZnNldHMueFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0FueVNpZGVGdWxseUNsaXBwZWQob3ZlcmZsb3cpIHtcbiAgcmV0dXJuIFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdLnNvbWUoZnVuY3Rpb24gKHNpZGUpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dbc2lkZV0gPj0gMDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhpZGUoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgcHJldmVudGVkT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucHJldmVudE92ZXJmbG93O1xuICB2YXIgcmVmZXJlbmNlT3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGVsZW1lbnRDb250ZXh0OiAncmVmZXJlbmNlJ1xuICB9KTtcbiAgdmFyIHBvcHBlckFsdE92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBhbHRCb3VuZGFyeTogdHJ1ZVxuICB9KTtcbiAgdmFyIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHJlZmVyZW5jZU92ZXJmbG93LCByZWZlcmVuY2VSZWN0KTtcbiAgdmFyIHBvcHBlckVzY2FwZU9mZnNldHMgPSBnZXRTaWRlT2Zmc2V0cyhwb3BwZXJBbHRPdmVyZmxvdywgcG9wcGVyUmVjdCwgcHJldmVudGVkT2Zmc2V0cyk7XG4gIHZhciBpc1JlZmVyZW5jZUhpZGRlbiA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMpO1xuICB2YXIgaGFzUG9wcGVyRXNjYXBlZCA9IGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChwb3BwZXJFc2NhcGVPZmZzZXRzKTtcbiAgc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXSA9IHtcbiAgICByZWZlcmVuY2VDbGlwcGluZ09mZnNldHM6IHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyxcbiAgICBwb3BwZXJFc2NhcGVPZmZzZXRzOiBwb3BwZXJFc2NhcGVPZmZzZXRzLFxuICAgIGlzUmVmZXJlbmNlSGlkZGVuOiBpc1JlZmVyZW5jZUhpZGRlbixcbiAgICBoYXNQb3BwZXJFc2NhcGVkOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH07XG4gIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIsIHtcbiAgICAnZGF0YS1wb3BwZXItcmVmZXJlbmNlLWhpZGRlbic6IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgICdkYXRhLXBvcHBlci1lc2NhcGVkJzogaGFzUG9wcGVyRXNjYXBlZFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2hpZGUnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddLFxuICBmbjogaGlkZVxufTsiLCJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyIsImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgc3RhcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRBbHRBeGlzIGZyb20gXCIuLi91dGlscy9nZXRBbHRBeGlzLmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4sIHdpdGhpbk1heENsYW1wIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4uL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qc1wiO1xuaW1wb3J0IHsgbWluIGFzIG1hdGhNaW4sIG1heCBhcyBtYXRoTWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgX29wdGlvbnMkbWFpbkF4aXMgPSBvcHRpb25zLm1haW5BeGlzLFxuICAgICAgY2hlY2tNYWluQXhpcyA9IF9vcHRpb25zJG1haW5BeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkbWFpbkF4aXMsXG4gICAgICBfb3B0aW9ucyRhbHRBeGlzID0gb3B0aW9ucy5hbHRBeGlzLFxuICAgICAgY2hlY2tBbHRBeGlzID0gX29wdGlvbnMkYWx0QXhpcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgX29wdGlvbnMkdGV0aGVyID0gb3B0aW9ucy50ZXRoZXIsXG4gICAgICB0ZXRoZXIgPSBfb3B0aW9ucyR0ZXRoZXIgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyR0ZXRoZXIsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXJPZmZzZXQgPSBvcHRpb25zLnRldGhlck9mZnNldCxcbiAgICAgIHRldGhlck9mZnNldCA9IF9vcHRpb25zJHRldGhlck9mZnNldCA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHRldGhlck9mZnNldDtcbiAgdmFyIG92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgcGFkZGluZzogcGFkZGluZyxcbiAgICBhbHRCb3VuZGFyeTogYWx0Qm91bmRhcnlcbiAgfSk7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSAhdmFyaWF0aW9uO1xuICB2YXIgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCk7XG4gIHZhciBhbHRBeGlzID0gZ2V0QWx0QXhpcyhtYWluQXhpcyk7XG4gIHZhciBwb3BwZXJPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciB0ZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXQgPT09ICdmdW5jdGlvbicgPyB0ZXRoZXJPZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiB0ZXRoZXJPZmZzZXQ7XG4gIHZhciBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUgPSB0eXBlb2YgdGV0aGVyT2Zmc2V0VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZSxcbiAgICBhbHRBeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZVxuICB9IDogT2JqZWN0LmFzc2lnbih7XG4gICAgbWFpbkF4aXM6IDAsXG4gICAgYWx0QXhpczogMFxuICB9LCB0ZXRoZXJPZmZzZXRWYWx1ZSk7XG4gIHZhciBvZmZzZXRNb2RpZmllclN0YXRlID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQgPyBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtzdGF0ZS5wbGFjZW1lbnRdIDogbnVsbDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkO1xuXG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBvZmZzZXQgKyBvdmVyZmxvd1ttYWluU2lkZV07XG4gICAgdmFyIG1heCA9IG9mZnNldCAtIG92ZXJmbG93W2FsdFNpZGVdO1xuICAgIHZhciBhZGRpdGl2ZSA9IHRldGhlciA/IC1wb3BwZXJSZWN0W2xlbl0gLyAyIDogMDtcbiAgICB2YXIgbWluTGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IHJlZmVyZW5jZVJlY3RbbGVuXSA6IHBvcHBlclJlY3RbbGVuXTtcbiAgICB2YXIgbWF4TGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IC1wb3BwZXJSZWN0W2xlbl0gOiAtcmVmZXJlbmNlUmVjdFtsZW5dOyAvLyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGFycm93IGluIHRoZSBjYWxjdWxhdGlvbiBzbyB0aGUgYXJyb3cgZG9lc24ndCBnb1xuICAgIC8vIG91dHNpZGUgdGhlIHJlZmVyZW5jZSBib3VuZHNcblxuICAgIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgICB2YXIgYXJyb3dSZWN0ID0gdGV0aGVyICYmIGFycm93RWxlbWVudCA/IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KSA6IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nT2JqZWN0ID0gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddID8gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddLnBhZGRpbmcgOiBnZXRGcmVzaFNpZGVPYmplY3QoKTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWluID0gYXJyb3dQYWRkaW5nT2JqZWN0W21haW5TaWRlXTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWF4ID0gYXJyb3dQYWRkaW5nT2JqZWN0W2FsdFNpZGVdOyAvLyBJZiB0aGUgcmVmZXJlbmNlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGFycm93IGxlbmd0aCwgd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIGluY2x1ZGUgaXRzIGZ1bGwgc2l6ZSBpbiB0aGUgY2FsY3VsYXRpb24uIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGxcbiAgICAvLyBhbmQgbmVhciB0aGUgZWRnZSBvZiBhIGJvdW5kYXJ5LCB0aGUgcG9wcGVyIGNhbiBvdmVyZmxvdyBldmVuIGlmIHRoZVxuICAgIC8vIHJlZmVyZW5jZSBpcyBub3Qgb3ZlcmZsb3dpbmcgYXMgd2VsbCAoZS5nLiB2aXJ0dWFsIGVsZW1lbnRzIHdpdGggbm9cbiAgICAvLyB3aWR0aCBvciBoZWlnaHQpXG5cbiAgICB2YXIgYXJyb3dMZW4gPSB3aXRoaW4oMCwgcmVmZXJlbmNlUmVjdFtsZW5dLCBhcnJvd1JlY3RbbGVuXSk7XG4gICAgdmFyIG1pbk9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IHJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgLSBhZGRpdGl2ZSAtIGFycm93TGVuIC0gYXJyb3dQYWRkaW5nTWluIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIG1heE9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IC1yZWZlcmVuY2VSZWN0W2xlbl0gLyAyICsgYWRkaXRpdmUgKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcyA6IG1heExlbiArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQgPSBvZmZzZXRNb2RpZmllclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBvZmZzZXRNb2RpZmllclN0YXRlW21haW5BeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJCA6IDA7XG4gICAgdmFyIHRldGhlck1pbiA9IG9mZnNldCArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IG9mZnNldCArIG1heE9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWU7XG4gICAgdmFyIHByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKG1pbiwgdGV0aGVyTWluKSA6IG1pbiwgb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KG1heCwgdGV0aGVyTWF4KSA6IG1heCk7XG4gICAgcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gIH1cblxuICBpZiAoY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIF9vZmZzZXRNb2RpZmllclN0YXRlJDI7XG5cbiAgICB2YXIgX21haW5TaWRlID0gbWFpbkF4aXMgPT09ICd4JyA/IHRvcCA6IGxlZnQ7XG5cbiAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICB2YXIgX29mZnNldCA9IHBvcHBlck9mZnNldHNbYWx0QXhpc107XG5cbiAgICB2YXIgX2xlbiA9IGFsdEF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHZhciBfbWluID0gX29mZnNldCArIG92ZXJmbG93W19tYWluU2lkZV07XG5cbiAgICB2YXIgX21heCA9IF9vZmZzZXQgLSBvdmVyZmxvd1tfYWx0U2lkZV07XG5cbiAgICB2YXIgaXNPcmlnaW5TaWRlID0gW3RvcCwgbGVmdF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG5cbiAgICB2YXIgX29mZnNldE1vZGlmaWVyVmFsdWUgPSAoX29mZnNldE1vZGlmaWVyU3RhdGUkMiA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbYWx0QXhpc10pICE9IG51bGwgPyBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyIDogMDtcblxuICAgIHZhciBfdGV0aGVyTWluID0gaXNPcmlnaW5TaWRlID8gX21pbiA6IF9vZmZzZXQgLSByZWZlcmVuY2VSZWN0W19sZW5dIC0gcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXM7XG5cbiAgICB2YXIgX3RldGhlck1heCA9IGlzT3JpZ2luU2lkZSA/IF9vZmZzZXQgKyByZWZlcmVuY2VSZWN0W19sZW5dICsgcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXMgOiBfbWF4O1xuXG4gICAgdmFyIF9wcmV2ZW50ZWRPZmZzZXQgPSB0ZXRoZXIgJiYgaXNPcmlnaW5TaWRlID8gd2l0aGluTWF4Q2xhbXAoX3RldGhlck1pbiwgX29mZnNldCwgX3RldGhlck1heCkgOiB3aXRoaW4odGV0aGVyID8gX3RldGhlck1pbiA6IF9taW4sIF9vZmZzZXQsIHRldGhlciA/IF90ZXRoZXJNYXggOiBfbWF4KTtcblxuICAgIHBvcHBlck9mZnNldHNbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0O1xuICAgIGRhdGFbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0IC0gX29mZnNldDtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IHByZXZlbnRPdmVyZmxvdyxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXVxufTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBbHRBeGlzKGF4aXMpIHtcbiAgcmV0dXJuIGF4aXMgPT09ICd4JyA/ICd5JyA6ICd4Jztcbn0iLCJpbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldE5vZGVTY3JvbGwgZnJvbSBcIi4vZ2V0Tm9kZVNjcm9sbC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnRTY2FsZWQoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDE7XG4gIHJldHVybiBzY2FsZVggIT09IDEgfHwgc2NhbGVZICE9PSAxO1xufSAvLyBSZXR1cm5zIHRoZSBjb21wb3NpdGUgcmVjdCBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIGl0cyBvZmZzZXRQYXJlbnQuXG4vLyBDb21wb3NpdGUgbWVhbnMgaXQgdGFrZXMgaW50byBhY2NvdW50IHRyYW5zZm9ybXMgYXMgd2VsbCBhcyBsYXlvdXQuXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcG9zaXRlUmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50LCBpc0ZpeGVkKSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnRJc1NjYWxlZCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc0VsZW1lbnRTY2FsZWQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50SXNTY2FsZWQsIGlzRml4ZWQpO1xuICB2YXIgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIHZhciBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTA3OFxuICAgIGlzU2Nyb2xsUGFyZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBvZmZzZXRzID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggKz0gb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgKz0gb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeDogcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLngsXG4gICAgeTogcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn0iLCJpbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgZ2V0SFRNTEVsZW1lbnRTY3JvbGwgZnJvbSBcIi4vZ2V0SFRNTEVsZW1lbnRTY3JvbGwuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE5vZGVTY3JvbGwobm9kZSkge1xuICBpZiAobm9kZSA9PT0gZ2V0V2luZG93KG5vZGUpIHx8ICFpc0hUTUxFbGVtZW50KG5vZGUpKSB7XG4gICAgcmV0dXJuIGdldFdpbmRvd1Njcm9sbChub2RlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZ2V0SFRNTEVsZW1lbnRTY3JvbGwobm9kZSk7XG4gIH1cbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudFNjcm9sbChlbGVtZW50KSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgIHNjcm9sbFRvcDogZWxlbWVudC5zY3JvbGxUb3BcbiAgfTtcbn0iLCJpbXBvcnQgeyBtb2RpZmllclBoYXNlcyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBzb3VyY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5ODc1MjU1XG5cbmZ1bmN0aW9uIG9yZGVyKG1vZGlmaWVycykge1xuICB2YXIgbWFwID0gbmV3IE1hcCgpO1xuICB2YXIgdmlzaXRlZCA9IG5ldyBTZXQoKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBtYXAuc2V0KG1vZGlmaWVyLm5hbWUsIG1vZGlmaWVyKTtcbiAgfSk7IC8vIE9uIHZpc2l0aW5nIG9iamVjdCwgY2hlY2sgZm9yIGl0cyBkZXBlbmRlbmNpZXMgYW5kIHZpc2l0IHRoZW0gcmVjdXJzaXZlbHlcblxuICBmdW5jdGlvbiBzb3J0KG1vZGlmaWVyKSB7XG4gICAgdmlzaXRlZC5hZGQobW9kaWZpZXIubmFtZSk7XG4gICAgdmFyIHJlcXVpcmVzID0gW10uY29uY2F0KG1vZGlmaWVyLnJlcXVpcmVzIHx8IFtdLCBtb2RpZmllci5yZXF1aXJlc0lmRXhpc3RzIHx8IFtdKTtcbiAgICByZXF1aXJlcy5mb3JFYWNoKGZ1bmN0aW9uIChkZXApIHtcbiAgICAgIGlmICghdmlzaXRlZC5oYXMoZGVwKSkge1xuICAgICAgICB2YXIgZGVwTW9kaWZpZXIgPSBtYXAuZ2V0KGRlcCk7XG5cbiAgICAgICAgaWYgKGRlcE1vZGlmaWVyKSB7XG4gICAgICAgICAgc29ydChkZXBNb2RpZmllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXN1bHQucHVzaChtb2RpZmllcik7XG4gIH1cblxuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBpZiAoIXZpc2l0ZWQuaGFzKG1vZGlmaWVyLm5hbWUpKSB7XG4gICAgICAvLyBjaGVjayBmb3IgdmlzaXRlZCBvYmplY3RcbiAgICAgIHNvcnQobW9kaWZpZXIpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9yZGVyTW9kaWZpZXJzKG1vZGlmaWVycykge1xuICAvLyBvcmRlciBiYXNlZCBvbiBkZXBlbmRlbmNpZXNcbiAgdmFyIG9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcihtb2RpZmllcnMpOyAvLyBvcmRlciBiYXNlZCBvbiBwaGFzZVxuXG4gIHJldHVybiBtb2RpZmllclBoYXNlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGhhc2UpIHtcbiAgICByZXR1cm4gYWNjLmNvbmNhdChvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgIHJldHVybiBtb2RpZmllci5waGFzZSA9PT0gcGhhc2U7XG4gICAgfSkpO1xuICB9LCBbXSk7XG59IiwiaW1wb3J0IGdldENvbXBvc2l0ZVJlY3QgZnJvbSBcIi4vZG9tLXV0aWxzL2dldENvbXBvc2l0ZVJlY3QuanNcIjtcbmltcG9ydCBnZXRMYXlvdXRSZWN0IGZyb20gXCIuL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgbGlzdFNjcm9sbFBhcmVudHMgZnJvbSBcIi4vZG9tLXV0aWxzL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2RvbS11dGlscy9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgb3JkZXJNb2RpZmllcnMgZnJvbSBcIi4vdXRpbHMvb3JkZXJNb2RpZmllcnMuanNcIjtcbmltcG9ydCBkZWJvdW5jZSBmcm9tIFwiLi91dGlscy9kZWJvdW5jZS5qc1wiO1xuaW1wb3J0IHZhbGlkYXRlTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL3ZhbGlkYXRlTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgdW5pcXVlQnkgZnJvbSBcIi4vdXRpbHMvdW5pcXVlQnkuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBtZXJnZUJ5TmFtZSBmcm9tIFwiLi91dGlscy9tZXJnZUJ5TmFtZS5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tIFwiLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IHsgYXV0byB9IGZyb20gXCIuL2VudW1zLmpzXCI7XG52YXIgSU5WQUxJRF9FTEVNRU5UX0VSUk9SID0gJ1BvcHBlcjogSW52YWxpZCByZWZlcmVuY2Ugb3IgcG9wcGVyIGFyZ3VtZW50IHByb3ZpZGVkLiBUaGV5IG11c3QgYmUgZWl0aGVyIGEgRE9NIGVsZW1lbnQgb3IgdmlydHVhbCBlbGVtZW50Lic7XG52YXIgSU5GSU5JVEVfTE9PUF9FUlJPUiA9ICdQb3BwZXI6IEFuIGluZmluaXRlIGxvb3AgaW4gdGhlIG1vZGlmaWVycyBjeWNsZSBoYXMgYmVlbiBkZXRlY3RlZCEgVGhlIGN5Y2xlIGhhcyBiZWVuIGludGVycnVwdGVkIHRvIHByZXZlbnQgYSBicm93c2VyIGNyYXNoLic7XG52YXIgREVGQVVMVF9PUFRJT05TID0ge1xuICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICBtb2RpZmllcnM6IFtdLFxuICBzdHJhdGVneTogJ2Fic29sdXRlJ1xufTtcblxuZnVuY3Rpb24gYXJlVmFsaWRFbGVtZW50cygpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiAhYXJncy5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuICEoZWxlbWVudCAmJiB0eXBlb2YgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPT09ICdmdW5jdGlvbicpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcHBlckdlbmVyYXRvcihnZW5lcmF0b3JPcHRpb25zKSB7XG4gIGlmIChnZW5lcmF0b3JPcHRpb25zID09PSB2b2lkIDApIHtcbiAgICBnZW5lcmF0b3JPcHRpb25zID0ge307XG4gIH1cblxuICB2YXIgX2dlbmVyYXRvck9wdGlvbnMgPSBnZW5lcmF0b3JPcHRpb25zLFxuICAgICAgX2dlbmVyYXRvck9wdGlvbnMkZGVmID0gX2dlbmVyYXRvck9wdGlvbnMuZGVmYXVsdE1vZGlmaWVycyxcbiAgICAgIGRlZmF1bHRNb2RpZmllcnMgPSBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYgPT09IHZvaWQgMCA/IFtdIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmLFxuICAgICAgX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRPcHRpb25zLFxuICAgICAgZGVmYXVsdE9wdGlvbnMgPSBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYyID09PSB2b2lkIDAgPyBERUZBVUxUX09QVElPTlMgOiBfZ2VuZXJhdG9yT3B0aW9ucyRkZWYyO1xuICByZXR1cm4gZnVuY3Rpb24gY3JlYXRlUG9wcGVyKHJlZmVyZW5jZSwgcG9wcGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgICAgb3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zO1xuICAgIH1cblxuICAgIHZhciBzdGF0ZSA9IHtcbiAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICBvcmRlcmVkTW9kaWZpZXJzOiBbXSxcbiAgICAgIG9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe30sIERFRkFVTFRfT1BUSU9OUywgZGVmYXVsdE9wdGlvbnMpLFxuICAgICAgbW9kaWZpZXJzRGF0YToge30sXG4gICAgICBlbGVtZW50czoge1xuICAgICAgICByZWZlcmVuY2U6IHJlZmVyZW5jZSxcbiAgICAgICAgcG9wcGVyOiBwb3BwZXJcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgIHN0eWxlczoge31cbiAgICB9O1xuICAgIHZhciBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgdmFyIGlzRGVzdHJveWVkID0gZmFsc2U7XG4gICAgdmFyIGluc3RhbmNlID0ge1xuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgc2V0T3B0aW9uczogZnVuY3Rpb24gc2V0T3B0aW9ucyhzZXRPcHRpb25zQWN0aW9uKSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gdHlwZW9mIHNldE9wdGlvbnNBY3Rpb24gPT09ICdmdW5jdGlvbicgPyBzZXRPcHRpb25zQWN0aW9uKHN0YXRlLm9wdGlvbnMpIDogc2V0T3B0aW9uc0FjdGlvbjtcbiAgICAgICAgY2xlYW51cE1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICBzdGF0ZS5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIHN0YXRlLm9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICBzdGF0ZS5zY3JvbGxQYXJlbnRzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogaXNFbGVtZW50KHJlZmVyZW5jZSkgPyBsaXN0U2Nyb2xsUGFyZW50cyhyZWZlcmVuY2UpIDogcmVmZXJlbmNlLmNvbnRleHRFbGVtZW50ID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlLmNvbnRleHRFbGVtZW50KSA6IFtdLFxuICAgICAgICAgIHBvcHBlcjogbGlzdFNjcm9sbFBhcmVudHMocG9wcGVyKVxuICAgICAgICB9OyAvLyBPcmRlcnMgdGhlIG1vZGlmaWVycyBiYXNlZCBvbiB0aGVpciBkZXBlbmRlbmNpZXMgYW5kIGBwaGFzZWBcbiAgICAgICAgLy8gcHJvcGVydGllc1xuXG4gICAgICAgIHZhciBvcmRlcmVkTW9kaWZpZXJzID0gb3JkZXJNb2RpZmllcnMobWVyZ2VCeU5hbWUoW10uY29uY2F0KGRlZmF1bHRNb2RpZmllcnMsIHN0YXRlLm9wdGlvbnMubW9kaWZpZXJzKSkpOyAvLyBTdHJpcCBvdXQgZGlzYWJsZWQgbW9kaWZpZXJzXG5cbiAgICAgICAgc3RhdGUub3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyZWRNb2RpZmllcnMuZmlsdGVyKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgcmV0dXJuIG0uZW5hYmxlZDtcbiAgICAgICAgfSk7IC8vIFZhbGlkYXRlIHRoZSBwcm92aWRlZCBtb2RpZmllcnMgc28gdGhhdCB0aGUgY29uc3VtZXIgd2lsbCBnZXQgd2FybmVkXG4gICAgICAgIC8vIGlmIG9uZSBvZiB0aGUgbW9kaWZpZXJzIGlzIGludmFsaWQgZm9yIGFueSByZWFzb25cblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgdmFyIG1vZGlmaWVycyA9IHVuaXF1ZUJ5KFtdLmNvbmNhdChvcmRlcmVkTW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycyksIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IF9yZWYubmFtZTtcbiAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHZhbGlkYXRlTW9kaWZpZXJzKG1vZGlmaWVycyk7XG5cbiAgICAgICAgICBpZiAoZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5vcHRpb25zLnBsYWNlbWVudCkgPT09IGF1dG8pIHtcbiAgICAgICAgICAgIHZhciBmbGlwTW9kaWZpZXIgPSBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzLmZpbmQoZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgICAgICAgIHZhciBuYW1lID0gX3JlZjIubmFtZTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgPT09ICdmbGlwJztcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIWZsaXBNb2RpZmllcikge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFsnUG9wcGVyOiBcImF1dG9cIiBwbGFjZW1lbnRzIHJlcXVpcmUgdGhlIFwiZmxpcFwiIG1vZGlmaWVyIGJlJywgJ3ByZXNlbnQgYW5kIGVuYWJsZWQgdG8gd29yay4nXS5qb2luKCcgJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBfZ2V0Q29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUocG9wcGVyKSxcbiAgICAgICAgICAgICAgbWFyZ2luVG9wID0gX2dldENvbXB1dGVkU3R5bGUubWFyZ2luVG9wLFxuICAgICAgICAgICAgICBtYXJnaW5SaWdodCA9IF9nZXRDb21wdXRlZFN0eWxlLm1hcmdpblJpZ2h0LFxuICAgICAgICAgICAgICBtYXJnaW5Cb3R0b20gPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sXG4gICAgICAgICAgICAgIG1hcmdpbkxlZnQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5MZWZ0OyAvLyBXZSBubyBsb25nZXIgdGFrZSBpbnRvIGFjY291bnQgYG1hcmdpbnNgIG9uIHRoZSBwb3BwZXIsIGFuZCBpdCBjYW5cbiAgICAgICAgICAvLyBjYXVzZSBidWdzIHdpdGggcG9zaXRpb25pbmcsIHNvIHdlJ2xsIHdhcm4gdGhlIGNvbnN1bWVyXG5cblxuICAgICAgICAgIGlmIChbbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0XS5zb21lKGZ1bmN0aW9uIChtYXJnaW4pIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KG1hcmdpbik7XG4gICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihbJ1BvcHBlcjogQ1NTIFwibWFyZ2luXCIgc3R5bGVzIGNhbm5vdCBiZSB1c2VkIHRvIGFwcGx5IHBhZGRpbmcnLCAnYmV0d2VlbiB0aGUgcG9wcGVyIGFuZCBpdHMgcmVmZXJlbmNlIGVsZW1lbnQgb3IgYm91bmRhcnkuJywgJ1RvIHJlcGxpY2F0ZSBtYXJnaW4sIHVzZSB0aGUgYG9mZnNldGAgbW9kaWZpZXIsIGFzIHdlbGwgYXMnLCAndGhlIGBwYWRkaW5nYCBvcHRpb24gaW4gdGhlIGBwcmV2ZW50T3ZlcmZsb3dgIGFuZCBgZmxpcGAnLCAnbW9kaWZpZXJzLiddLmpvaW4oJyAnKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcnVuTW9kaWZpZXJFZmZlY3RzKCk7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZS51cGRhdGUoKTtcbiAgICAgIH0sXG4gICAgICAvLyBTeW5jIHVwZGF0ZSDigJMgaXQgd2lsbCBhbHdheXMgYmUgZXhlY3V0ZWQsIGV2ZW4gaWYgbm90IG5lY2Vzc2FyeS4gVGhpc1xuICAgICAgLy8gaXMgdXNlZnVsIGZvciBsb3cgZnJlcXVlbmN5IHVwZGF0ZXMgd2hlcmUgc3luYyBiZWhhdmlvciBzaW1wbGlmaWVzIHRoZVxuICAgICAgLy8gbG9naWMuXG4gICAgICAvLyBGb3IgaGlnaCBmcmVxdWVuY3kgdXBkYXRlcyAoZS5nLiBgcmVzaXplYCBhbmQgYHNjcm9sbGAgZXZlbnRzKSwgYWx3YXlzXG4gICAgICAvLyBwcmVmZXIgdGhlIGFzeW5jIFBvcHBlciN1cGRhdGUgbWV0aG9kXG4gICAgICBmb3JjZVVwZGF0ZTogZnVuY3Rpb24gZm9yY2VVcGRhdGUoKSB7XG4gICAgICAgIGlmIChpc0Rlc3Ryb3llZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfc3RhdGUkZWxlbWVudHMgPSBzdGF0ZS5lbGVtZW50cyxcbiAgICAgICAgICAgIHJlZmVyZW5jZSA9IF9zdGF0ZSRlbGVtZW50cy5yZWZlcmVuY2UsXG4gICAgICAgICAgICBwb3BwZXIgPSBfc3RhdGUkZWxlbWVudHMucG9wcGVyOyAvLyBEb24ndCBwcm9jZWVkIGlmIGByZWZlcmVuY2VgIG9yIGBwb3BwZXJgIGFyZSBub3QgdmFsaWQgZWxlbWVudHNcbiAgICAgICAgLy8gYW55bW9yZVxuXG4gICAgICAgIGlmICghYXJlVmFsaWRFbGVtZW50cyhyZWZlcmVuY2UsIHBvcHBlcikpIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKElOVkFMSURfRUxFTUVOVF9FUlJPUik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IC8vIFN0b3JlIHRoZSByZWZlcmVuY2UgYW5kIHBvcHBlciByZWN0cyB0byBiZSByZWFkIGJ5IG1vZGlmaWVyc1xuXG5cbiAgICAgICAgc3RhdGUucmVjdHMgPSB7XG4gICAgICAgICAgcmVmZXJlbmNlOiBnZXRDb21wb3NpdGVSZWN0KHJlZmVyZW5jZSwgZ2V0T2Zmc2V0UGFyZW50KHBvcHBlciksIHN0YXRlLm9wdGlvbnMuc3RyYXRlZ3kgPT09ICdmaXhlZCcpLFxuICAgICAgICAgIHBvcHBlcjogZ2V0TGF5b3V0UmVjdChwb3BwZXIpXG4gICAgICAgIH07IC8vIE1vZGlmaWVycyBoYXZlIHRoZSBhYmlsaXR5IHRvIHJlc2V0IHRoZSBjdXJyZW50IHVwZGF0ZSBjeWNsZS4gVGhlXG4gICAgICAgIC8vIG1vc3QgY29tbW9uIHVzZSBjYXNlIGZvciB0aGlzIGlzIHRoZSBgZmxpcGAgbW9kaWZpZXIgY2hhbmdpbmcgdGhlXG4gICAgICAgIC8vIHBsYWNlbWVudCwgd2hpY2ggdGhlbiBuZWVkcyB0byByZS1ydW4gYWxsIHRoZSBtb2RpZmllcnMsIGJlY2F1c2UgdGhlXG4gICAgICAgIC8vIGxvZ2ljIHdhcyBwcmV2aW91c2x5IHJhbiBmb3IgdGhlIHByZXZpb3VzIHBsYWNlbWVudCBhbmQgaXMgdGhlcmVmb3JlXG4gICAgICAgIC8vIHN0YWxlL2luY29ycmVjdFxuXG4gICAgICAgIHN0YXRlLnJlc2V0ID0gZmFsc2U7XG4gICAgICAgIHN0YXRlLnBsYWNlbWVudCA9IHN0YXRlLm9wdGlvbnMucGxhY2VtZW50OyAvLyBPbiBlYWNoIHVwZGF0ZSBjeWNsZSwgdGhlIGBtb2RpZmllcnNEYXRhYCBwcm9wZXJ0eSBmb3IgZWFjaCBtb2RpZmllclxuICAgICAgICAvLyBpcyBmaWxsZWQgd2l0aCB0aGUgaW5pdGlhbCBkYXRhIHNwZWNpZmllZCBieSB0aGUgbW9kaWZpZXIuIFRoaXMgbWVhbnNcbiAgICAgICAgLy8gaXQgZG9lc24ndCBwZXJzaXN0IGFuZCBpcyBmcmVzaCBvbiBlYWNoIHVwZGF0ZS5cbiAgICAgICAgLy8gVG8gZW5zdXJlIHBlcnNpc3RlbnQgZGF0YSwgdXNlIGAke25hbWV9I3BlcnNpc3RlbnRgXG5cbiAgICAgICAgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChtb2RpZmllcikge1xuICAgICAgICAgIHJldHVybiBzdGF0ZS5tb2RpZmllcnNEYXRhW21vZGlmaWVyLm5hbWVdID0gT2JqZWN0LmFzc2lnbih7fSwgbW9kaWZpZXIuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX19kZWJ1Z19sb29wc19fID0gMDtcblxuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICBfX2RlYnVnX2xvb3BzX18gKz0gMTtcblxuICAgICAgICAgICAgaWYgKF9fZGVidWdfbG9vcHNfXyA+IDEwMCkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKElORklOSVRFX0xPT1BfRVJST1IpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3RhdGUucmVzZXQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHN0YXRlLnJlc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZSA9IHN0YXRlLm9yZGVyZWRNb2RpZmllcnNbaW5kZXhdLFxuICAgICAgICAgICAgICBmbiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5mbixcbiAgICAgICAgICAgICAgX3N0YXRlJG9yZGVyZWRNb2RpZmllMiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5vcHRpb25zLFxuICAgICAgICAgICAgICBfb3B0aW9ucyA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPT09IHZvaWQgMCA/IHt9IDogX3N0YXRlJG9yZGVyZWRNb2RpZmllMixcbiAgICAgICAgICAgICAgbmFtZSA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5uYW1lO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgc3RhdGUgPSBmbih7XG4gICAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgICAgb3B0aW9uczogX29wdGlvbnMsXG4gICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIGluc3RhbmNlOiBpbnN0YW5jZVxuICAgICAgICAgICAgfSkgfHwgc3RhdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gQXN5bmMgYW5kIG9wdGltaXN0aWNhbGx5IG9wdGltaXplZCB1cGRhdGUg4oCTIGl0IHdpbGwgbm90IGJlIGV4ZWN1dGVkIGlmXG4gICAgICAvLyBub3QgbmVjZXNzYXJ5IChkZWJvdW5jZWQgdG8gcnVuIGF0IG1vc3Qgb25jZS1wZXItdGljaylcbiAgICAgIHVwZGF0ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICBpbnN0YW5jZS5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgIHJlc29sdmUoc3RhdGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgY2xlYW51cE1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICBpc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghYXJlVmFsaWRFbGVtZW50cyhyZWZlcmVuY2UsIHBvcHBlcikpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihJTlZBTElEX0VMRU1FTlRfRVJST1IpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgaW5zdGFuY2Uuc2V0T3B0aW9ucyhvcHRpb25zKS50aGVuKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgaWYgKCFpc0Rlc3Ryb3llZCAmJiBvcHRpb25zLm9uRmlyc3RVcGRhdGUpIHtcbiAgICAgICAgb3B0aW9ucy5vbkZpcnN0VXBkYXRlKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gTW9kaWZpZXJzIGhhdmUgdGhlIGFiaWxpdHkgdG8gZXhlY3V0ZSBhcmJpdHJhcnkgY29kZSBiZWZvcmUgdGhlIGZpcnN0XG4gICAgLy8gdXBkYXRlIGN5Y2xlIHJ1bnMuIFRoZXkgd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgdXBkYXRlXG4gICAgLy8gY3ljbGUuIFRoaXMgaXMgdXNlZnVsIHdoZW4gYSBtb2RpZmllciBhZGRzIHNvbWUgcGVyc2lzdGVudCBkYXRhIHRoYXRcbiAgICAvLyBvdGhlciBtb2RpZmllcnMgbmVlZCB0byB1c2UsIGJ1dCB0aGUgbW9kaWZpZXIgaXMgcnVuIGFmdGVyIHRoZSBkZXBlbmRlbnRcbiAgICAvLyBvbmUuXG5cbiAgICBmdW5jdGlvbiBydW5Nb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBzdGF0ZS5vcmRlcmVkTW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICAgIHZhciBuYW1lID0gX3JlZjMubmFtZSxcbiAgICAgICAgICAgIF9yZWYzJG9wdGlvbnMgPSBfcmVmMy5vcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9ucyA9IF9yZWYzJG9wdGlvbnMgPT09IHZvaWQgMCA/IHt9IDogX3JlZjMkb3B0aW9ucyxcbiAgICAgICAgICAgIGVmZmVjdCA9IF9yZWYzLmVmZmVjdDtcblxuICAgICAgICBpZiAodHlwZW9mIGVmZmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHZhciBjbGVhbnVwRm4gPSBlZmZlY3Qoe1xuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBpbnN0YW5jZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHZhciBub29wRm4gPSBmdW5jdGlvbiBub29wRm4oKSB7fTtcblxuICAgICAgICAgIGVmZmVjdENsZWFudXBGbnMucHVzaChjbGVhbnVwRm4gfHwgbm9vcEZuKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xlYW51cE1vZGlmaWVyRWZmZWN0cygpIHtcbiAgICAgIGVmZmVjdENsZWFudXBGbnMuZm9yRWFjaChmdW5jdGlvbiAoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICB9KTtcbiAgICAgIGVmZmVjdENsZWFudXBGbnMgPSBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG59XG5leHBvcnQgdmFyIGNyZWF0ZVBvcHBlciA9IC8qI19fUFVSRV9fKi9wb3BwZXJHZW5lcmF0b3IoKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBkZXRlY3RPdmVyZmxvdyB9OyIsImltcG9ydCBhcnJvdyBmcm9tICdAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2Fycm93JztcbmltcG9ydCBjb21wdXRlU3R5bGVzIGZyb20gJ0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvY29tcHV0ZVN0eWxlcyc7XG5pbXBvcnQgZXZlbnRMaXN0ZW5lcnMgZnJvbSAnQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9ldmVudExpc3RlbmVycyc7XG5pbXBvcnQgZmxpcCBmcm9tICdAcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2ZsaXAnO1xuaW1wb3J0IGhpZGUgZnJvbSAnQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9oaWRlJztcbmltcG9ydCBvZmZzZXQgZnJvbSAnQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9vZmZzZXQnO1xuaW1wb3J0IHBvcHBlck9mZnNldHMgZnJvbSAnQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wb3BwZXJPZmZzZXRzJztcbmltcG9ydCBwcmV2ZW50T3ZlcmZsb3cgZnJvbSAnQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cnO1xuaW1wb3J0IHsgcGxhY2VtZW50cyB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlL2xpYi9lbnVtcyc7XG5pbXBvcnQgeyBwb3BwZXJHZW5lcmF0b3IgfSBmcm9tICdAcG9wcGVyanMvY29yZS9saWIvcG9wcGVyLWJhc2UnO1xuXG4vLyBGb3IgdGhlIGNvbW1vbiBKUyBidWlsZCB3ZSB3aWxsIHR1cm4gdGhpcyBmaWxlIGludG8gYSBidW5kbGUgd2l0aCBubyBpbXBvcnRzLlxuLy8gVGhpcyBpcyBiL2MgdGhlIFBvcHBlciBsaWIgaXMgYWxsIGVzbSBmaWxlcywgYW5kIHdvdWxkIGJyZWFrIGluIGEgY29tbW9uIGpzIG9ubHkgZW52aXJvbm1lbnRcbmV4cG9ydCBjb25zdCBjcmVhdGVQb3BwZXIgPSBwb3BwZXJHZW5lcmF0b3Ioe1xuICBkZWZhdWx0TW9kaWZpZXJzOiBbaGlkZSwgcG9wcGVyT2Zmc2V0cywgY29tcHV0ZVN0eWxlcywgZXZlbnRMaXN0ZW5lcnMsIG9mZnNldCwgZmxpcCwgcHJldmVudE92ZXJmbG93LCBhcnJvd11cbn0pO1xuZXhwb3J0IHsgcGxhY2VtZW50cyB9OyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlYm91bmNlKGZuKSB7XG4gIHZhciBwZW5kaW5nO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmICghcGVuZGluZykge1xuICAgICAgcGVuZGluZyA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgcmVzb2x2ZShmbigpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGVuZGluZztcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZUJ5TmFtZShtb2RpZmllcnMpIHtcbiAgdmFyIG1lcmdlZCA9IG1vZGlmaWVycy5yZWR1Y2UoZnVuY3Rpb24gKG1lcmdlZCwgY3VycmVudCkge1xuICAgIHZhciBleGlzdGluZyA9IG1lcmdlZFtjdXJyZW50Lm5hbWVdO1xuICAgIG1lcmdlZFtjdXJyZW50Lm5hbWVdID0gZXhpc3RpbmcgPyBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZywgY3VycmVudCwge1xuICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3Rpbmcub3B0aW9ucywgY3VycmVudC5vcHRpb25zKSxcbiAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLmRhdGEsIGN1cnJlbnQuZGF0YSlcbiAgICB9KSA6IGN1cnJlbnQ7XG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfSwge30pOyAvLyBJRTExIGRvZXMgbm90IHN1cHBvcnQgT2JqZWN0LnZhbHVlc1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXJnZWQpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIG1lcmdlZFtrZXldO1xuICB9KTtcbn0iLCJpbXBvcnQgY29tcHV0ZU9mZnNldHMgZnJvbSBcIi4uL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5cbmZ1bmN0aW9uIHBvcHBlck9mZnNldHMoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgLy8gT2Zmc2V0cyBhcmUgdGhlIGFjdHVhbCBwb3NpdGlvbiB0aGUgcG9wcGVyIG5lZWRzIHRvIGhhdmUgdG8gYmVcbiAgLy8gcHJvcGVybHkgcG9zaXRpb25lZCBuZWFyIGl0cyByZWZlcmVuY2UgZWxlbWVudFxuICAvLyBUaGlzIGlzIHRoZSBtb3N0IGJhc2ljIHBsYWNlbWVudCwgYW5kIHdpbGwgYmUgYWRqdXN0ZWQgYnlcbiAgLy8gdGhlIG1vZGlmaWVycyBpbiB0aGUgbmV4dCBzdGVwXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiBzdGF0ZS5yZWN0cy5yZWZlcmVuY2UsXG4gICAgZWxlbWVudDogc3RhdGUucmVjdHMucG9wcGVyLFxuICAgIHN0cmF0ZWd5OiAnYWJzb2x1dGUnLFxuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncG9wcGVyT2Zmc2V0cycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAncmVhZCcsXG4gIGZuOiBwb3BwZXJPZmZzZXRzLFxuICBkYXRhOiB7fVxufTsiLCJjb25zdCBfZXhjbHVkZWQgPSBbXCJlbmFibGVkXCIsIFwicGxhY2VtZW50XCIsIFwic3RyYXRlZ3lcIiwgXCJtb2RpZmllcnNcIl07XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0ge307IHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsgdmFyIGtleSwgaTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVxdWFsIH0gZnJvbSAnZGVxdWFsJztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IGNyZWF0ZVBvcHBlciB9IGZyb20gJy4vcG9wcGVyJztcbmNvbnN0IGRpc2FibGVkQXBwbHlTdHlsZXNNb2RpZmllciA9IHtcbiAgbmFtZTogJ2FwcGx5U3R5bGVzJyxcbiAgZW5hYmxlZDogZmFsc2UsXG4gIHBoYXNlOiAnYWZ0ZXJXcml0ZScsXG4gIGZuOiAoKSA9PiB1bmRlZmluZWRcbn07XG5cbi8vIHVudGlsIGRvY2pzIHN1cHBvcnRzIHR5cGUgZXhwb3J0cy4uLlxuXG5jb25zdCBhcmlhRGVzY3JpYmVkQnlNb2RpZmllciA9IHtcbiAgbmFtZTogJ2FyaWFEZXNjcmliZWRCeScsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnYWZ0ZXJXcml0ZScsXG4gIGVmZmVjdDogKHtcbiAgICBzdGF0ZVxuICB9KSA9PiAoKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgcmVmZXJlbmNlLFxuICAgICAgcG9wcGVyXG4gICAgfSA9IHN0YXRlLmVsZW1lbnRzO1xuICAgIGlmICgncmVtb3ZlQXR0cmlidXRlJyBpbiByZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IGlkcyA9IChyZWZlcmVuY2UuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JykgfHwgJycpLnNwbGl0KCcsJykuZmlsdGVyKGlkID0+IGlkLnRyaW0oKSAhPT0gcG9wcGVyLmlkKTtcbiAgICAgIGlmICghaWRzLmxlbmd0aCkgcmVmZXJlbmNlLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO2Vsc2UgcmVmZXJlbmNlLnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIGlkcy5qb2luKCcsJykpO1xuICAgIH1cbiAgfSxcbiAgZm46ICh7XG4gICAgc3RhdGVcbiAgfSkgPT4ge1xuICAgIHZhciBfcG9wcGVyJGdldEF0dHJpYnV0ZTtcbiAgICBjb25zdCB7XG4gICAgICBwb3BwZXIsXG4gICAgICByZWZlcmVuY2VcbiAgICB9ID0gc3RhdGUuZWxlbWVudHM7XG4gICAgY29uc3Qgcm9sZSA9IChfcG9wcGVyJGdldEF0dHJpYnV0ZSA9IHBvcHBlci5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wb3BwZXIkZ2V0QXR0cmlidXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHBvcHBlci5pZCAmJiByb2xlID09PSAndG9vbHRpcCcgJiYgJ3NldEF0dHJpYnV0ZScgaW4gcmVmZXJlbmNlKSB7XG4gICAgICBjb25zdCBpZHMgPSByZWZlcmVuY2UuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgICBpZiAoaWRzICYmIGlkcy5zcGxpdCgnLCcpLmluZGV4T2YocG9wcGVyLmlkKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVmZXJlbmNlLnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIGlkcyA/IGAke2lkc30sJHtwb3BwZXIuaWR9YCA6IHBvcHBlci5pZCk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgRU1QVFlfTU9ESUZJRVJTID0gW107XG4vKipcbiAqIFBvc2l0aW9uIGFuIGVsZW1lbnQgcmVsYXRpdmUgc29tZSByZWZlcmVuY2UgZWxlbWVudCB1c2luZyBQb3BwZXIuanNcbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlRWxlbWVudFxuICogQHBhcmFtIHBvcHBlckVsZW1lbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSAgICAgIG9wdGlvbnNcbiAqIEBwYXJhbSB7b2JqZWN0PX0gICAgIG9wdGlvbnMubW9kaWZpZXJzIFBvcHBlci5qcyBtb2RpZmllcnNcbiAqIEBwYXJhbSB7Ym9vbGVhbj19ICAgIG9wdGlvbnMuZW5hYmxlZCB0b2dnbGUgdGhlIHBvcHBlciBmdW5jdGlvbmFsaXR5IG9uL29mZlxuICogQHBhcmFtIHtzdHJpbmc9fSAgICAgb3B0aW9ucy5wbGFjZW1lbnQgVGhlIHBvcHBlciBlbGVtZW50IHBsYWNlbWVudCByZWxhdGl2ZSB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nPX0gICAgIG9wdGlvbnMuc3RyYXRlZ3kgdGhlIHBvc2l0aW9uaW5nIHN0cmF0ZWd5XG4gKiBAcGFyYW0ge2Z1bmN0aW9uPX0gICBvcHRpb25zLm9uQ3JlYXRlIGNhbGxlZCB3aGVuIHRoZSBwb3BwZXIgaXMgY3JlYXRlZFxuICogQHBhcmFtIHtmdW5jdGlvbj19ICAgb3B0aW9ucy5vblVwZGF0ZSBjYWxsZWQgd2hlbiB0aGUgcG9wcGVyIGlzIHVwZGF0ZWRcbiAqXG4gKiBAcmV0dXJucyB7VXNlUG9wcGVyU3RhdGV9IFRoZSBwb3BwZXIgc3RhdGVcbiAqL1xuZnVuY3Rpb24gdXNlUG9wcGVyKHJlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnQsIF9yZWYgPSB7fSkge1xuICBsZXQge1xuICAgICAgZW5hYmxlZCA9IHRydWUsXG4gICAgICBwbGFjZW1lbnQgPSAnYm90dG9tJyxcbiAgICAgIHN0cmF0ZWd5ID0gJ2Fic29sdXRlJyxcbiAgICAgIG1vZGlmaWVycyA9IEVNUFRZX01PRElGSUVSU1xuICAgIH0gPSBfcmVmLFxuICAgIGNvbmZpZyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG4gIGNvbnN0IHByZXZNb2RpZmllcnMgPSB1c2VSZWYobW9kaWZpZXJzKTtcbiAgY29uc3QgcG9wcGVySW5zdGFuY2VSZWYgPSB1c2VSZWYoKTtcbiAgY29uc3QgdXBkYXRlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHZhciBfcG9wcGVySW5zdGFuY2VSZWYkY3U7XG4gICAgKF9wb3BwZXJJbnN0YW5jZVJlZiRjdSA9IHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfcG9wcGVySW5zdGFuY2VSZWYkY3UudXBkYXRlKCk7XG4gIH0sIFtdKTtcbiAgY29uc3QgZm9yY2VVcGRhdGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdmFyIF9wb3BwZXJJbnN0YW5jZVJlZiRjdTI7XG4gICAgKF9wb3BwZXJJbnN0YW5jZVJlZiRjdTIgPSBwb3BwZXJJbnN0YW5jZVJlZi5jdXJyZW50KSA9PSBudWxsID8gdm9pZCAwIDogX3BvcHBlckluc3RhbmNlUmVmJGN1Mi5mb3JjZVVwZGF0ZSgpO1xuICB9LCBbXSk7XG4gIGNvbnN0IFtwb3BwZXJTdGF0ZSwgc2V0U3RhdGVdID0gdXNlU2FmZVN0YXRlKHVzZVN0YXRlKHtcbiAgICBwbGFjZW1lbnQsXG4gICAgdXBkYXRlLFxuICAgIGZvcmNlVXBkYXRlLFxuICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgIHN0eWxlczoge1xuICAgICAgcG9wcGVyOiB7fSxcbiAgICAgIGFycm93OiB7fVxuICAgIH1cbiAgfSkpO1xuICBjb25zdCB1cGRhdGVNb2RpZmllciA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICBuYW1lOiAndXBkYXRlU3RhdGVNb2RpZmllcicsXG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICBwaGFzZTogJ3dyaXRlJyxcbiAgICByZXF1aXJlczogWydjb21wdXRlU3R5bGVzJ10sXG4gICAgZm46ICh7XG4gICAgICBzdGF0ZVxuICAgIH0pID0+IHtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IHt9O1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMoc3RhdGUuZWxlbWVudHMpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIHN0eWxlc1tlbGVtZW50XSA9IHN0YXRlLnN0eWxlc1tlbGVtZW50XTtcbiAgICAgICAgYXR0cmlidXRlc1tlbGVtZW50XSA9IHN0YXRlLmF0dHJpYnV0ZXNbZWxlbWVudF07XG4gICAgICB9KTtcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgdXBkYXRlLFxuICAgICAgICBmb3JjZVVwZGF0ZSxcbiAgICAgICAgcGxhY2VtZW50OiBzdGF0ZS5wbGFjZW1lbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfSksIFt1cGRhdGUsIGZvcmNlVXBkYXRlLCBzZXRTdGF0ZV0pO1xuICBjb25zdCBuZXh0TW9kaWZpZXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFkZXF1YWwocHJldk1vZGlmaWVycy5jdXJyZW50LCBtb2RpZmllcnMpKSB7XG4gICAgICBwcmV2TW9kaWZpZXJzLmN1cnJlbnQgPSBtb2RpZmllcnM7XG4gICAgfVxuICAgIHJldHVybiBwcmV2TW9kaWZpZXJzLmN1cnJlbnQ7XG4gIH0sIFttb2RpZmllcnNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgfHwgIWVuYWJsZWQpIHJldHVybjtcbiAgICBwb3BwZXJJbnN0YW5jZVJlZi5jdXJyZW50LnNldE9wdGlvbnMoe1xuICAgICAgcGxhY2VtZW50LFxuICAgICAgc3RyYXRlZ3ksXG4gICAgICBtb2RpZmllcnM6IFsuLi5uZXh0TW9kaWZpZXJzLCB1cGRhdGVNb2RpZmllciwgZGlzYWJsZWRBcHBseVN0eWxlc01vZGlmaWVyXVxuICAgIH0pO1xuICB9LCBbc3RyYXRlZ3ksIHBsYWNlbWVudCwgdXBkYXRlTW9kaWZpZXIsIGVuYWJsZWQsIG5leHRNb2RpZmllcnNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWVuYWJsZWQgfHwgcmVmZXJlbmNlRWxlbWVudCA9PSBudWxsIHx8IHBvcHBlckVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA9IGNyZWF0ZVBvcHBlcihyZWZlcmVuY2VFbGVtZW50LCBwb3BwZXJFbGVtZW50LCBPYmplY3QuYXNzaWduKHt9LCBjb25maWcsIHtcbiAgICAgIHBsYWNlbWVudCxcbiAgICAgIHN0cmF0ZWd5LFxuICAgICAgbW9kaWZpZXJzOiBbLi4ubmV4dE1vZGlmaWVycywgYXJpYURlc2NyaWJlZEJ5TW9kaWZpZXIsIHVwZGF0ZU1vZGlmaWVyXVxuICAgIH0pKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHBvcHBlckluc3RhbmNlUmVmLmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgICBwb3BwZXJJbnN0YW5jZVJlZi5jdXJyZW50LmRlc3Ryb3koKTtcbiAgICAgICAgcG9wcGVySW5zdGFuY2VSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgc2V0U3RhdGUocyA9PiBPYmplY3QuYXNzaWduKHt9LCBzLCB7XG4gICAgICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICAgICAgc3R5bGVzOiB7XG4gICAgICAgICAgICBwb3BwZXI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyBUaGlzIGlzIG9ubHkgcnVuIG9uY2UgdG8gX2NyZWF0ZV8gdGhlIHBvcHBlclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2VuYWJsZWQsIHJlZmVyZW5jZUVsZW1lbnQsIHBvcHBlckVsZW1lbnRdKTtcbiAgcmV0dXJuIHBvcHBlclN0YXRlO1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlUG9wcGVyOyIsImltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1vdW50ZWQgZnJvbSAnLi91c2VNb3VudGVkJztcblxuZnVuY3Rpb24gdXNlU2FmZVN0YXRlKHN0YXRlKSB7XG4gIHZhciBpc01vdW50ZWQgPSB1c2VNb3VudGVkKCk7XG4gIHJldHVybiBbc3RhdGVbMF0sIHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICBpZiAoIWlzTW91bnRlZCgpKSByZXR1cm47XG4gICAgcmV0dXJuIHN0YXRlWzFdKG5leHRTdGF0ZSk7XG4gIH0sIFtpc01vdW50ZWQsIHN0YXRlWzFdXSldO1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTYWZlU3RhdGU7IiwiLyogZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSwgbm8tY29uZC1hc3NpZ24gKi9cblxuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBjb250YWlucyBhbm90aGVyIGdpdmVuIGVsZW1lbnQuXG4gKiBcbiAqIEBwYXJhbSBjb250ZXh0IHRoZSBjb250ZXh0IGVsZW1lbnRcbiAqIEBwYXJhbSBub2RlIHRoZSBlbGVtZW50IHRvIGNoZWNrXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRhaW5zKGNvbnRleHQsIG5vZGUpIHtcbiAgLy8gSFRNTCBET00gYW5kIFNWRyBET00gbWF5IGhhdmUgZGlmZmVyZW50IHN1cHBvcnQgbGV2ZWxzLFxuICAvLyBzbyB3ZSBuZWVkIHRvIGNoZWNrIG9uIGNvbnRleHQgaW5zdGVhZCBvZiBhIGRvY3VtZW50IHJvb3QgZWxlbWVudC5cbiAgaWYgKGNvbnRleHQuY29udGFpbnMpIHJldHVybiBjb250ZXh0LmNvbnRhaW5zKG5vZGUpO1xuICBpZiAoY29udGV4dC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikgcmV0dXJuIGNvbnRleHQgPT09IG5vZGUgfHwgISEoY29udGV4dC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlKSAmIDE2KTtcbn0iLCJpbXBvcnQgY29udGFpbnMgZnJvbSAnZG9tLWhlbHBlcnMvY29udGFpbnMnO1xuaW1wb3J0IGxpc3RlbiBmcm9tICdkb20taGVscGVycy9saXN0ZW4nO1xuaW1wb3J0IG93bmVyRG9jdW1lbnQgZnJvbSAnZG9tLWhlbHBlcnMvb3duZXJEb2N1bWVudCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAcmVzdGFydC9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB3YXJuaW5nIGZyb20gJ3dhcm5pbmcnO1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuZnVuY3Rpb24gaXNMZWZ0Q2xpY2tFdmVudChldmVudCkge1xuICByZXR1cm4gZXZlbnQuYnV0dG9uID09PSAwO1xufVxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50KSB7XG4gIHJldHVybiAhIShldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5KTtcbn1cbmV4cG9ydCBjb25zdCBnZXRSZWZUYXJnZXQgPSByZWYgPT4gcmVmICYmICgnY3VycmVudCcgaW4gcmVmID8gcmVmLmN1cnJlbnQgOiByZWYpO1xuY29uc3QgSW5pdGlhbFRyaWdnZXJFdmVudHMgPSB7XG4gIGNsaWNrOiAnbW91c2Vkb3duJyxcbiAgbW91c2V1cDogJ21vdXNlZG93bicsXG4gIHBvaW50ZXJ1cDogJ3BvaW50ZXJkb3duJ1xufTtcblxuLyoqXG4gKiBUaGUgYHVzZUNsaWNrT3V0c2lkZWAgaG9vayByZWdpc3RlcnMgeW91ciBjYWxsYmFjayBvbiB0aGUgZG9jdW1lbnQgdGhhdCBmaXJlc1xuICogd2hlbiBhIHBvaW50ZXIgZXZlbnQgaXMgcmVnaXN0ZXJlZCBvdXRzaWRlIG9mIHRoZSBwcm92aWRlZCByZWYgb3IgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1JlZjxIVE1MRWxlbWVudD58IEhUTUxFbGVtZW50fSByZWYgIFRoZSBlbGVtZW50IGJvdW5kYXJ5XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNsaWNrT3V0c2lkZVxuICogQHBhcmFtIHtvYmplY3Q9fSAgb3B0aW9uc1xuICogQHBhcmFtIHtib29sZWFuPX0gb3B0aW9ucy5kaXNhYmxlZFxuICogQHBhcmFtIHtzdHJpbmc9fSAgb3B0aW9ucy5jbGlja1RyaWdnZXIgVGhlIERPTSBldmVudCBuYW1lIChjbGljaywgbW91c2Vkb3duLCBldGMpIHRvIGF0dGFjaCBsaXN0ZW5lcnMgb25cbiAqL1xuZnVuY3Rpb24gdXNlQ2xpY2tPdXRzaWRlKHJlZiwgb25DbGlja091dHNpZGUgPSBub29wLCB7XG4gIGRpc2FibGVkLFxuICBjbGlja1RyaWdnZXIgPSAnY2xpY2snXG59ID0ge30pIHtcbiAgY29uc3QgcHJldmVudE1vdXNlQ2xpY2tPdXRzaWRlUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgd2FpdGluZ0ZvclRyaWdnZXIgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVNb3VzZUNhcHR1cmUgPSB1c2VDYWxsYmFjayhlID0+IHtcbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZ2V0UmVmVGFyZ2V0KHJlZik7XG4gICAgd2FybmluZyghIWN1cnJlbnRUYXJnZXQsICdDbGlja091dHNpZGUgY2FwdHVyZWQgYSBjbG9zZSBldmVudCBidXQgZG9lcyBub3QgaGF2ZSBhIHJlZiB0byBjb21wYXJlIGl0IHRvLiAnICsgJ3VzZUNsaWNrT3V0c2lkZSgpLCBzaG91bGQgYmUgcGFzc2VkIGEgcmVmIHRoYXQgcmVzb2x2ZXMgdG8gYSBET00gbm9kZScpO1xuICAgIHByZXZlbnRNb3VzZUNsaWNrT3V0c2lkZVJlZi5jdXJyZW50ID0gIWN1cnJlbnRUYXJnZXQgfHwgaXNNb2RpZmllZEV2ZW50KGUpIHx8ICFpc0xlZnRDbGlja0V2ZW50KGUpIHx8ICEhY29udGFpbnMoY3VycmVudFRhcmdldCwgZS50YXJnZXQpIHx8IHdhaXRpbmdGb3JUcmlnZ2VyLmN1cnJlbnQ7XG4gICAgd2FpdGluZ0ZvclRyaWdnZXIuY3VycmVudCA9IGZhbHNlO1xuICB9LCBbcmVmXSk7XG4gIGNvbnN0IGhhbmRsZUluaXRpYWxNb3VzZSA9IHVzZUV2ZW50Q2FsbGJhY2soZSA9PiB7XG4gICAgY29uc3QgY3VycmVudFRhcmdldCA9IGdldFJlZlRhcmdldChyZWYpO1xuICAgIGlmIChjdXJyZW50VGFyZ2V0ICYmIGNvbnRhaW5zKGN1cnJlbnRUYXJnZXQsIGUudGFyZ2V0KSkge1xuICAgICAgd2FpdGluZ0ZvclRyaWdnZXIuY3VycmVudCA9IHRydWU7XG4gICAgfVxuICB9KTtcbiAgY29uc3QgaGFuZGxlTW91c2UgPSB1c2VFdmVudENhbGxiYWNrKGUgPT4ge1xuICAgIGlmICghcHJldmVudE1vdXNlQ2xpY2tPdXRzaWRlUmVmLmN1cnJlbnQpIHtcbiAgICAgIG9uQ2xpY2tPdXRzaWRlKGUpO1xuICAgIH1cbiAgfSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRpc2FibGVkIHx8IHJlZiA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRvYyA9IG93bmVyRG9jdW1lbnQoZ2V0UmVmVGFyZ2V0KHJlZikpO1xuXG4gICAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgZXZlbnQgdG8gYXZvaWQgdHJpZ2dlcmluZyBoYW5kbGVycyBpbW1lZGlhdGVseVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjAwNzRcbiAgICBsZXQgY3VycmVudEV2ZW50ID0gKGRvYy5kZWZhdWx0VmlldyB8fCB3aW5kb3cpLmV2ZW50O1xuICAgIGxldCByZW1vdmVJbml0aWFsVHJpZ2dlckxpc3RlbmVyID0gbnVsbDtcbiAgICBpZiAoSW5pdGlhbFRyaWdnZXJFdmVudHNbY2xpY2tUcmlnZ2VyXSkge1xuICAgICAgcmVtb3ZlSW5pdGlhbFRyaWdnZXJMaXN0ZW5lciA9IGxpc3Rlbihkb2MsIEluaXRpYWxUcmlnZ2VyRXZlbnRzW2NsaWNrVHJpZ2dlcl0sIGhhbmRsZUluaXRpYWxNb3VzZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gVXNlIGNhcHR1cmUgZm9yIHRoaXMgbGlzdGVuZXIgc28gaXQgZmlyZXMgYmVmb3JlIFJlYWN0J3MgbGlzdGVuZXIsIHRvXG4gICAgLy8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIGluIHRoZSBjb250YWlucygpIGNoZWNrIGJlbG93IGlmIHRoZSB0YXJnZXQgRE9NXG4gICAgLy8gZWxlbWVudCBpcyByZW1vdmVkIGluIHRoZSBSZWFjdCBtb3VzZSBjYWxsYmFjay5cbiAgICBjb25zdCByZW1vdmVNb3VzZUNhcHR1cmVMaXN0ZW5lciA9IGxpc3Rlbihkb2MsIGNsaWNrVHJpZ2dlciwgaGFuZGxlTW91c2VDYXB0dXJlLCB0cnVlKTtcbiAgICBjb25zdCByZW1vdmVNb3VzZUxpc3RlbmVyID0gbGlzdGVuKGRvYywgY2xpY2tUcmlnZ2VyLCBlID0+IHtcbiAgICAgIC8vIHNraXAgaWYgdGhpcyBldmVudCBpcyB0aGUgc2FtZSBhcyB0aGUgb25lIHJ1bm5pbmcgd2hlbiB3ZSBhZGRlZCB0aGUgaGFuZGxlcnNcbiAgICAgIGlmIChlID09PSBjdXJyZW50RXZlbnQpIHtcbiAgICAgICAgY3VycmVudEV2ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBoYW5kbGVNb3VzZShlKTtcbiAgICB9KTtcbiAgICBsZXQgbW9iaWxlU2FmYXJpSGFja0xpc3RlbmVycyA9IFtdO1xuICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2MuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBtb2JpbGVTYWZhcmlIYWNrTGlzdGVuZXJzID0gW10uc2xpY2UuY2FsbChkb2MuYm9keS5jaGlsZHJlbikubWFwKGVsID0+IGxpc3RlbihlbCwgJ21vdXNlbW92ZScsIG5vb3ApKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlbW92ZUluaXRpYWxUcmlnZ2VyTGlzdGVuZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHJlbW92ZUluaXRpYWxUcmlnZ2VyTGlzdGVuZXIoKTtcbiAgICAgIHJlbW92ZU1vdXNlQ2FwdHVyZUxpc3RlbmVyKCk7XG4gICAgICByZW1vdmVNb3VzZUxpc3RlbmVyKCk7XG4gICAgICBtb2JpbGVTYWZhcmlIYWNrTGlzdGVuZXJzLmZvckVhY2gocmVtb3ZlID0+IHJlbW92ZSgpKTtcbiAgICB9O1xuICB9LCBbcmVmLCBkaXNhYmxlZCwgY2xpY2tUcmlnZ2VyLCBoYW5kbGVNb3VzZUNhcHR1cmUsIGhhbmRsZUluaXRpYWxNb3VzZSwgaGFuZGxlTW91c2VdKTtcbn1cbmV4cG9ydCBkZWZhdWx0IHVzZUNsaWNrT3V0c2lkZTsiLCJleHBvcnQgZnVuY3Rpb24gdG9Nb2RpZmllck1hcChtb2RpZmllcnMpIHtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGlmICghQXJyYXkuaXNBcnJheShtb2RpZmllcnMpKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVycyB8fCByZXN1bHQ7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG4gIG1vZGlmaWVycyA9PSBudWxsID8gdm9pZCAwIDogbW9kaWZpZXJzLmZvckVhY2gobSA9PiB7XG4gICAgcmVzdWx0W20ubmFtZV0gPSBtO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0b01vZGlmaWVyQXJyYXkobWFwID0ge30pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobWFwKSkgcmV0dXJuIG1hcDtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcCkubWFwKGsgPT4ge1xuICAgIG1hcFtrXS5uYW1lID0gaztcbiAgICByZXR1cm4gbWFwW2tdO1xuICB9KTtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlT3B0aW9uc1dpdGhQb3BwZXJDb25maWcoe1xuICBlbmFibGVkLFxuICBlbmFibGVFdmVudHMsXG4gIHBsYWNlbWVudCxcbiAgZmxpcCxcbiAgb2Zmc2V0LFxuICBmaXhlZCxcbiAgY29udGFpbmVyUGFkZGluZyxcbiAgYXJyb3dFbGVtZW50LFxuICBwb3BwZXJDb25maWcgPSB7fVxufSkge1xuICB2YXIgX21vZGlmaWVycyRldmVudExpc3RlLCBfbW9kaWZpZXJzJHByZXZlbnRPdmUsIF9tb2RpZmllcnMkcHJldmVudE92ZTIsIF9tb2RpZmllcnMkb2Zmc2V0LCBfbW9kaWZpZXJzJGFycm93O1xuICBjb25zdCBtb2RpZmllcnMgPSB0b01vZGlmaWVyTWFwKHBvcHBlckNvbmZpZy5tb2RpZmllcnMpO1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgcG9wcGVyQ29uZmlnLCB7XG4gICAgcGxhY2VtZW50LFxuICAgIGVuYWJsZWQsXG4gICAgc3RyYXRlZ3k6IGZpeGVkID8gJ2ZpeGVkJyA6IHBvcHBlckNvbmZpZy5zdHJhdGVneSxcbiAgICBtb2RpZmllcnM6IHRvTW9kaWZpZXJBcnJheShPYmplY3QuYXNzaWduKHt9LCBtb2RpZmllcnMsIHtcbiAgICAgIGV2ZW50TGlzdGVuZXJzOiB7XG4gICAgICAgIGVuYWJsZWQ6IGVuYWJsZUV2ZW50cyxcbiAgICAgICAgb3B0aW9uczogKF9tb2RpZmllcnMkZXZlbnRMaXN0ZSA9IG1vZGlmaWVycy5ldmVudExpc3RlbmVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9tb2RpZmllcnMkZXZlbnRMaXN0ZS5vcHRpb25zXG4gICAgICB9LFxuICAgICAgcHJldmVudE92ZXJmbG93OiBPYmplY3QuYXNzaWduKHt9LCBtb2RpZmllcnMucHJldmVudE92ZXJmbG93LCB7XG4gICAgICAgIG9wdGlvbnM6IGNvbnRhaW5lclBhZGRpbmcgPyBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBwYWRkaW5nOiBjb250YWluZXJQYWRkaW5nXG4gICAgICAgIH0sIChfbW9kaWZpZXJzJHByZXZlbnRPdmUgPSBtb2RpZmllcnMucHJldmVudE92ZXJmbG93KSA9PSBudWxsID8gdm9pZCAwIDogX21vZGlmaWVycyRwcmV2ZW50T3ZlLm9wdGlvbnMpIDogKF9tb2RpZmllcnMkcHJldmVudE92ZTIgPSBtb2RpZmllcnMucHJldmVudE92ZXJmbG93KSA9PSBudWxsID8gdm9pZCAwIDogX21vZGlmaWVycyRwcmV2ZW50T3ZlMi5vcHRpb25zXG4gICAgICB9KSxcbiAgICAgIG9mZnNldDoge1xuICAgICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBvZmZzZXRcbiAgICAgICAgfSwgKF9tb2RpZmllcnMkb2Zmc2V0ID0gbW9kaWZpZXJzLm9mZnNldCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9tb2RpZmllcnMkb2Zmc2V0Lm9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgYXJyb3c6IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVycy5hcnJvdywge1xuICAgICAgICBlbmFibGVkOiAhIWFycm93RWxlbWVudCxcbiAgICAgICAgb3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgKF9tb2RpZmllcnMkYXJyb3cgPSBtb2RpZmllcnMuYXJyb3cpID09IG51bGwgPyB2b2lkIDAgOiBfbW9kaWZpZXJzJGFycm93Lm9wdGlvbnMsIHtcbiAgICAgICAgICBlbGVtZW50OiBhcnJvd0VsZW1lbnRcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuICAgICAgZmxpcDogT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGVuYWJsZWQ6ICEhZmxpcFxuICAgICAgfSwgbW9kaWZpZXJzLmZsaXApXG4gICAgfSkpXG4gIH0pO1xufSIsImNvbnN0IF9leGNsdWRlZCA9IFtcImNoaWxkcmVuXCJdO1xuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7IHZhciBrZXksIGk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZUtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gcmV0dXJuIHRhcmdldDsgfVxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNhbGxiYWNrUmVmIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUNhbGxiYWNrUmVmJztcbmltcG9ydCBEcm9wZG93bkNvbnRleHQgZnJvbSAnLi9Ecm9wZG93bkNvbnRleHQnO1xuaW1wb3J0IHVzZVBvcHBlciBmcm9tICcuL3VzZVBvcHBlcic7XG5pbXBvcnQgdXNlQ2xpY2tPdXRzaWRlIGZyb20gJy4vdXNlQ2xpY2tPdXRzaWRlJztcbmltcG9ydCBtZXJnZU9wdGlvbnNXaXRoUG9wcGVyQ29uZmlnIGZyb20gJy4vbWVyZ2VPcHRpb25zV2l0aFBvcHBlckNvbmZpZyc7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbi8qKlxuICogQG1lbWJlck9mIERyb3Bkb3duXG4gKiBAcGFyYW0ge29iamVjdH0gIG9wdGlvbnNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5mbGlwIEF1dG9tYXRpY2FsbHkgYWRqdXN0IHRoZSBtZW51IGBkcm9wYCBwb3NpdGlvbiBiYXNlZCBvbiB2aWV3cG9ydCBlZGdlIGRldGVjdGlvblxuICogQHBhcmFtIHtbbnVtYmVyLCBudW1iZXJdfSBvcHRpb25zLm9mZnNldCBEZWZpbmUgYW4gb2Zmc2V0IGRpc3RhbmNlIGJldHdlZW4gdGhlIE1lbnUgYW5kIHRoZSBUb2dnbGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5zaG93IERpc3BsYXkgdGhlIG1lbnUgbWFudWFsbHksIGlnbm9yZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBgRHJvcGRvd25gXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMudXNlUG9wcGVyIG9wdCBpbi9vdXQgb2YgdXNpbmcgUG9wcGVySlMgdG8gcG9zaXRpb24gbWVudXMuIFdoZW4gZGlzYWJsZWQgeW91IG11c3QgcG9zaXRpb24gaXQgeW91cnNlbGYuXG4gKiBAcGFyYW0ge3N0cmluZ30gIG9wdGlvbnMucm9vdENsb3NlRXZlbnQgVGhlIHBvaW50ZXIgZXZlbnQgdG8gbGlzdGVuIGZvciB3aGVuIGRldGVybWluaW5nIFwiY2xpY2tzIG91dHNpZGVcIiB0aGUgbWVudSBmb3IgdHJpZ2dlcmluZyBhIGNsb3NlLlxuICogQHBhcmFtIHtvYmplY3R9ICBvcHRpb25zLnBvcHBlckNvbmZpZyBPcHRpb25zIHBhc3NlZCB0byB0aGUgW2B1c2VQb3BwZXJgXSgvYXBpL3VzZVBvcHBlcikgaG9vay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURyb3Bkb3duTWVudShvcHRpb25zID0ge30pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcbiAgY29uc3QgW2Fycm93RWxlbWVudCwgYXR0YWNoQXJyb3dSZWZdID0gdXNlQ2FsbGJhY2tSZWYoKTtcbiAgY29uc3QgaGFzU2hvd25SZWYgPSB1c2VSZWYoZmFsc2UpO1xuICBjb25zdCB7XG4gICAgZmxpcCxcbiAgICBvZmZzZXQsXG4gICAgcm9vdENsb3NlRXZlbnQsXG4gICAgZml4ZWQgPSBmYWxzZSxcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudE92ZXJyaWRlLFxuICAgIHBvcHBlckNvbmZpZyA9IHt9LFxuICAgIGVuYWJsZUV2ZW50TGlzdGVuZXJzID0gdHJ1ZSxcbiAgICB1c2VQb3BwZXI6IHNob3VsZFVzZVBvcHBlciA9ICEhY29udGV4dFxuICB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc2hvdyA9IChjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LnNob3cpID09IG51bGwgPyAhIW9wdGlvbnMuc2hvdyA6IGNvbnRleHQuc2hvdztcbiAgaWYgKHNob3cgJiYgIWhhc1Nob3duUmVmLmN1cnJlbnQpIHtcbiAgICBoYXNTaG93blJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgfVxuICBjb25zdCBoYW5kbGVDbG9zZSA9IGUgPT4ge1xuICAgIGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQudG9nZ2xlKGZhbHNlLCBlKTtcbiAgfTtcbiAgY29uc3Qge1xuICAgIHBsYWNlbWVudCxcbiAgICBzZXRNZW51LFxuICAgIG1lbnVFbGVtZW50LFxuICAgIHRvZ2dsZUVsZW1lbnRcbiAgfSA9IGNvbnRleHQgfHwge307XG4gIGNvbnN0IHBvcHBlciA9IHVzZVBvcHBlcih0b2dnbGVFbGVtZW50LCBtZW51RWxlbWVudCwgbWVyZ2VPcHRpb25zV2l0aFBvcHBlckNvbmZpZyh7XG4gICAgcGxhY2VtZW50OiBwbGFjZW1lbnRPdmVycmlkZSB8fCBwbGFjZW1lbnQgfHwgJ2JvdHRvbS1zdGFydCcsXG4gICAgZW5hYmxlZDogc2hvdWxkVXNlUG9wcGVyLFxuICAgIGVuYWJsZUV2ZW50czogZW5hYmxlRXZlbnRMaXN0ZW5lcnMgPT0gbnVsbCA/IHNob3cgOiBlbmFibGVFdmVudExpc3RlbmVycyxcbiAgICBvZmZzZXQsXG4gICAgZmxpcCxcbiAgICBmaXhlZCxcbiAgICBhcnJvd0VsZW1lbnQsXG4gICAgcG9wcGVyQ29uZmlnXG4gIH0pKTtcbiAgY29uc3QgbWVudVByb3BzID0gT2JqZWN0LmFzc2lnbih7XG4gICAgcmVmOiBzZXRNZW51IHx8IG5vb3AsXG4gICAgJ2FyaWEtbGFiZWxsZWRieSc6IHRvZ2dsZUVsZW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHRvZ2dsZUVsZW1lbnQuaWRcbiAgfSwgcG9wcGVyLmF0dHJpYnV0ZXMucG9wcGVyLCB7XG4gICAgc3R5bGU6IHBvcHBlci5zdHlsZXMucG9wcGVyXG4gIH0pO1xuICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICBzaG93LFxuICAgIHBsYWNlbWVudCxcbiAgICBoYXNTaG93bjogaGFzU2hvd25SZWYuY3VycmVudCxcbiAgICB0b2dnbGU6IGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQudG9nZ2xlLFxuICAgIHBvcHBlcjogc2hvdWxkVXNlUG9wcGVyID8gcG9wcGVyIDogbnVsbCxcbiAgICBhcnJvd1Byb3BzOiBzaG91bGRVc2VQb3BwZXIgPyBPYmplY3QuYXNzaWduKHtcbiAgICAgIHJlZjogYXR0YWNoQXJyb3dSZWZcbiAgICB9LCBwb3BwZXIuYXR0cmlidXRlcy5hcnJvdywge1xuICAgICAgc3R5bGU6IHBvcHBlci5zdHlsZXMuYXJyb3dcbiAgICB9KSA6IHt9XG4gIH07XG4gIHVzZUNsaWNrT3V0c2lkZShtZW51RWxlbWVudCwgaGFuZGxlQ2xvc2UsIHtcbiAgICBjbGlja1RyaWdnZXI6IHJvb3RDbG9zZUV2ZW50LFxuICAgIGRpc2FibGVkOiAhc2hvd1xuICB9KTtcbiAgcmV0dXJuIFttZW51UHJvcHMsIG1ldGFkYXRhXTtcbn1cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgdXNlUG9wcGVyOiB0cnVlXG59O1xuLyoqXG4gKiBBbHNvIGV4cG9ydGVkIGFzIGA8RHJvcGRvd24uTWVudT5gIGZyb20gYERyb3Bkb3duYC5cbiAqXG4gKiBAZGlzcGxheU5hbWUgRHJvcGRvd25NZW51XG4gKiBAbWVtYmVyT2YgRHJvcGRvd25cbiAqL1xuZnVuY3Rpb24gRHJvcGRvd25NZW51KF9yZWYpIHtcbiAgbGV0IHtcbiAgICAgIGNoaWxkcmVuXG4gICAgfSA9IF9yZWYsXG4gICAgb3B0aW9ucyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG4gIGNvbnN0IFtwcm9wcywgbWV0YV0gPSB1c2VEcm9wZG93bk1lbnUob3B0aW9ucyk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChfRnJhZ21lbnQsIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4ocHJvcHMsIG1ldGEpXG4gIH0pO1xufVxuRHJvcGRvd25NZW51LmRpc3BsYXlOYW1lID0gJ0Ryb3Bkb3duTWVudSc7XG5Ecm9wZG93bk1lbnUuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG4vKiogQGNvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgRHJvcGRvd25NZW51OyIsImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBBIGNvbnZlbmllbmNlIGhvb2sgYXJvdW5kIGB1c2VTdGF0ZWAgZGVzaWduZWQgdG8gYmUgcGFpcmVkIHdpdGhcbiAqIHRoZSBjb21wb25lbnQgW2NhbGxiYWNrIHJlZl0oaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlZnMtYW5kLXRoZS1kb20uaHRtbCNjYWxsYmFjay1yZWZzKSBhcGkuXG4gKiBDYWxsYmFjayByZWZzIGFyZSB1c2VmdWwgb3ZlciBgdXNlUmVmKClgIHdoZW4geW91IG5lZWQgdG8gcmVzcG9uZCB0byB0aGUgcmVmIGJlaW5nIHNldFxuICogaW5zdGVhZCBvZiBsYXppbHkgYWNjZXNzaW5nIGl0IGluIGFuIGVmZmVjdC5cbiAqXG4gKiBgYGB0c1xuICogY29uc3QgW2VsZW1lbnQsIGF0dGFjaFJlZl0gPSB1c2VDYWxsYmFja1JlZjxIVE1MRGl2RWxlbWVudD4oKVxuICpcbiAqIHVzZUVmZmVjdCgoKSA9PiB7XG4gKiAgIGlmICghZWxlbWVudCkgcmV0dXJuXG4gKlxuICogICBjb25zdCBjYWxlbmRhciA9IG5ldyBGdWxsQ2FsZW5kYXIuQ2FsZW5kYXIoZWxlbWVudClcbiAqXG4gKiAgIHJldHVybiAoKSA9PiB7XG4gKiAgICAgY2FsZW5kYXIuZGVzdHJveSgpXG4gKiAgIH1cbiAqIH0sIFtlbGVtZW50XSlcbiAqXG4gKiByZXR1cm4gPGRpdiByZWY9e2F0dGFjaFJlZn0gLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSByZWZzXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlQ2FsbGJhY2tSZWYoKSB7XG4gIHJldHVybiB1c2VTdGF0ZShudWxsKTtcbn0iLCJpbXBvcnQgJDg5eUUyJHJlYWN0LCB7dXNlQ29udGV4dCBhcyAkODl5RTIkdXNlQ29udGV4dCwgdXNlU3RhdGUgYXMgJDg5eUUyJHVzZVN0YXRlLCB1c2VNZW1vIGFzICQ4OXlFMiR1c2VNZW1vLCB1c2VMYXlvdXRFZmZlY3QgYXMgJDg5eUUyJHVzZUxheW91dEVmZmVjdCwgdXNlUmVmIGFzICQ4OXlFMiR1c2VSZWZ9IGZyb20gXCJyZWFjdFwiO1xuXG4vKlxuICogQ29weXJpZ2h0IDIwMjAgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi8gLypcbiAqIENvcHlyaWdodCAyMDIwIEFkb2JlLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBMaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXJcbiAqIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OU1xuICogT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovIC8vIFdlIG11c3QgYXZvaWQgYSBjaXJjdWxhciBkZXBlbmRlbmN5IHdpdGggQHJlYWN0LWFyaWEvdXRpbHMsIGFuZCB0aGlzIHVzZUxheW91dEVmZmVjdCBpc1xuLy8gZ3VhcmRlZCBieSBhIGNoZWNrIHRoYXQgaXQgb25seSBydW5zIG9uIHRoZSBjbGllbnQgc2lkZS5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBydWxlc2Rpci91c2VMYXlvdXRFZmZlY3RSdWxlXG5cbi8vIERlZmF1bHQgY29udGV4dCB2YWx1ZSB0byB1c2UgaW4gY2FzZSB0aGVyZSBpcyBubyBTU1JQcm92aWRlci4gVGhpcyBpcyBmaW5lIGZvclxuLy8gY2xpZW50LW9ubHkgYXBwcy4gSW4gb3JkZXIgdG8gc3VwcG9ydCBtdWx0aXBsZSBjb3BpZXMgb2YgUmVhY3QgQXJpYSBwb3RlbnRpYWxseVxuLy8gYmVpbmcgb24gdGhlIHBhZ2UgYXQgb25jZSwgdGhlIHByZWZpeCBpcyBzZXQgdG8gYSByYW5kb20gbnVtYmVyLiBTU1JQcm92aWRlclxuLy8gd2lsbCByZXNldCB0aGlzIHRvIHplcm8gZm9yIGNvbnNpc3RlbmN5IGJldHdlZW4gc2VydmVyIGFuZCBjbGllbnQsIHNvIGluIHRoZVxuLy8gU1NSIGNhc2UgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IEFyaWEgaXMgbm90IHN1cHBvcnRlZC5cbmNvbnN0ICQ3MDRjZjFkM2I2ODRjYzVjJHZhciRkZWZhdWx0Q29udGV4dCA9IHtcbiAgICBwcmVmaXg6IFN0cmluZyhNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwMCkpLFxuICAgIGN1cnJlbnQ6IDAsXG4gICAgaXNTU1I6IGZhbHNlXG59O1xuY29uc3QgJDcwNGNmMWQzYjY4NGNjNWMkdmFyJFNTUkNvbnRleHQgPSAvKiNfX1BVUkVfXyovICgwLCAkODl5RTIkcmVhY3QpLmNyZWF0ZUNvbnRleHQoJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGRlZmF1bHRDb250ZXh0KTtcbmZ1bmN0aW9uICQ3MDRjZjFkM2I2ODRjYzVjJGV4cG9ydCQ5ZjhhYzk2YWY0YjFiMmFlKHByb3BzKSB7XG4gICAgbGV0IGN1ciA9ICgwLCAkODl5RTIkdXNlQ29udGV4dCkoJDcwNGNmMWQzYjY4NGNjNWMkdmFyJFNTUkNvbnRleHQpO1xuICAgIGxldCBjb3VudGVyID0gJDcwNGNmMWQzYjY4NGNjNWMkdmFyJHVzZUNvdW50ZXIoY3VyID09PSAkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkZGVmYXVsdENvbnRleHQpO1xuICAgIGxldCBbaXNTU1IsIHNldElzU1NSXSA9ICgwLCAkODl5RTIkdXNlU3RhdGUpKHRydWUpO1xuICAgIGxldCB2YWx1ZSA9ICgwLCAkODl5RTIkdXNlTWVtbykoKCk9Pih7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCBTU1JQcm92aWRlciwgc3RhcnQgd2l0aCBhbiBlbXB0eSBzdHJpbmcgcHJlZml4LCBvdGhlcndpc2VcbiAgICAgICAgICAgIC8vIGFwcGVuZCBhbmQgaW5jcmVtZW50IHRoZSBjb3VudGVyLlxuICAgICAgICAgICAgcHJlZml4OiBjdXIgPT09ICQ3MDRjZjFkM2I2ODRjYzVjJHZhciRkZWZhdWx0Q29udGV4dCA/IFwiXCIgOiBgJHtjdXIucHJlZml4fS0ke2NvdW50ZXJ9YCxcbiAgICAgICAgICAgIGN1cnJlbnQ6IDAsXG4gICAgICAgICAgICBpc1NTUjogaXNTU1JcbiAgICAgICAgfSksIFtcbiAgICAgICAgY3VyLFxuICAgICAgICBjb3VudGVyLFxuICAgICAgICBpc1NTUlxuICAgIF0pO1xuICAgIC8vIElmIG9uIHRoZSBjbGllbnQsIGFuZCB0aGUgY29tcG9uZW50IHdhcyBpbml0aWFsbHkgc2VydmVyIHJlbmRlcmVkLFxuICAgIC8vIHRoZW4gc2NoZWR1bGUgYSBsYXlvdXQgZWZmZWN0IHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50IGFmdGVyIGh5ZHJhdGlvbi5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikgLy8gVGhpcyBpZiBzdGF0ZW1lbnQgdGVjaG5pY2FsbHkgYnJlYWtzIHRoZSBydWxlcyBvZiBob29rcywgYnV0IGlzIHNhZmVcbiAgICAvLyBiZWNhdXNlIHRoZSBjb25kaXRpb24gbmV2ZXIgY2hhbmdlcyBhZnRlciBtb3VudGluZy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAoMCwgJDg5eUUyJHVzZUxheW91dEVmZmVjdCkoKCk9PntcbiAgICAgICAgc2V0SXNTU1IoZmFsc2UpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgJDg5eUUyJHJlYWN0KS5jcmVhdGVFbGVtZW50KCQ3MDRjZjFkM2I2ODRjYzVjJHZhciRTU1JDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH0sIHByb3BzLmNoaWxkcmVuKTtcbn1cbmxldCAkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkY2FuVXNlRE9NID0gQm9vbGVhbih0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5sZXQgJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGNvbXBvbmVudElkcyA9IG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiAkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkdXNlQ291bnRlcihpc0Rpc2FibGVkID0gZmFsc2UpIHtcbiAgICBsZXQgY3R4ID0gKDAsICQ4OXlFMiR1c2VDb250ZXh0KSgkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkU1NSQ29udGV4dCk7XG4gICAgbGV0IHJlZiA9ICgwLCAkODl5RTIkdXNlUmVmKShudWxsKTtcbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwgJiYgIWlzRGlzYWJsZWQpIHtcbiAgICAgICAgdmFyIF9SZWFjdF9fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCwgX1JlYWN0X19fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEX1JlYWN0Q3VycmVudE93bmVyO1xuICAgICAgICAvLyBJbiBzdHJpY3QgbW9kZSwgUmVhY3QgcmVuZGVycyBjb21wb25lbnRzIHR3aWNlLCBhbmQgdGhlIHJlZiB3aWxsIGJlIHJlc2V0IHRvIG51bGwgb24gdGhlIHNlY29uZCByZW5kZXIuXG4gICAgICAgIC8vIFRoaXMgbWVhbnMgb3VyIGlkIGNvdW50ZXIgd2lsbCBiZSBpbmNyZW1lbnRlZCB0d2ljZSBpbnN0ZWFkIG9mIG9uY2UuIFRoaXMgaXMgYSBwcm9ibGVtIGJlY2F1c2Ugb24gdGhlXG4gICAgICAgIC8vIHNlcnZlciwgY29tcG9uZW50cyBhcmUgb25seSByZW5kZXJlZCBvbmNlIGFuZCBzbyBpZHMgZ2VuZXJhdGVkIG9uIHRoZSBzZXJ2ZXIgd29uJ3QgbWF0Y2ggdGhlIGNsaWVudC5cbiAgICAgICAgLy8gSW4gUmVhY3QgMTgsIHVzZUlkIHdhcyBpbnRyb2R1Y2VkIHRvIHNvbHZlIHRoaXMsIGJ1dCBpdCBpcyBub3QgYXZhaWxhYmxlIGluIG9sZGVyIHZlcnNpb25zLiBTbyB0byBzb2x2ZSB0aGlzXG4gICAgICAgIC8vIHdlIG5lZWQgdG8gdXNlIHNvbWUgUmVhY3QgaW50ZXJuYWxzIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyBGaWJlciBpbnN0YW5jZSwgd2hpY2ggaXMgc3RhYmxlIGJldHdlZW4gcmVuZGVycy5cbiAgICAgICAgLy8gVGhpcyBpcyBleHBvc2VkIGFzIFJlYWN0Q3VycmVudE93bmVyIGluIGRldmVsb3BtZW50LCB3aGljaCBpcyBhbGwgd2UgbmVlZCBzaW5jZSBTdHJpY3RNb2RlIG9ubHkgcnVucyBpbiBkZXZlbG9wbWVudC5cbiAgICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgd2Ugb25seSBpbmNyZW1lbnQgdGhlIGdsb2JhbCBjb3VudGVyIG9uY2UsIHdlIHN0b3JlIHRoZSBzdGFydGluZyBpZCBmb3IgdGhpcyBjb21wb25lbnQgaW5cbiAgICAgICAgLy8gYSB3ZWFrIG1hcCBhc3NvY2lhdGVkIHdpdGggdGhlIEZpYmVyLiBPbiB0aGUgc2Vjb25kIHJlbmRlciwgd2UgcmVzZXQgdGhlIGdsb2JhbCBjb3VudGVyIHRvIHRoaXMgdmFsdWUuXG4gICAgICAgIC8vIFNpbmNlIFJlYWN0IHJ1bnMgdGhlIHNlY29uZCByZW5kZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGZpcnN0LCB0aGlzIGlzIHNhZmUuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgbGV0IGN1cnJlbnRPd25lciA9IChfUmVhY3RfX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQgPSAoMCwgJDg5eUUyJHJlYWN0KS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCkgPT09IG51bGwgfHwgX1JlYWN0X19fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoX1JlYWN0X19fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEX1JlYWN0Q3VycmVudE93bmVyID0gX1JlYWN0X19fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELlJlYWN0Q3VycmVudE93bmVyKSA9PT0gbnVsbCB8fCBfUmVhY3RfX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRURfUmVhY3RDdXJyZW50T3duZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9SZWFjdF9fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRF9SZWFjdEN1cnJlbnRPd25lci5jdXJyZW50O1xuICAgICAgICBpZiAoY3VycmVudE93bmVyKSB7XG4gICAgICAgICAgICBsZXQgcHJldkNvbXBvbmVudFZhbHVlID0gJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGNvbXBvbmVudElkcy5nZXQoY3VycmVudE93bmVyKTtcbiAgICAgICAgICAgIGlmIChwcmV2Q29tcG9uZW50VmFsdWUgPT0gbnVsbCkgLy8gT24gdGhlIGZpcnN0IHJlbmRlciwgYW5kIGZpcnN0IGNhbGwgdG8gdXNlSWQsIHN0b3JlIHRoZSBpZCBhbmQgc3RhdGUgaW4gb3VyIHdlYWsgbWFwLlxuICAgICAgICAgICAgJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGNvbXBvbmVudElkcy5zZXQoY3VycmVudE93bmVyLCB7XG4gICAgICAgICAgICAgICAgaWQ6IGN0eC5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHN0YXRlOiBjdXJyZW50T3duZXIubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50T3duZXIubWVtb2l6ZWRTdGF0ZSAhPT0gcHJldkNvbXBvbmVudFZhbHVlLnN0YXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gT24gdGhlIHNlY29uZCByZW5kZXIsIHRoZSBtZW1vaXplZFN0YXRlIGdldHMgcmVzZXQgYnkgUmVhY3QuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGNvdW50ZXIsIGFuZCByZW1vdmUgZnJvbSB0aGUgd2VhayBtYXAgc28gd2UgZG9uJ3RcbiAgICAgICAgICAgICAgICAvLyBkbyB0aGlzIGZvciBzdWJzZXF1ZW50IHVzZUlkIGNhbGxzLlxuICAgICAgICAgICAgICAgIGN0eC5jdXJyZW50ID0gcHJldkNvbXBvbmVudFZhbHVlLmlkO1xuICAgICAgICAgICAgICAgICQ3MDRjZjFkM2I2ODRjYzVjJHZhciRjb21wb25lbnRJZHMuZGVsZXRlKGN1cnJlbnRPd25lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVmLmN1cnJlbnQgPSArK2N0eC5jdXJyZW50O1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQ7XG59XG5mdW5jdGlvbiAkNzA0Y2YxZDNiNjg0Y2M1YyRleHBvcnQkNjE5NTAwOTU5ZmM0OGIyNihkZWZhdWx0SWQpIHtcbiAgICBsZXQgY3R4ID0gKDAsICQ4OXlFMiR1c2VDb250ZXh0KSgkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkU1NSQ29udGV4dCk7XG4gICAgLy8gSWYgd2UgYXJlIHJlbmRlcmluZyBpbiBhIG5vbi1ET00gZW52aXJvbm1lbnQsIGFuZCB0aGVyZSdzIG5vIFNTUlByb3ZpZGVyLFxuICAgIC8vIHByb3ZpZGUgYSB3YXJuaW5nIHRvIGhpbnQgdG8gdGhlIGRldmVsb3BlciB0byBhZGQgb25lLlxuICAgIGlmIChjdHggPT09ICQ3MDRjZjFkM2I2ODRjYzVjJHZhciRkZWZhdWx0Q29udGV4dCAmJiAhJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGNhblVzZURPTSkgY29uc29sZS53YXJuKFwiV2hlbiBzZXJ2ZXIgcmVuZGVyaW5nLCB5b3UgbXVzdCB3cmFwIHlvdXIgYXBwbGljYXRpb24gaW4gYW4gPFNTUlByb3ZpZGVyPiB0byBlbnN1cmUgY29uc2lzdGVudCBpZHMgYXJlIGdlbmVyYXRlZCBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlci5cIik7XG4gICAgbGV0IGNvdW50ZXIgPSAkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkdXNlQ291bnRlcighIWRlZmF1bHRJZCk7XG4gICAgcmV0dXJuIGRlZmF1bHRJZCB8fCBgcmVhY3QtYXJpYSR7Y3R4LnByZWZpeH0tJHtjb3VudGVyfWA7XG59XG5mdW5jdGlvbiAkNzA0Y2YxZDNiNjg0Y2M1YyRleHBvcnQkNTM1YmQ2Y2E3ZjkwYTI3MygpIHtcbiAgICBsZXQgY3VyID0gKDAsICQ4OXlFMiR1c2VDb250ZXh0KSgkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkU1NSQ29udGV4dCk7XG4gICAgcmV0dXJuIGN1ci5pc1NTUjtcbn1cblxuXG5cblxuZXhwb3J0IHskNzA0Y2YxZDNiNjg0Y2M1YyRleHBvcnQkOWY4YWM5NmFmNGIxYjJhZSBhcyBTU1JQcm92aWRlciwgJDcwNGNmMWQzYjY4NGNjNWMkZXhwb3J0JDYxOTUwMDk1OWZjNDhiMjYgYXMgdXNlU1NSU2FmZUlkLCAkNzA0Y2YxZDNiNjg0Y2M1YyRleHBvcnQkNTM1YmQ2Y2E3ZjkwYTI3MyBhcyB1c2VJc1NTUn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuanMubWFwXG4iLCJpbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNTUlNhZmVJZCB9IGZyb20gJy4vc3NyJztcbmltcG9ydCBEcm9wZG93bkNvbnRleHQgZnJvbSAnLi9Ecm9wZG93bkNvbnRleHQnO1xuaW1wb3J0IHsgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuZXhwb3J0IGNvbnN0IGlzUm9sZU1lbnUgPSBlbCA9PiB7XG4gIHZhciBfZWwkZ2V0QXR0cmlidXRlO1xuICByZXR1cm4gKChfZWwkZ2V0QXR0cmlidXRlID0gZWwuZ2V0QXR0cmlidXRlKCdyb2xlJykpID09IG51bGwgPyB2b2lkIDAgOiBfZWwkZ2V0QXR0cmlidXRlLnRvTG93ZXJDYXNlKCkpID09PSAnbWVudSc7XG59O1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG4vKipcbiAqIFdpcmVzIHVwIERyb3Bkb3duIHRvZ2dsZSBmdW5jdGlvbmFsaXR5LCByZXR1cm5pbmcgYSBzZXQgYSBwcm9wcyB0byBhdHRhY2hcbiAqIHRvIHRoZSBlbGVtZW50IHRoYXQgZnVuY3Rpb25zIGFzIHRoZSBkcm9wZG93biB0b2dnbGUgKGdlbmVyYWxseSBhIGJ1dHRvbikuXG4gKlxuICogQG1lbWJlck9mIERyb3Bkb3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEcm9wZG93blRvZ2dsZSgpIHtcbiAgY29uc3QgaWQgPSB1c2VTU1JTYWZlSWQoKTtcbiAgY29uc3Qge1xuICAgIHNob3cgPSBmYWxzZSxcbiAgICB0b2dnbGUgPSBub29wLFxuICAgIHNldFRvZ2dsZSxcbiAgICBtZW51RWxlbWVudFxuICB9ID0gdXNlQ29udGV4dChEcm9wZG93bkNvbnRleHQpIHx8IHt9O1xuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKGUgPT4ge1xuICAgIHRvZ2dsZSghc2hvdywgZSk7XG4gIH0sIFtzaG93LCB0b2dnbGVdKTtcbiAgY29uc3QgcHJvcHMgPSB7XG4gICAgaWQsXG4gICAgcmVmOiBzZXRUb2dnbGUgfHwgbm9vcCxcbiAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAnYXJpYS1leHBhbmRlZCc6ICEhc2hvd1xuICB9O1xuXG4gIC8vIFRoaXMgaXMgbWF5YmUgYmV0dGVyIGRvd24gaW4gYW4gZWZmZWN0LCBidXRcbiAgLy8gdGhlIGNvbXBvbmVudCBpcyBnb2luZyB0byB1cGRhdGUgYW55d2F5IHdoZW4gdGhlIG1lbnUgZWxlbWVudFxuICAvLyBpcyBzZXQgc28gbWlnaHQgcmV0dXJuIG5ldyBwcm9wcy5cbiAgaWYgKG1lbnVFbGVtZW50ICYmIGlzUm9sZU1lbnUobWVudUVsZW1lbnQpKSB7XG4gICAgcHJvcHNbJ2FyaWEtaGFzcG9wdXAnXSA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIFtwcm9wcywge1xuICAgIHNob3csXG4gICAgdG9nZ2xlXG4gIH1dO1xufVxuLyoqXG4gKiBBbHNvIGV4cG9ydGVkIGFzIGA8RHJvcGRvd24uVG9nZ2xlPmAgZnJvbSBgRHJvcGRvd25gLlxuICpcbiAqIEBkaXNwbGF5TmFtZSBEcm9wZG93blRvZ2dsZVxuICogQG1lbWJlck9mIERyb3Bkb3duXG4gKi9cbmZ1bmN0aW9uIERyb3Bkb3duVG9nZ2xlKHtcbiAgY2hpbGRyZW5cbn0pIHtcbiAgY29uc3QgW3Byb3BzLCBtZXRhXSA9IHVzZURyb3Bkb3duVG9nZ2xlKCk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChfRnJhZ21lbnQsIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4ocHJvcHMsIG1ldGEpXG4gIH0pO1xufVxuRHJvcGRvd25Ub2dnbGUuZGlzcGxheU5hbWUgPSAnRHJvcGRvd25Ub2dnbGUnO1xuXG4vKiogQGNvbXBvbmVudCAqL1xuZXhwb3J0IGRlZmF1bHQgRHJvcGRvd25Ub2dnbGU7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgU2VsZWN0YWJsZUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmV4cG9ydCBjb25zdCBtYWtlRXZlbnRLZXkgPSAoZXZlbnRLZXksIGhyZWYgPSBudWxsKSA9PiB7XG4gIGlmIChldmVudEtleSAhPSBudWxsKSByZXR1cm4gU3RyaW5nKGV2ZW50S2V5KTtcbiAgcmV0dXJuIGhyZWYgfHwgbnVsbDtcbn07XG5leHBvcnQgZGVmYXVsdCBTZWxlY3RhYmxlQ29udGV4dDsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBOYXZDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5OYXZDb250ZXh0LmRpc3BsYXlOYW1lID0gJ05hdkNvbnRleHQnO1xuZXhwb3J0IGRlZmF1bHQgTmF2Q29udGV4dDsiLCJleHBvcnQgY29uc3QgQVRUUklCVVRFX1BSRUZJWCA9IGBkYXRhLXJyLXVpLWA7XG5leHBvcnQgY29uc3QgUFJPUEVSVFlfUFJFRklYID0gYHJyVWlgO1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFBdHRyKHByb3BlcnR5KSB7XG4gIHJldHVybiBgJHtBVFRSSUJVVEVfUFJFRklYfSR7cHJvcGVydHl9YDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkYXRhUHJvcChwcm9wZXJ0eSkge1xuICByZXR1cm4gYCR7UFJPUEVSVFlfUFJFRklYfSR7cHJvcGVydHl9YDtcbn0iLCJjb25zdCBfZXhjbHVkZWQgPSBbXCJldmVudEtleVwiLCBcImRpc2FibGVkXCIsIFwib25DbGlja1wiLCBcImFjdGl2ZVwiLCBcImFzXCJdO1xuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkgeyBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTsgdmFyIHRhcmdldCA9IHt9OyB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7IHZhciBrZXksIGk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZUtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gcmV0dXJuIHRhcmdldDsgfVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IFNlbGVjdGFibGVDb250ZXh0LCB7IG1ha2VFdmVudEtleSB9IGZyb20gJy4vU2VsZWN0YWJsZUNvbnRleHQnO1xuaW1wb3J0IE5hdkNvbnRleHQgZnJvbSAnLi9OYXZDb250ZXh0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnLi9CdXR0b24nO1xuaW1wb3J0IHsgZGF0YUF0dHIgfSBmcm9tICcuL0RhdGFLZXknO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbi8qKlxuICogQ3JlYXRlIGEgZHJvcGRvd24gaXRlbS4gUmV0dXJucyBhIHNldCBvZiBwcm9wcyBmb3IgdGhlIGRyb3Bkb3duIGl0ZW0gY29tcG9uZW50XG4gKiBpbmNsdWRpbmcgYW4gYG9uQ2xpY2tgIGhhbmRsZXIgdGhhdCBwcmV2ZW50cyBzZWxlY3Rpb24gd2hlbiB0aGUgaXRlbSBpcyBkaXNhYmxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRHJvcGRvd25JdGVtKHtcbiAga2V5LFxuICBocmVmLFxuICBhY3RpdmUsXG4gIGRpc2FibGVkLFxuICBvbkNsaWNrXG59KSB7XG4gIGNvbnN0IG9uU2VsZWN0Q3R4ID0gdXNlQ29udGV4dChTZWxlY3RhYmxlQ29udGV4dCk7XG4gIGNvbnN0IG5hdkNvbnRleHQgPSB1c2VDb250ZXh0KE5hdkNvbnRleHQpO1xuICBjb25zdCB7XG4gICAgYWN0aXZlS2V5XG4gIH0gPSBuYXZDb250ZXh0IHx8IHt9O1xuICBjb25zdCBldmVudEtleSA9IG1ha2VFdmVudEtleShrZXksIGhyZWYpO1xuICBjb25zdCBpc0FjdGl2ZSA9IGFjdGl2ZSA9PSBudWxsICYmIGtleSAhPSBudWxsID8gbWFrZUV2ZW50S2V5KGFjdGl2ZUtleSkgPT09IGV2ZW50S2V5IDogYWN0aXZlO1xuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soZXZlbnQgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuO1xuICAgIG9uQ2xpY2sgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQ2xpY2soZXZlbnQpO1xuICAgIGlmIChvblNlbGVjdEN0eCAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSkge1xuICAgICAgb25TZWxlY3RDdHgoZXZlbnRLZXksIGV2ZW50KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gW3tcbiAgICBvbkNsaWNrOiBoYW5kbGVDbGljayxcbiAgICAnYXJpYS1kaXNhYmxlZCc6IGRpc2FibGVkIHx8IHVuZGVmaW5lZCxcbiAgICAnYXJpYS1zZWxlY3RlZCc6IGlzQWN0aXZlLFxuICAgIFtkYXRhQXR0cignZHJvcGRvd24taXRlbScpXTogJydcbiAgfSwge1xuICAgIGlzQWN0aXZlXG4gIH1dO1xufVxuY29uc3QgRHJvcGRvd25JdGVtID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKF9yZWYsIHJlZikgPT4ge1xuICBsZXQge1xuICAgICAgZXZlbnRLZXksXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBhY3RpdmUsXG4gICAgICBhczogQ29tcG9uZW50ID0gQnV0dG9uXG4gICAgfSA9IF9yZWYsXG4gICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBfZXhjbHVkZWQpO1xuICBjb25zdCBbZHJvcGRvd25JdGVtUHJvcHNdID0gdXNlRHJvcGRvd25JdGVtKHtcbiAgICBrZXk6IGV2ZW50S2V5LFxuICAgIGhyZWY6IHByb3BzLmhyZWYsXG4gICAgZGlzYWJsZWQsXG4gICAgb25DbGljayxcbiAgICBhY3RpdmVcbiAgfSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzLCB7XG4gICAgcmVmOiByZWZcbiAgfSwgZHJvcGRvd25JdGVtUHJvcHMpKTtcbn0pO1xuRHJvcGRvd25JdGVtLmRpc3BsYXlOYW1lID0gJ0Ryb3Bkb3duSXRlbSc7XG5leHBvcnQgZGVmYXVsdCBEcm9wZG93bkl0ZW07IiwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjYW5Vc2VET00gZnJvbSAnZG9tLWhlbHBlcnMvY2FuVXNlRE9NJztcbmNvbnN0IENvbnRleHQgPSAvKiNfX1BVUkVfXyovY3JlYXRlQ29udGV4dChjYW5Vc2VET00gPyB3aW5kb3cgOiB1bmRlZmluZWQpO1xuZXhwb3J0IGNvbnN0IFdpbmRvd1Byb3ZpZGVyID0gQ29udGV4dC5Qcm92aWRlcjtcblxuLyoqXG4gKiBUaGUgZG9jdW1lbnQgXCJ3aW5kb3dcIiBwbGFjZWQgaW4gUmVhY3QgY29udGV4dC4gSGVscGZ1bCBmb3IgZGV0ZXJtaW5pbmdcbiAqIFNTUiBjb250ZXh0LCBvciB3aGVuIHJlbmRlcmluZyBpbnRvIGFuIGlmcmFtZS5cbiAqXG4gKiBAcmV0dXJucyB0aGUgY3VycmVudCB3aW5kb3dcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlV2luZG93KCkge1xuICByZXR1cm4gdXNlQ29udGV4dChDb250ZXh0KTtcbn0iLCJpbXBvcnQgcXNhIGZyb20gJ2RvbS1oZWxwZXJzL3F1ZXJ5U2VsZWN0b3JBbGwnO1xuaW1wb3J0IGFkZEV2ZW50TGlzdGVuZXIgZnJvbSAnZG9tLWhlbHBlcnMvYWRkRXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VVbmNvbnRyb2xsZWRQcm9wIH0gZnJvbSAndW5jb250cm9sbGFibGUnO1xuaW1wb3J0IHVzZVByZXZpb3VzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZVByZXZpb3VzJztcbmltcG9ydCB1c2VGb3JjZVVwZGF0ZSBmcm9tICdAcmVzdGFydC9ob29rcy91c2VGb3JjZVVwZGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRMaXN0ZW5lciBmcm9tICdAcmVzdGFydC9ob29rcy91c2VFdmVudExpc3RlbmVyJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IERyb3Bkb3duQ29udGV4dCBmcm9tICcuL0Ryb3Bkb3duQ29udGV4dCc7XG5pbXBvcnQgRHJvcGRvd25NZW51IGZyb20gJy4vRHJvcGRvd25NZW51JztcbmltcG9ydCBEcm9wZG93blRvZ2dsZSwgeyBpc1JvbGVNZW51IH0gZnJvbSAnLi9Ecm9wZG93blRvZ2dsZSc7XG5pbXBvcnQgRHJvcGRvd25JdGVtIGZyb20gJy4vRHJvcGRvd25JdGVtJztcbmltcG9ydCBTZWxlY3RhYmxlQ29udGV4dCBmcm9tICcuL1NlbGVjdGFibGVDb250ZXh0JztcbmltcG9ydCB7IGRhdGFBdHRyIH0gZnJvbSAnLi9EYXRhS2V5JztcbmltcG9ydCB1c2VXaW5kb3cgZnJvbSAnLi91c2VXaW5kb3cnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmZ1bmN0aW9uIHVzZVJlZldpdGhVcGRhdGUoKSB7XG4gIGNvbnN0IGZvcmNlVXBkYXRlID0gdXNlRm9yY2VVcGRhdGUoKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBhdHRhY2hSZWYgPSB1c2VDYWxsYmFjayhlbGVtZW50ID0+IHtcbiAgICByZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgLy8gZW5zdXJlIHRoYXQgYSBtZW51IHNldCB0cmlnZ2VycyBhbiB1cGRhdGUgZm9yIGNvbnN1bWVyc1xuICAgIGZvcmNlVXBkYXRlKCk7XG4gIH0sIFtmb3JjZVVwZGF0ZV0pO1xuICByZXR1cm4gW3JlZiwgYXR0YWNoUmVmXTtcbn1cblxuLyoqXG4gKiBAZGlzcGxheU5hbWUgRHJvcGRvd25cbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gRHJvcGRvd24oe1xuICBkZWZhdWx0U2hvdyxcbiAgc2hvdzogcmF3U2hvdyxcbiAgb25TZWxlY3QsXG4gIG9uVG9nZ2xlOiByYXdPblRvZ2dsZSxcbiAgaXRlbVNlbGVjdG9yID0gYCogWyR7ZGF0YUF0dHIoJ2Ryb3Bkb3duLWl0ZW0nKX1dYCxcbiAgZm9jdXNGaXJzdEl0ZW1PblNob3csXG4gIHBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnLFxuICBjaGlsZHJlblxufSkge1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgW3Nob3csIG9uVG9nZ2xlXSA9IHVzZVVuY29udHJvbGxlZFByb3AocmF3U2hvdywgZGVmYXVsdFNob3csIHJhd09uVG9nZ2xlKTtcblxuICAvLyBXZSB1c2Ugbm9ybWFsIHJlZnMgaW5zdGVhZCBvZiB1c2VDYWxsYmFja1JlZiBpbiBvcmRlciB0byBwb3B1bGF0ZSB0aGVcbiAgLy8gdGhlIHZhbHVlIGFzIHF1aWNrbHkgYXMgcG9zc2libGUsIG90aGVyd2lzZSB0aGUgZWZmZWN0IHRvIGZvY3VzIHRoZSBlbGVtZW50XG4gIC8vIG1heSBydW4gYmVmb3JlIHRoZSBzdGF0ZSB2YWx1ZSBpcyBzZXRcbiAgY29uc3QgW21lbnVSZWYsIHNldE1lbnVdID0gdXNlUmVmV2l0aFVwZGF0ZSgpO1xuICBjb25zdCBtZW51RWxlbWVudCA9IG1lbnVSZWYuY3VycmVudDtcbiAgY29uc3QgW3RvZ2dsZVJlZiwgc2V0VG9nZ2xlXSA9IHVzZVJlZldpdGhVcGRhdGUoKTtcbiAgY29uc3QgdG9nZ2xlRWxlbWVudCA9IHRvZ2dsZVJlZi5jdXJyZW50O1xuICBjb25zdCBsYXN0U2hvdyA9IHVzZVByZXZpb3VzKHNob3cpO1xuICBjb25zdCBsYXN0U291cmNlRXZlbnQgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGZvY3VzSW5Ecm9wZG93biA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IG9uU2VsZWN0Q3R4ID0gdXNlQ29udGV4dChTZWxlY3RhYmxlQ29udGV4dCk7XG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKChuZXh0U2hvdywgZXZlbnQsIHNvdXJjZSA9IGV2ZW50ID09IG51bGwgPyB2b2lkIDAgOiBldmVudC50eXBlKSA9PiB7XG4gICAgb25Ub2dnbGUobmV4dFNob3csIHtcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgc291cmNlXG4gICAgfSk7XG4gIH0sIFtvblRvZ2dsZV0pO1xuICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VFdmVudENhbGxiYWNrKChrZXksIGV2ZW50KSA9PiB7XG4gICAgb25TZWxlY3QgPT0gbnVsbCA/IHZvaWQgMCA6IG9uU2VsZWN0KGtleSwgZXZlbnQpO1xuICAgIHRvZ2dsZShmYWxzZSwgZXZlbnQsICdzZWxlY3QnKTtcbiAgICBpZiAoIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgIG9uU2VsZWN0Q3R4ID09IG51bGwgPyB2b2lkIDAgOiBvblNlbGVjdEN0eChrZXksIGV2ZW50KTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBjb250ZXh0ID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIHRvZ2dsZSxcbiAgICBwbGFjZW1lbnQsXG4gICAgc2hvdyxcbiAgICBtZW51RWxlbWVudCxcbiAgICB0b2dnbGVFbGVtZW50LFxuICAgIHNldE1lbnUsXG4gICAgc2V0VG9nZ2xlXG4gIH0pLCBbdG9nZ2xlLCBwbGFjZW1lbnQsIHNob3csIG1lbnVFbGVtZW50LCB0b2dnbGVFbGVtZW50LCBzZXRNZW51LCBzZXRUb2dnbGVdKTtcbiAgaWYgKG1lbnVFbGVtZW50ICYmIGxhc3RTaG93ICYmICFzaG93KSB7XG4gICAgZm9jdXNJbkRyb3Bkb3duLmN1cnJlbnQgPSBtZW51RWxlbWVudC5jb250YWlucyhtZW51RWxlbWVudC5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICB9XG4gIGNvbnN0IGZvY3VzVG9nZ2xlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHRvZ2dsZUVsZW1lbnQgJiYgdG9nZ2xlRWxlbWVudC5mb2N1cykge1xuICAgICAgdG9nZ2xlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IG1heWJlRm9jdXNGaXJzdCA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHR5cGUgPSBsYXN0U291cmNlRXZlbnQuY3VycmVudDtcbiAgICBsZXQgZm9jdXNUeXBlID0gZm9jdXNGaXJzdEl0ZW1PblNob3c7XG4gICAgaWYgKGZvY3VzVHlwZSA9PSBudWxsKSB7XG4gICAgICBmb2N1c1R5cGUgPSBtZW51UmVmLmN1cnJlbnQgJiYgaXNSb2xlTWVudShtZW51UmVmLmN1cnJlbnQpID8gJ2tleWJvYXJkJyA6IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZm9jdXNUeXBlID09PSBmYWxzZSB8fCBmb2N1c1R5cGUgPT09ICdrZXlib2FyZCcgJiYgIS9ea2V5LiskLy50ZXN0KHR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpcnN0ID0gcXNhKG1lbnVSZWYuY3VycmVudCwgaXRlbVNlbGVjdG9yKVswXTtcbiAgICBpZiAoZmlyc3QgJiYgZmlyc3QuZm9jdXMpIGZpcnN0LmZvY3VzKCk7XG4gIH0pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaG93KSBtYXliZUZvY3VzRmlyc3QoKTtlbHNlIGlmIChmb2N1c0luRHJvcGRvd24uY3VycmVudCkge1xuICAgICAgZm9jdXNJbkRyb3Bkb3duLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgIGZvY3VzVG9nZ2xlKCk7XG4gICAgfVxuICAgIC8vIG9ubHkgYHNob3dgIHNob3VsZCBiZSBjaGFuZ2luZ1xuICB9LCBbc2hvdywgZm9jdXNJbkRyb3Bkb3duLCBmb2N1c1RvZ2dsZSwgbWF5YmVGb2N1c0ZpcnN0XSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGFzdFNvdXJjZUV2ZW50LmN1cnJlbnQgPSBudWxsO1xuICB9KTtcbiAgY29uc3QgZ2V0TmV4dEZvY3VzZWRDaGlsZCA9IChjdXJyZW50LCBvZmZzZXQpID0+IHtcbiAgICBpZiAoIW1lbnVSZWYuY3VycmVudCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgaXRlbXMgPSBxc2EobWVudVJlZi5jdXJyZW50LCBpdGVtU2VsZWN0b3IpO1xuICAgIGxldCBpbmRleCA9IGl0ZW1zLmluZGV4T2YoY3VycmVudCkgKyBvZmZzZXQ7XG4gICAgaW5kZXggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihpbmRleCwgaXRlbXMubGVuZ3RoKSk7XG4gICAgcmV0dXJuIGl0ZW1zW2luZGV4XTtcbiAgfTtcbiAgdXNlRXZlbnRMaXN0ZW5lcih1c2VDYWxsYmFjaygoKSA9PiB3aW5kb3cuZG9jdW1lbnQsIFt3aW5kb3ddKSwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgdmFyIF9tZW51UmVmJGN1cnJlbnQsIF90b2dnbGVSZWYkY3VycmVudDtcbiAgICBjb25zdCB7XG4gICAgICBrZXlcbiAgICB9ID0gZXZlbnQ7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IGZyb21NZW51ID0gKF9tZW51UmVmJGN1cnJlbnQgPSBtZW51UmVmLmN1cnJlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbWVudVJlZiRjdXJyZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgY29uc3QgZnJvbVRvZ2dsZSA9IChfdG9nZ2xlUmVmJGN1cnJlbnQgPSB0b2dnbGVSZWYuY3VycmVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF90b2dnbGVSZWYkY3VycmVudC5jb250YWlucyh0YXJnZXQpO1xuXG4gICAgLy8gU2Vjb25kIG9ubHkgdG8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvOGNmYmY2OTMzYjhhMDE0NmFjM2ZiYzM2OWYxOWU1MjBiZDFlYmRhYy9qcy9zcmMvZHJvcGRvd24uanMjTDQwMFxuICAgIC8vIGluIGluc2NydXRhYmlsaXR5XG4gICAgY29uc3QgaXNJbnB1dCA9IC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodGFyZ2V0LnRhZ05hbWUpO1xuICAgIGlmIChpc0lucHV0ICYmIChrZXkgPT09ICcgJyB8fCBrZXkgIT09ICdFc2NhcGUnICYmIGZyb21NZW51IHx8IGtleSA9PT0gJ0VzY2FwZScgJiYgdGFyZ2V0LnR5cGUgPT09ICdzZWFyY2gnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWZyb21NZW51ICYmICFmcm9tVG9nZ2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdUYWInICYmICghbWVudVJlZi5jdXJyZW50IHx8ICFzaG93KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsYXN0U291cmNlRXZlbnQuY3VycmVudCA9IGV2ZW50LnR5cGU7XG4gICAgY29uc3QgbWV0YSA9IHtcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgc291cmNlOiBldmVudC50eXBlXG4gICAgfTtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBuZXh0ID0gZ2V0TmV4dEZvY3VzZWRDaGlsZCh0YXJnZXQsIC0xKTtcbiAgICAgICAgICBpZiAobmV4dCAmJiBuZXh0LmZvY3VzKSBuZXh0LmZvY3VzKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICghc2hvdykge1xuICAgICAgICAgIG9uVG9nZ2xlKHRydWUsIG1ldGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG5leHQgPSBnZXROZXh0Rm9jdXNlZENoaWxkKHRhcmdldCwgMSk7XG4gICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5mb2N1cykgbmV4dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIC8vIG9uIGtleWRvd24gdGhlIHRhcmdldCBpcyB0aGUgZWxlbWVudCBiZWluZyB0YWJiZWQgRlJPTSwgd2UgbmVlZCB0aGF0XG4gICAgICAgIC8vIHRvIGtub3cgaWYgdGhpcyBldmVudCBpcyByZWxldmFudCB0byB0aGlzIGRyb3Bkb3duIChlLmcuIGluIHRoaXMgbWVudSkuXG4gICAgICAgIC8vIE9uIGBrZXl1cGAgdGhlIHRhcmdldCBpcyB0aGUgZWxlbWVudCBiZWluZyB0YWdnZWQgVE8gd2hpY2ggd2UgdXNlIHRvIGNoZWNrXG4gICAgICAgIC8vIGlmIGZvY3VzIGhhcyBsZWZ0IHRoZSBtZW51XG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIodGFyZ2V0Lm93bmVyRG9jdW1lbnQsICdrZXl1cCcsIGUgPT4ge1xuICAgICAgICAgIHZhciBfbWVudVJlZiRjdXJyZW50MjtcbiAgICAgICAgICBpZiAoZS5rZXkgPT09ICdUYWInICYmICFlLnRhcmdldCB8fCAhKChfbWVudVJlZiRjdXJyZW50MiA9IG1lbnVSZWYuY3VycmVudCkgIT0gbnVsbCAmJiBfbWVudVJlZiRjdXJyZW50Mi5jb250YWlucyhlLnRhcmdldCkpKSB7XG4gICAgICAgICAgICBvblRvZ2dsZShmYWxzZSwgbWV0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICBpZiAoa2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgb25Ub2dnbGUoZmFsc2UsIG1ldGEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KFNlbGVjdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IGhhbmRsZVNlbGVjdCxcbiAgICBjaGlsZHJlbjogLyojX19QVVJFX18qL19qc3goRHJvcGRvd25Db250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogY29udGV4dCxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pXG4gIH0pO1xufVxuRHJvcGRvd24uZGlzcGxheU5hbWUgPSAnRHJvcGRvd24nO1xuRHJvcGRvd24uTWVudSA9IERyb3Bkb3duTWVudTtcbkRyb3Bkb3duLlRvZ2dsZSA9IERyb3Bkb3duVG9nZ2xlO1xuRHJvcGRvd24uSXRlbSA9IERyb3Bkb3duSXRlbTtcbmV4cG9ydCBkZWZhdWx0IERyb3Bkb3duOyIsImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJy4vdXNlRXZlbnRDYWxsYmFjayc7XG5cbi8qKlxuICogQXR0YWNoZXMgYW4gZXZlbnQgaGFuZGxlciBvdXRzaWRlIGRpcmVjdGx5IHRvIHNwZWNpZmllZCBET00gZWxlbWVudFxuICogYnlwYXNzaW5nIHRoZSByZWFjdCBzeW50aGV0aWMgZXZlbnQgc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSB0YXJnZXQgdG8gbGlzdGVuIGZvciBldmVudHMgb25cbiAqIEBwYXJhbSBldmVudCBUaGUgRE9NIGV2ZW50IG5hbWVcbiAqIEBwYXJhbSBoYW5kbGVyIEFuIGV2ZW50IGhhbmRsZXJcbiAqIEBwYXJhbSBjYXB0dXJlIFdoZXRoZXIgb3Igbm90IHRvIGxpc3RlbiBkdXJpbmcgdGhlIGNhcHR1cmUgZXZlbnQgcGhhc2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlRXZlbnRMaXN0ZW5lcihldmVudFRhcmdldCwgZXZlbnQsIGxpc3RlbmVyLCBjYXB0dXJlKSB7XG4gIGlmIChjYXB0dXJlID09PSB2b2lkIDApIHtcbiAgICBjYXB0dXJlID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IHVzZUV2ZW50Q2FsbGJhY2sobGlzdGVuZXIpO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciB0YXJnZXQgPSB0eXBlb2YgZXZlbnRUYXJnZXQgPT09ICdmdW5jdGlvbicgPyBldmVudFRhcmdldCgpIDogZXZlbnRUYXJnZXQ7XG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIGNhcHR1cmUpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIGNhcHR1cmUpO1xuICAgIH07XG4gIH0sIFtldmVudFRhcmdldF0pO1xufSIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IERyb3Bkb3duQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KHt9KTtcbkRyb3Bkb3duQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdEcm9wZG93bkNvbnRleHQnO1xuZXhwb3J0IGRlZmF1bHQgRHJvcGRvd25Db250ZXh0OyIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRHJvcGRvd25JdGVtIH0gZnJvbSAnQHJlc3RhcnQvdWkvRHJvcGRvd25JdGVtJztcbmltcG9ydCBBbmNob3IgZnJvbSAnQHJlc3RhcnQvdWkvQW5jaG9yJztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgRHJvcGRvd25JdGVtID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHtcbiAgYnNQcmVmaXgsXG4gIGNsYXNzTmFtZSxcbiAgZXZlbnRLZXksXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIG9uQ2xpY2ssXG4gIGFjdGl2ZSxcbiAgYXM6IENvbXBvbmVudCA9IEFuY2hvcixcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBjb25zdCBwcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdkcm9wZG93bi1pdGVtJyk7XG4gIGNvbnN0IFtkcm9wZG93bkl0ZW1Qcm9wcywgbWV0YV0gPSB1c2VEcm9wZG93bkl0ZW0oe1xuICAgIGtleTogZXZlbnRLZXksXG4gICAgaHJlZjogcHJvcHMuaHJlZixcbiAgICBkaXNhYmxlZCxcbiAgICBvbkNsaWNrLFxuICAgIGFjdGl2ZVxuICB9KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KENvbXBvbmVudCwge1xuICAgIC4uLnByb3BzLFxuICAgIC4uLmRyb3Bkb3duSXRlbVByb3BzLFxuICAgIHJlZjogcmVmLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIHByZWZpeCwgbWV0YS5pc0FjdGl2ZSAmJiAnYWN0aXZlJywgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJylcbiAgfSk7XG59KTtcbkRyb3Bkb3duSXRlbS5kaXNwbGF5TmFtZSA9ICdEcm9wZG93bkl0ZW0nO1xuZXhwb3J0IGRlZmF1bHQgRHJvcGRvd25JdGVtOyIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IGNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmNvbnRleHQuZGlzcGxheU5hbWUgPSAnSW5wdXRHcm91cENvbnRleHQnO1xuZXhwb3J0IGRlZmF1bHQgY29udGV4dDsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8vIFRPRE86IGNoZWNrXG5cbmNvbnN0IGNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmNvbnRleHQuZGlzcGxheU5hbWUgPSAnTmF2YmFyQ29udGV4dCc7XG5leHBvcnQgZGVmYXVsdCBjb250ZXh0OyIsImltcG9ydCBpbnZhcmlhbnQgZnJvbSAnaW52YXJpYW50JztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lcmdlZFJlZnMgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlTWVyZ2VkUmVmcyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VXcmFwcGVkUmVmV2l0aFdhcm5pbmcocmVmLCBjb21wb25lbnROYW1lKSB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgaWYgKCEocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSkgcmV0dXJuIHJlZjtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgY29uc3Qgd2FybmluZ1JlZiA9IHVzZUNhbGxiYWNrKHJlZlZhbHVlID0+IHtcbiAgICAhKHJlZlZhbHVlID09IG51bGwgfHwgIXJlZlZhbHVlLmlzUmVhY3RDb21wb25lbnQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gaW52YXJpYW50KGZhbHNlLCBgJHtjb21wb25lbnROYW1lfSBpbmplY3RlZCBhIHJlZiB0byBhIHByb3ZpZGVkIFxcYGFzXFxgIGNvbXBvbmVudCB0aGF0IHJlc29sdmVkIHRvIGEgY29tcG9uZW50IGluc3RhbmNlIGluc3RlYWQgb2YgYSBET00gZWxlbWVudC4gYCArICdVc2UgYFJlYWN0LmZvcndhcmRSZWZgIHRvIHByb3ZpZGUgdGhlIGluamVjdGVkIHJlZiB0byB0aGUgY2xhc3MgY29tcG9uZW50IGFzIGEgcHJvcCBpbiBvcmRlciB0byBwYXNzIGl0IGRpcmVjdGx5IHRvIGEgRE9NIGVsZW1lbnQnKSA6IGludmFyaWFudChmYWxzZSkgOiB2b2lkIDA7XG4gIH0sIFtjb21wb25lbnROYW1lXSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICByZXR1cm4gdXNlTWVyZ2VkUmVmcyh3YXJuaW5nUmVmLCByZWYpO1xufSIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURyb3Bkb3duTWVudSB9IGZyb20gJ0ByZXN0YXJ0L3VpL0Ryb3Bkb3duTWVudSc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0VmZmVjdCBmcm9tICdAcmVzdGFydC9ob29rcy91c2VJc29tb3JwaGljRWZmZWN0JztcbmltcG9ydCB1c2VNZXJnZWRSZWZzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZU1lcmdlZFJlZnMnO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSAnd2FybmluZyc7XG5pbXBvcnQgRHJvcGRvd25Db250ZXh0IGZyb20gJy4vRHJvcGRvd25Db250ZXh0JztcbmltcG9ydCBJbnB1dEdyb3VwQ29udGV4dCBmcm9tICcuL0lucHV0R3JvdXBDb250ZXh0JztcbmltcG9ydCBOYXZiYXJDb250ZXh0IGZyb20gJy4vTmF2YmFyQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VCb290c3RyYXBQcmVmaXggfSBmcm9tICcuL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IHVzZVdyYXBwZWRSZWZXaXRoV2FybmluZyBmcm9tICcuL3VzZVdyYXBwZWRSZWZXaXRoV2FybmluZyc7XG5pbXBvcnQgeyBhbGlnblByb3BUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIGdldERyb3Bkb3duTWVudVBsYWNlbWVudChhbGlnbkVuZCwgZHJvcERpcmVjdGlvbiwgaXNSVEwpIHtcbiAgY29uc3QgdG9wU3RhcnQgPSBpc1JUTCA/ICd0b3AtZW5kJyA6ICd0b3Atc3RhcnQnO1xuICBjb25zdCB0b3BFbmQgPSBpc1JUTCA/ICd0b3Atc3RhcnQnIDogJ3RvcC1lbmQnO1xuICBjb25zdCBib3R0b21TdGFydCA9IGlzUlRMID8gJ2JvdHRvbS1lbmQnIDogJ2JvdHRvbS1zdGFydCc7XG4gIGNvbnN0IGJvdHRvbUVuZCA9IGlzUlRMID8gJ2JvdHRvbS1zdGFydCcgOiAnYm90dG9tLWVuZCc7XG4gIGNvbnN0IGxlZnRTdGFydCA9IGlzUlRMID8gJ3JpZ2h0LXN0YXJ0JyA6ICdsZWZ0LXN0YXJ0JztcbiAgY29uc3QgbGVmdEVuZCA9IGlzUlRMID8gJ3JpZ2h0LWVuZCcgOiAnbGVmdC1lbmQnO1xuICBjb25zdCByaWdodFN0YXJ0ID0gaXNSVEwgPyAnbGVmdC1zdGFydCcgOiAncmlnaHQtc3RhcnQnO1xuICBjb25zdCByaWdodEVuZCA9IGlzUlRMID8gJ2xlZnQtZW5kJyA6ICdyaWdodC1lbmQnO1xuICBsZXQgcGxhY2VtZW50ID0gYWxpZ25FbmQgPyBib3R0b21FbmQgOiBib3R0b21TdGFydDtcbiAgaWYgKGRyb3BEaXJlY3Rpb24gPT09ICd1cCcpIHBsYWNlbWVudCA9IGFsaWduRW5kID8gdG9wRW5kIDogdG9wU3RhcnQ7ZWxzZSBpZiAoZHJvcERpcmVjdGlvbiA9PT0gJ2VuZCcpIHBsYWNlbWVudCA9IGFsaWduRW5kID8gcmlnaHRFbmQgOiByaWdodFN0YXJ0O2Vsc2UgaWYgKGRyb3BEaXJlY3Rpb24gPT09ICdzdGFydCcpIHBsYWNlbWVudCA9IGFsaWduRW5kID8gbGVmdEVuZCA6IGxlZnRTdGFydDtlbHNlIGlmIChkcm9wRGlyZWN0aW9uID09PSAnZG93bi1jZW50ZXJlZCcpIHBsYWNlbWVudCA9ICdib3R0b20nO2Vsc2UgaWYgKGRyb3BEaXJlY3Rpb24gPT09ICd1cC1jZW50ZXJlZCcpIHBsYWNlbWVudCA9ICd0b3AnO1xuICByZXR1cm4gcGxhY2VtZW50O1xufVxuY29uc3QgRHJvcGRvd25NZW51ID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHtcbiAgYnNQcmVmaXgsXG4gIGNsYXNzTmFtZSxcbiAgYWxpZ24sXG4gIHJvb3RDbG9zZUV2ZW50LFxuICBmbGlwID0gdHJ1ZSxcbiAgc2hvdzogc2hvd1Byb3BzLFxuICByZW5kZXJPbk1vdW50LFxuICAvLyBOZWVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBcImFzXCIgZHVyaW5nIHByb3AgZGVzdHJ1Y3R1cmluZyB0byBiZSBjb21wYXRpYmxlIHdpdGggc3R5bGVkLWNvbXBvbmVudHMgZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy8zNTk1XG4gIGFzOiBDb21wb25lbnQgPSAnZGl2JyxcbiAgcG9wcGVyQ29uZmlnLFxuICB2YXJpYW50LFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIGxldCBhbGlnbkVuZCA9IGZhbHNlO1xuICBjb25zdCBpc05hdmJhciA9IHVzZUNvbnRleHQoTmF2YmFyQ29udGV4dCk7XG4gIGNvbnN0IHByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChic1ByZWZpeCwgJ2Ryb3Bkb3duLW1lbnUnKTtcbiAgY29uc3Qge1xuICAgIGFsaWduOiBjb250ZXh0QWxpZ24sXG4gICAgZHJvcCxcbiAgICBpc1JUTFxuICB9ID0gdXNlQ29udGV4dChEcm9wZG93bkNvbnRleHQpO1xuICBhbGlnbiA9IGFsaWduIHx8IGNvbnRleHRBbGlnbjtcbiAgY29uc3QgaXNJbnB1dEdyb3VwID0gdXNlQ29udGV4dChJbnB1dEdyb3VwQ29udGV4dCk7XG4gIGNvbnN0IGFsaWduQ2xhc3NlcyA9IFtdO1xuICBpZiAoYWxpZ24pIHtcbiAgICBpZiAodHlwZW9mIGFsaWduID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFsaWduKTtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHdhcm5pbmcoa2V5cy5sZW5ndGggPT09IDEsICdUaGVyZSBzaG91bGQgb25seSBiZSAxIGJyZWFrcG9pbnQgd2hlbiBwYXNzaW5nIGFuIG9iamVjdCB0byBgYWxpZ25gJykgOiB2b2lkIDA7XG4gICAgICBpZiAoa2V5cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgYnJrUG9pbnQgPSBrZXlzWzBdO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBhbGlnblticmtQb2ludF07XG5cbiAgICAgICAgLy8gLmRyb3Bkb3duLW1lbnUtZW5kIGlzIHJlcXVpcmVkIGZvciByZXNwb25zaXZlbHkgYWxpZ25pbmdcbiAgICAgICAgLy8gbGVmdCBpbiBhZGRpdGlvbiB0byBhbGlnbiBsZWZ0IGNsYXNzZXMuXG4gICAgICAgIGFsaWduRW5kID0gZGlyZWN0aW9uID09PSAnc3RhcnQnO1xuICAgICAgICBhbGlnbkNsYXNzZXMucHVzaChgJHtwcmVmaXh9LSR7YnJrUG9pbnR9LSR7ZGlyZWN0aW9ufWApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYWxpZ24gPT09ICdlbmQnKSB7XG4gICAgICBhbGlnbkVuZCA9IHRydWU7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBsYWNlbWVudCA9IGdldERyb3Bkb3duTWVudVBsYWNlbWVudChhbGlnbkVuZCwgZHJvcCwgaXNSVEwpO1xuICBjb25zdCBbbWVudVByb3BzLCB7XG4gICAgaGFzU2hvd24sXG4gICAgcG9wcGVyLFxuICAgIHNob3csXG4gICAgdG9nZ2xlXG4gIH1dID0gdXNlRHJvcGRvd25NZW51KHtcbiAgICBmbGlwLFxuICAgIHJvb3RDbG9zZUV2ZW50LFxuICAgIHNob3c6IHNob3dQcm9wcyxcbiAgICB1c2VQb3BwZXI6ICFpc05hdmJhciAmJiBhbGlnbkNsYXNzZXMubGVuZ3RoID09PSAwLFxuICAgIG9mZnNldDogWzAsIDJdLFxuICAgIHBvcHBlckNvbmZpZyxcbiAgICBwbGFjZW1lbnRcbiAgfSk7XG4gIG1lbnVQcm9wcy5yZWYgPSB1c2VNZXJnZWRSZWZzKHVzZVdyYXBwZWRSZWZXaXRoV2FybmluZyhyZWYsICdEcm9wZG93bk1lbnUnKSwgbWVudVByb3BzLnJlZik7XG4gIHVzZUlzb21vcnBoaWNFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFBvcHBlcidzIGluaXRpYWwgcG9zaXRpb24gZm9yIHRoZSBtZW51IGlzIGluY29ycmVjdCB3aGVuXG4gICAgLy8gcmVuZGVyT25Nb3VudD10cnVlLiBOZWVkIHRvIGNhbGwgdXBkYXRlKCkgdG8gY29ycmVjdCBpdC5cbiAgICBpZiAoc2hvdykgcG9wcGVyID09IG51bGwgPyB2b2lkIDAgOiBwb3BwZXIudXBkYXRlKCk7XG4gIH0sIFtzaG93XSk7XG4gIGlmICghaGFzU2hvd24gJiYgIXJlbmRlck9uTW91bnQgJiYgIWlzSW5wdXRHcm91cCkgcmV0dXJuIG51bGw7XG5cbiAgLy8gRm9yIGN1c3RvbSBjb21wb25lbnRzIHByb3ZpZGUgYWRkaXRpb25hbCwgbm9uLURPTSwgcHJvcHM7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ICE9PSAnc3RyaW5nJykge1xuICAgIG1lbnVQcm9wcy5zaG93ID0gc2hvdztcbiAgICBtZW51UHJvcHMuY2xvc2UgPSAoKSA9PiB0b2dnbGUgPT0gbnVsbCA/IHZvaWQgMCA6IHRvZ2dsZShmYWxzZSk7XG4gICAgbWVudVByb3BzLmFsaWduID0gYWxpZ247XG4gIH1cbiAgbGV0IHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gIGlmIChwb3BwZXIgIT0gbnVsbCAmJiBwb3BwZXIucGxhY2VtZW50KSB7XG4gICAgLy8gd2UgZG9uJ3QgbmVlZCB0aGUgZGVmYXVsdCBwb3BwZXIgc3R5bGUsXG4gICAgLy8gbWVudXMgYXJlIGRpc3BsYXk6IG5vbmUgd2hlbiBub3Qgc2hvd24uXG4gICAgc3R5bGUgPSB7XG4gICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgIC4uLm1lbnVQcm9wcy5zdHlsZVxuICAgIH07XG4gICAgcHJvcHNbJ3gtcGxhY2VtZW50J10gPSBwb3BwZXIucGxhY2VtZW50O1xuICB9XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIHtcbiAgICAuLi5wcm9wcyxcbiAgICAuLi5tZW51UHJvcHMsXG4gICAgc3R5bGU6IHN0eWxlXG4gICAgLy8gQm9vdHN0cmFwIGNzcyByZXF1aXJlcyB0aGlzIGRhdGEgYXR0cmliIHRvIHN0eWxlIHJlc3BvbnNpdmUgbWVudXMuXG4gICAgLFxuICAgIC4uLigoYWxpZ25DbGFzc2VzLmxlbmd0aCB8fCBpc05hdmJhcikgJiYge1xuICAgICAgJ2RhdGEtYnMtcG9wcGVyJzogJ3N0YXRpYydcbiAgICB9KSxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBwcmVmaXgsIHNob3cgJiYgJ3Nob3cnLCBhbGlnbkVuZCAmJiBgJHtwcmVmaXh9LWVuZGAsIHZhcmlhbnQgJiYgYCR7cHJlZml4fS0ke3ZhcmlhbnR9YCwgLi4uYWxpZ25DbGFzc2VzKVxuICB9KTtcbn0pO1xuRHJvcGRvd25NZW51LmRpc3BsYXlOYW1lID0gJ0Ryb3Bkb3duTWVudSc7XG5leHBvcnQgZGVmYXVsdCBEcm9wZG93bk1lbnU7IiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VCdXR0b25Qcm9wcyB9IGZyb20gJ0ByZXN0YXJ0L3VpL0J1dHRvbic7XG5pbXBvcnQgeyB1c2VCb290c3RyYXBQcmVmaXggfSBmcm9tICcuL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IEJ1dHRvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGFzLFxuICBic1ByZWZpeCxcbiAgdmFyaWFudCA9ICdwcmltYXJ5JyxcbiAgc2l6ZSxcbiAgYWN0aXZlID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBjb25zdCBwcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdidG4nKTtcbiAgY29uc3QgW2J1dHRvblByb3BzLCB7XG4gICAgdGFnTmFtZVxuICB9XSA9IHVzZUJ1dHRvblByb3BzKHtcbiAgICB0YWdOYW1lOiBhcyxcbiAgICBkaXNhYmxlZCxcbiAgICAuLi5wcm9wc1xuICB9KTtcbiAgY29uc3QgQ29tcG9uZW50ID0gdGFnTmFtZTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KENvbXBvbmVudCwge1xuICAgIC4uLmJ1dHRvblByb3BzLFxuICAgIC4uLnByb3BzLFxuICAgIHJlZjogcmVmLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBwcmVmaXgsIGFjdGl2ZSAmJiAnYWN0aXZlJywgdmFyaWFudCAmJiBgJHtwcmVmaXh9LSR7dmFyaWFudH1gLCBzaXplICYmIGAke3ByZWZpeH0tJHtzaXplfWAsIHByb3BzLmhyZWYgJiYgZGlzYWJsZWQgJiYgJ2Rpc2FibGVkJylcbiAgfSk7XG59KTtcbkJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdCdXR0b24nO1xuZXhwb3J0IGRlZmF1bHQgQnV0dG9uOyIsImltcG9ydCB1c2VNZXJnZWRSZWZzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZU1lcmdlZFJlZnMnO1xuaW1wb3J0IERyb3Bkb3duQ29udGV4dCBmcm9tICdAcmVzdGFydC91aS9Ecm9wZG93bkNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRHJvcGRvd25Ub2dnbGUgfSBmcm9tICdAcmVzdGFydC91aS9Ecm9wZG93blRvZ2dsZSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4vQnV0dG9uJztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgdXNlV3JhcHBlZFJlZldpdGhXYXJuaW5nIGZyb20gJy4vdXNlV3JhcHBlZFJlZldpdGhXYXJuaW5nJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBEcm9wZG93blRvZ2dsZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGJzUHJlZml4LFxuICBzcGxpdCxcbiAgY2xhc3NOYW1lLFxuICBjaGlsZEJzUHJlZml4LFxuICAvLyBOZWVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBcImFzXCIgZHVyaW5nIHByb3AgZGVzdHJ1Y3R1cmluZyB0byBiZSBjb21wYXRpYmxlIHdpdGggc3R5bGVkLWNvbXBvbmVudHMgZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy8zNTk1XG4gIGFzOiBDb21wb25lbnQgPSBCdXR0b24sXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgY29uc3QgcHJlZml4ID0gdXNlQm9vdHN0cmFwUHJlZml4KGJzUHJlZml4LCAnZHJvcGRvd24tdG9nZ2xlJyk7XG4gIGNvbnN0IGRyb3Bkb3duQ29udGV4dCA9IHVzZUNvbnRleHQoRHJvcGRvd25Db250ZXh0KTtcbiAgaWYgKGNoaWxkQnNQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BzLmJzUHJlZml4ID0gY2hpbGRCc1ByZWZpeDtcbiAgfVxuICBjb25zdCBbdG9nZ2xlUHJvcHNdID0gdXNlRHJvcGRvd25Ub2dnbGUoKTtcbiAgdG9nZ2xlUHJvcHMucmVmID0gdXNlTWVyZ2VkUmVmcyh0b2dnbGVQcm9wcy5yZWYsIHVzZVdyYXBwZWRSZWZXaXRoV2FybmluZyhyZWYsICdEcm9wZG93blRvZ2dsZScpKTtcblxuICAvLyBUaGlzIGludGVudGlvbmFsbHkgZm9yd2FyZHMgc2l6ZSBhbmQgdmFyaWFudCAoaWYgc2V0KSB0byB0aGVcbiAgLy8gdW5kZXJseWluZyBjb21wb25lbnQsIHRvIGFsbG93IGl0IHRvIHJlbmRlciBzaXplIGFuZCBzdHlsZSB2YXJpYW50cy5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KENvbXBvbmVudCwge1xuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIHByZWZpeCwgc3BsaXQgJiYgYCR7cHJlZml4fS1zcGxpdGAsIChkcm9wZG93bkNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGRyb3Bkb3duQ29udGV4dC5zaG93KSAmJiAnc2hvdycpLFxuICAgIC4uLnRvZ2dsZVByb3BzLFxuICAgIC4uLnByb3BzXG4gIH0pO1xufSk7XG5Ecm9wZG93blRvZ2dsZS5kaXNwbGF5TmFtZSA9ICdEcm9wZG93blRvZ2dsZSc7XG5leHBvcnQgZGVmYXVsdCBEcm9wZG93blRvZ2dsZTsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmFzZURyb3Bkb3duIGZyb20gJ0ByZXN0YXJ0L3VpL0Ryb3Bkb3duJztcbmltcG9ydCB7IHVzZVVuY29udHJvbGxlZCB9IGZyb20gJ3VuY29udHJvbGxhYmxlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IERyb3Bkb3duQ29udGV4dCBmcm9tICcuL0Ryb3Bkb3duQ29udGV4dCc7XG5pbXBvcnQgRHJvcGRvd25JdGVtIGZyb20gJy4vRHJvcGRvd25JdGVtJztcbmltcG9ydCBEcm9wZG93bk1lbnUsIHsgZ2V0RHJvcGRvd25NZW51UGxhY2VtZW50IH0gZnJvbSAnLi9Ecm9wZG93bk1lbnUnO1xuaW1wb3J0IERyb3Bkb3duVG9nZ2xlIGZyb20gJy4vRHJvcGRvd25Ub2dnbGUnO1xuaW1wb3J0IElucHV0R3JvdXBDb250ZXh0IGZyb20gJy4vSW5wdXRHcm91cENvbnRleHQnO1xuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4LCB1c2VJc1JUTCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgY3JlYXRlV2l0aEJzUHJlZml4IGZyb20gJy4vY3JlYXRlV2l0aEJzUHJlZml4JztcbmltcG9ydCB7IGFsaWduUHJvcFR5cGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBEcm9wZG93bkhlYWRlciA9IGNyZWF0ZVdpdGhCc1ByZWZpeCgnZHJvcGRvd24taGVhZGVyJywge1xuICBkZWZhdWx0UHJvcHM6IHtcbiAgICByb2xlOiAnaGVhZGluZydcbiAgfVxufSk7XG5jb25zdCBEcm9wZG93bkRpdmlkZXIgPSBjcmVhdGVXaXRoQnNQcmVmaXgoJ2Ryb3Bkb3duLWRpdmlkZXInLCB7XG4gIENvbXBvbmVudDogJ2hyJyxcbiAgZGVmYXVsdFByb3BzOiB7XG4gICAgcm9sZTogJ3NlcGFyYXRvcidcbiAgfVxufSk7XG5jb25zdCBEcm9wZG93bkl0ZW1UZXh0ID0gY3JlYXRlV2l0aEJzUHJlZml4KCdkcm9wZG93bi1pdGVtLXRleHQnLCB7XG4gIENvbXBvbmVudDogJ3NwYW4nXG59KTtcbmNvbnN0IERyb3Bkb3duID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHBQcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBic1ByZWZpeCxcbiAgICBkcm9wID0gJ2Rvd24nLFxuICAgIHNob3csXG4gICAgY2xhc3NOYW1lLFxuICAgIGFsaWduID0gJ3N0YXJ0JyxcbiAgICBvblNlbGVjdCxcbiAgICBvblRvZ2dsZSxcbiAgICBmb2N1c0ZpcnN0SXRlbU9uU2hvdyxcbiAgICAvLyBOZWVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBcImFzXCIgZHVyaW5nIHByb3AgZGVzdHJ1Y3R1cmluZyB0byBiZSBjb21wYXRpYmxlIHdpdGggc3R5bGVkLWNvbXBvbmVudHMgZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy8zNTk1XG4gICAgYXM6IENvbXBvbmVudCA9ICdkaXYnLFxuICAgIG5hdmJhcjogXzQsXG4gICAgYXV0b0Nsb3NlID0gdHJ1ZSxcbiAgICAuLi5wcm9wc1xuICB9ID0gdXNlVW5jb250cm9sbGVkKHBQcm9wcywge1xuICAgIHNob3c6ICdvblRvZ2dsZSdcbiAgfSk7XG4gIGNvbnN0IGlzSW5wdXRHcm91cCA9IHVzZUNvbnRleHQoSW5wdXRHcm91cENvbnRleHQpO1xuICBjb25zdCBwcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdkcm9wZG93bicpO1xuICBjb25zdCBpc1JUTCA9IHVzZUlzUlRMKCk7XG4gIGNvbnN0IGlzQ2xvc2luZ1Blcm1pdHRlZCA9IHNvdXJjZSA9PiB7XG4gICAgLy8gYXV0b0Nsb3NlPWZhbHNlIG9ubHkgcGVybWl0cyBjbG9zZSBvbiBidXR0b24gY2xpY2tcbiAgICBpZiAoYXV0b0Nsb3NlID09PSBmYWxzZSkgcmV0dXJuIHNvdXJjZSA9PT0gJ2NsaWNrJztcblxuICAgIC8vIGF1dG9DbG9zZT1pbnNpZGUgZG9lc24ndCBwZXJtaXQgY2xvc2Ugb24gcm9vdENsb3NlXG4gICAgaWYgKGF1dG9DbG9zZSA9PT0gJ2luc2lkZScpIHJldHVybiBzb3VyY2UgIT09ICdyb290Q2xvc2UnO1xuXG4gICAgLy8gYXV0b0Nsb3NlPW91dHNpZGUgZG9lc24ndCBwZXJtaXQgY2xvc2Ugb24gc2VsZWN0XG4gICAgaWYgKGF1dG9DbG9zZSA9PT0gJ291dHNpZGUnKSByZXR1cm4gc291cmNlICE9PSAnc2VsZWN0JztcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlVG9nZ2xlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFNob3csIG1ldGEpID0+IHtcbiAgICBpZiAobWV0YS5vcmlnaW5hbEV2ZW50LmN1cnJlbnRUYXJnZXQgPT09IGRvY3VtZW50ICYmIChtZXRhLnNvdXJjZSAhPT0gJ2tleWRvd24nIHx8IG1ldGEub3JpZ2luYWxFdmVudC5rZXkgPT09ICdFc2NhcGUnKSkgbWV0YS5zb3VyY2UgPSAncm9vdENsb3NlJztcbiAgICBpZiAoaXNDbG9zaW5nUGVybWl0dGVkKG1ldGEuc291cmNlKSkgb25Ub2dnbGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9uVG9nZ2xlKG5leHRTaG93LCBtZXRhKTtcbiAgfSk7XG4gIGNvbnN0IGFsaWduRW5kID0gYWxpZ24gPT09ICdlbmQnO1xuICBjb25zdCBwbGFjZW1lbnQgPSBnZXREcm9wZG93bk1lbnVQbGFjZW1lbnQoYWxpZ25FbmQsIGRyb3AsIGlzUlRMKTtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIGFsaWduLFxuICAgIGRyb3AsXG4gICAgaXNSVExcbiAgfSksIFthbGlnbiwgZHJvcCwgaXNSVExdKTtcbiAgY29uc3QgZGlyZWN0aW9uQ2xhc3NlcyA9IHtcbiAgICBkb3duOiBwcmVmaXgsXG4gICAgJ2Rvd24tY2VudGVyZWQnOiBgJHtwcmVmaXh9LWNlbnRlcmAsXG4gICAgdXA6ICdkcm9wdXAnLFxuICAgICd1cC1jZW50ZXJlZCc6ICdkcm9wdXAtY2VudGVyIGRyb3B1cCcsXG4gICAgZW5kOiAnZHJvcGVuZCcsXG4gICAgc3RhcnQ6ICdkcm9wc3RhcnQnXG4gIH07XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChEcm9wZG93bkNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogY29udGV4dFZhbHVlLFxuICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovX2pzeChCYXNlRHJvcGRvd24sIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgc2hvdzogc2hvdyxcbiAgICAgIG9uU2VsZWN0OiBvblNlbGVjdCxcbiAgICAgIG9uVG9nZ2xlOiBoYW5kbGVUb2dnbGUsXG4gICAgICBmb2N1c0ZpcnN0SXRlbU9uU2hvdzogZm9jdXNGaXJzdEl0ZW1PblNob3csXG4gICAgICBpdGVtU2VsZWN0b3I6IGAuJHtwcmVmaXh9LWl0ZW06bm90KC5kaXNhYmxlZCk6bm90KDpkaXNhYmxlZClgLFxuICAgICAgY2hpbGRyZW46IGlzSW5wdXRHcm91cCA/IHByb3BzLmNoaWxkcmVuIDogLyojX19QVVJFX18qL19qc3goQ29tcG9uZW50LCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICByZWY6IHJlZixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwgc2hvdyAmJiAnc2hvdycsIGRpcmVjdGlvbkNsYXNzZXNbZHJvcF0pXG4gICAgICB9KVxuICAgIH0pXG4gIH0pO1xufSk7XG5Ecm9wZG93bi5kaXNwbGF5TmFtZSA9ICdEcm9wZG93bic7XG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKERyb3Bkb3duLCB7XG4gIFRvZ2dsZTogRHJvcGRvd25Ub2dnbGUsXG4gIE1lbnU6IERyb3Bkb3duTWVudSxcbiAgSXRlbTogRHJvcGRvd25JdGVtLFxuICBJdGVtVGV4dDogRHJvcGRvd25JdGVtVGV4dCxcbiAgRGl2aWRlcjogRHJvcGRvd25EaXZpZGVyLFxuICBIZWFkZXI6IERyb3Bkb3duSGVhZGVyXG59KTsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBUYWJDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBUYWJDb250ZXh0OyIsImNvbnN0IF9leGNsdWRlZCA9IFtcImFzXCIsIFwiYWN0aXZlXCIsIFwiZXZlbnRLZXlcIl07XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0ge307IHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsgdmFyIGtleSwgaTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgTmF2Q29udGV4dCBmcm9tICcuL05hdkNvbnRleHQnO1xuaW1wb3J0IFNlbGVjdGFibGVDb250ZXh0LCB7IG1ha2VFdmVudEtleSB9IGZyb20gJy4vU2VsZWN0YWJsZUNvbnRleHQnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICcuL0J1dHRvbic7XG5pbXBvcnQgeyBkYXRhQXR0ciB9IGZyb20gJy4vRGF0YUtleSc7XG5pbXBvcnQgVGFiQ29udGV4dCBmcm9tICcuL1RhYkNvbnRleHQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmV4cG9ydCBmdW5jdGlvbiB1c2VOYXZJdGVtKHtcbiAga2V5LFxuICBvbkNsaWNrLFxuICBhY3RpdmUsXG4gIGlkLFxuICByb2xlLFxuICBkaXNhYmxlZFxufSkge1xuICBjb25zdCBwYXJlbnRPblNlbGVjdCA9IHVzZUNvbnRleHQoU2VsZWN0YWJsZUNvbnRleHQpO1xuICBjb25zdCBuYXZDb250ZXh0ID0gdXNlQ29udGV4dChOYXZDb250ZXh0KTtcbiAgY29uc3QgdGFiQ29udGV4dCA9IHVzZUNvbnRleHQoVGFiQ29udGV4dCk7XG4gIGxldCBpc0FjdGl2ZSA9IGFjdGl2ZTtcbiAgY29uc3QgcHJvcHMgPSB7XG4gICAgcm9sZVxuICB9O1xuICBpZiAobmF2Q29udGV4dCkge1xuICAgIGlmICghcm9sZSAmJiBuYXZDb250ZXh0LnJvbGUgPT09ICd0YWJsaXN0JykgcHJvcHMucm9sZSA9ICd0YWInO1xuICAgIGNvbnN0IGNvbnRleHRDb250cm9sbGVySWQgPSBuYXZDb250ZXh0LmdldENvbnRyb2xsZXJJZChrZXkgIT0gbnVsbCA/IGtleSA6IG51bGwpO1xuICAgIGNvbnN0IGNvbnRleHRDb250cm9sbGVkSWQgPSBuYXZDb250ZXh0LmdldENvbnRyb2xsZWRJZChrZXkgIT0gbnVsbCA/IGtleSA6IG51bGwpO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHByb3BzW2RhdGFBdHRyKCdldmVudC1rZXknKV0gPSBrZXk7XG4gICAgcHJvcHMuaWQgPSBjb250ZXh0Q29udHJvbGxlcklkIHx8IGlkO1xuICAgIGlzQWN0aXZlID0gYWN0aXZlID09IG51bGwgJiYga2V5ICE9IG51bGwgPyBuYXZDb250ZXh0LmFjdGl2ZUtleSA9PT0ga2V5IDogYWN0aXZlO1xuXG4gICAgLyoqXG4gICAgICogU2ltcGxpZmllZCBzY2VuYXJpbyBmb3IgYG1vdW50T25FbnRlcmAuXG4gICAgICpcbiAgICAgKiBXaGlsZSBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIGtlZXAgJ2FyaWEtY29udHJvbHMnIGZvciB0YWJzIHRoYXQgaGF2ZSBiZWVuIG1vdW50ZWQgYXQgbGVhc3RcbiAgICAgKiBvbmNlLCBpdCB3b3VsZCBhbHNvIGNvbXBsaWNhdGUgdGhlIGNvZGUgcXVpdGUgYSBiaXQsIGZvciB2ZXJ5IGxpdHRsZSBnYWluLlxuICAgICAqIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50YXRpb24gaXMgcHJvYmFibHkgZ29vZCBlbm91Z2guXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1yZXN0YXJ0L3VpL3B1bGwvNDAjaXNzdWVjb21tZW50LTEwMDk5NzE1NjFcbiAgICAgKi9cbiAgICBpZiAoaXNBY3RpdmUgfHwgISh0YWJDb250ZXh0ICE9IG51bGwgJiYgdGFiQ29udGV4dC51bm1vdW50T25FeGl0KSAmJiAhKHRhYkNvbnRleHQgIT0gbnVsbCAmJiB0YWJDb250ZXh0Lm1vdW50T25FbnRlcikpIHByb3BzWydhcmlhLWNvbnRyb2xzJ10gPSBjb250ZXh0Q29udHJvbGxlZElkO1xuICB9XG4gIGlmIChwcm9wcy5yb2xlID09PSAndGFiJykge1xuICAgIHByb3BzWydhcmlhLXNlbGVjdGVkJ10gPSBpc0FjdGl2ZTtcbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBwcm9wcy50YWJJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHByb3BzLnRhYkluZGV4ID0gLTE7XG4gICAgICBwcm9wc1snYXJpYS1kaXNhYmxlZCddID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJvcHMub25DbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soZSA9PiB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgb25DbGljayA9PSBudWxsID8gdm9pZCAwIDogb25DbGljayhlKTtcbiAgICBpZiAoa2V5ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBhcmVudE9uU2VsZWN0ICYmICFlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgIHBhcmVudE9uU2VsZWN0KGtleSwgZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIFtwcm9wcywge1xuICAgIGlzQWN0aXZlXG4gIH1dO1xufVxuY29uc3QgTmF2SXRlbSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKChfcmVmLCByZWYpID0+IHtcbiAgbGV0IHtcbiAgICAgIGFzOiBDb21wb25lbnQgPSBCdXR0b24sXG4gICAgICBhY3RpdmUsXG4gICAgICBldmVudEtleVxuICAgIH0gPSBfcmVmLFxuICAgIG9wdGlvbnMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBfZXhjbHVkZWQpO1xuICBjb25zdCBbcHJvcHMsIG1ldGFdID0gdXNlTmF2SXRlbShPYmplY3QuYXNzaWduKHtcbiAgICBrZXk6IG1ha2VFdmVudEtleShldmVudEtleSwgb3B0aW9ucy5ocmVmKSxcbiAgICBhY3RpdmVcbiAgfSwgb3B0aW9ucykpO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcHJvcHNbZGF0YUF0dHIoJ2FjdGl2ZScpXSA9IG1ldGEuaXNBY3RpdmU7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMsIHByb3BzLCB7XG4gICAgcmVmOiByZWZcbiAgfSkpO1xufSk7XG5OYXZJdGVtLmRpc3BsYXlOYW1lID0gJ05hdkl0ZW0nO1xuZXhwb3J0IGRlZmF1bHQgTmF2SXRlbTsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBBbmNob3IgZnJvbSAnQHJlc3RhcnQvdWkvQW5jaG9yJztcbmltcG9ydCB7IHVzZU5hdkl0ZW0gfSBmcm9tICdAcmVzdGFydC91aS9OYXZJdGVtJztcbmltcG9ydCB7IG1ha2VFdmVudEtleSB9IGZyb20gJ0ByZXN0YXJ0L3VpL1NlbGVjdGFibGVDb250ZXh0JztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgTmF2TGluayA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGJzUHJlZml4LFxuICBjbGFzc05hbWUsXG4gIGFzOiBDb21wb25lbnQgPSBBbmNob3IsXG4gIGFjdGl2ZSxcbiAgZXZlbnRLZXksXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgYnNQcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICduYXYtbGluaycpO1xuICBjb25zdCBbbmF2SXRlbVByb3BzLCBtZXRhXSA9IHVzZU5hdkl0ZW0oe1xuICAgIGtleTogbWFrZUV2ZW50S2V5KGV2ZW50S2V5LCBwcm9wcy5ocmVmKSxcbiAgICBhY3RpdmUsXG4gICAgZGlzYWJsZWQsXG4gICAgLi4ucHJvcHNcbiAgfSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIHtcbiAgICAuLi5wcm9wcyxcbiAgICAuLi5uYXZJdGVtUHJvcHMsXG4gICAgcmVmOiByZWYsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIGJzUHJlZml4LCBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLCBtZXRhLmlzQWN0aXZlICYmICdhY3RpdmUnKVxuICB9KTtcbn0pO1xuTmF2TGluay5kaXNwbGF5TmFtZSA9ICdOYXZMaW5rJztcbmV4cG9ydCBkZWZhdWx0IE5hdkxpbms7IiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VCb290c3RyYXBQcmVmaXggfSBmcm9tICcuL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gJy4vRHJvcGRvd24nO1xuaW1wb3J0IE5hdkxpbmsgZnJvbSAnLi9OYXZMaW5rJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBOYXZEcm9wZG93biA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGlkLFxuICB0aXRsZSxcbiAgY2hpbGRyZW4sXG4gIGJzUHJlZml4LFxuICBjbGFzc05hbWUsXG4gIHJvb3RDbG9zZUV2ZW50LFxuICBtZW51Um9sZSxcbiAgZGlzYWJsZWQsXG4gIGFjdGl2ZSxcbiAgcmVuZGVyTWVudU9uTW91bnQsXG4gIG1lbnVWYXJpYW50LFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIC8qIE5hdkl0ZW0gaGFzIG5vIGFkZGl0aW9uYWwgbG9naWMsIGl0J3MgcHVyZWx5IHByZXNlbnRhdGlvbmFsLiBDYW4gc2V0IG5hdiBpdGVtIGNsYXNzIGhlcmUgdG8gc3VwcG9ydCBcImFzXCIgKi9cbiAgY29uc3QgbmF2SXRlbVByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeCh1bmRlZmluZWQsICduYXYtaXRlbScpO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3hzKERyb3Bkb3duLCB7XG4gICAgcmVmOiByZWYsXG4gICAgLi4ucHJvcHMsXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwgbmF2SXRlbVByZWZpeCksXG4gICAgY2hpbGRyZW46IFsvKiNfX1BVUkVfXyovX2pzeChEcm9wZG93bi5Ub2dnbGUsIHtcbiAgICAgIGlkOiBpZCxcbiAgICAgIGV2ZW50S2V5OiBudWxsLFxuICAgICAgYWN0aXZlOiBhY3RpdmUsXG4gICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICBjaGlsZEJzUHJlZml4OiBic1ByZWZpeCxcbiAgICAgIGFzOiBOYXZMaW5rLFxuICAgICAgY2hpbGRyZW46IHRpdGxlXG4gICAgfSksIC8qI19fUFVSRV9fKi9fanN4KERyb3Bkb3duLk1lbnUsIHtcbiAgICAgIHJvbGU6IG1lbnVSb2xlLFxuICAgICAgcmVuZGVyT25Nb3VudDogcmVuZGVyTWVudU9uTW91bnQsXG4gICAgICByb290Q2xvc2VFdmVudDogcm9vdENsb3NlRXZlbnQsXG4gICAgICB2YXJpYW50OiBtZW51VmFyaWFudCxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pXVxuICB9KTtcbn0pO1xuTmF2RHJvcGRvd24uZGlzcGxheU5hbWUgPSAnTmF2RHJvcGRvd24nO1xuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmFzc2lnbihOYXZEcm9wZG93biwge1xuICBJdGVtOiBEcm9wZG93bi5JdGVtLFxuICBJdGVtVGV4dDogRHJvcGRvd24uSXRlbVRleHQsXG4gIERpdmlkZXI6IERyb3Bkb3duLkRpdmlkZXIsXG4gIEhlYWRlcjogRHJvcGRvd24uSGVhZGVyXG59KTsiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEluZm9TZXJ2aWNlIH0gZnJvbSBcIi4uL0luZm9TZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2dpbkZvcm0gfSBmcm9tIFwiLi9Mb2dpbkZvcm1cIjtcbmltcG9ydCB7IExvYWRpbmdJbmZvIH0gZnJvbSBcIi4vTG9hZGluZ0luZm9cIjtcbmltcG9ydCB7IE5hdkRyb3Bkb3duIH0gZnJvbSBcInJlYWN0LWJvb3RzdHJhcFwiO1xuXG5mdW5jdGlvbiBfVXNlckNvbXBvbmVudChzZXNzaW9uX2luZm8sIGxvZ291dF9jYWxsYmFjaykge1xuICBjb25zdCB0aXRsZSA9IChcbiAgICA8PlxuICAgICAge3Nlc3Npb25faW5mby51c2VybmFtZX0gPGkgY2xhc3NOYW1lPVwiYmkgYmktcGVyc29uLWZpbGxcIiAvPlxuICAgIDwvPlxuICApO1xuICByZXR1cm4gKFxuICAgIDxOYXZEcm9wZG93biBhbGlnbj1cImVuZFwiIHRpdGxlPXt0aXRsZX0+XG4gICAgICA8TmF2RHJvcGRvd24uSXRlbSBhcz1cImJ1dHRvblwiIG9uQ2xpY2s9e2xvZ291dF9jYWxsYmFja30gaHJlZj1cIiNcIj5cbiAgICAgICAgTG9nb3V0XG4gICAgICA8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgPC9OYXZEcm9wZG93bj5cbiAgKTtcbn1cblxuLyoqXG4gKiBAZnVuY3Rpb24gb25Mb2dvdXRDYWxsYmFja1xuICpcbiAqIFRvIGJlIHVzZWQgYXMgYSBjYWxsYmFjayBmdW5jdGlvbiBhZnRlciBhIHN1Y2Nlc3NmdWwgbG9nb3V0LlxuICpcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cblxuLyoqXG4gKiBAZnVuY3Rpb24gb25Mb2dpbkNhbGxiYWNrXG4gKlxuICogVG8gYmUgdXNlZCBhcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bCBsb2dpbi5cbiAqXG4gKiBAcGFyYW0ge0BpbmRpc2NhbGUvY2Fvc2RiLXdlYnVpLWluZm8tc2VydmljZS5TZXNzaW9uSW5mb30gc2Vzc2lvbkluZm8gYWJvdXRcbiAqICAgdGhlIGN1cnJlbnQgdXNlci5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cblxuLyoqXG4gKiBUaGUgVXNlckNvbXBvbmVudCBzaG93cyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgdXNlciBvciBhXG4gKiBMb2dpbkZvcm0uXG4gKlxuICogQHBhcmFtIHtvbkxvZ2luQ2FsbGJhY2t9IG9uTG9naW4gQ2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZVxuICogICBjYWxsZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGxvZ2luLiBXaGVuIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZVxuICogICBVc2VyQ29tcG9uZW50IHByb2NlZWRzIGFzIHVzdWFsIGFuZCByZS1yZW5kZXJzIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0ge29uTG9nb3V0Q2FsbGJhY2t9IG9uTG9nb3V0IENhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmVcbiAqICAgY2FsbGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBsb2dvdXQuIFdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlXG4gKiAgIFVzZXJDb21wb25lbnQgcHJvY2VlZHMgYXMgdXN1YWwgYW5kIHJlLXJlbmRlcnMgdGhlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFVzZXJDb21wb25lbnQob25Mb2dpbiwgb25Mb2dvdXQpIHtcbiAgY29uc3QgW2NvbXBvbmVudCwgc2V0Q29tcG9uZW50XSA9IHVzZVN0YXRlKG51bGwpO1xuXG4gIHZhciBzaG93X2NvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgaWYgKGNvbXBvbmVudCA9PT0gbnVsbCkge1xuICAgIHZhciBzaG93X2xvZ2luX2Zvcm07XG5cbiAgICBjb25zdCBsb2dvdXRfY2FsbGJhY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXRDb21wb25lbnQoPExvYWRpbmdJbmZvIHNpemU9XCJzbVwiIC8+KTtcbiAgICAgICAgY29uc3Qgc2VydmljZSA9IG5ldyBJbmZvU2VydmljZSgpO1xuICAgICAgICBhd2FpdCBzZXJ2aWNlLmxvZ291dCgpO1xuICAgICAgICBpZiAob25Mb2dvdXQoKSkge1xuICAgICAgICAgIHNob3dfbG9naW5fZm9ybShcIllvdSBoYXZlIGJlZW4gbG9nZ2VkIG91dC5cIiwgXCJzdWNjZXNzXCIpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNob3dfbG9naW5fZm9ybShcIkxvZ291dCBmYWlsZWQ6IFwiICsgZS5tZXNzYWdlLCBcImVycm9yXCIpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzaG93X3Nlc3Npb25faW5mbyA9IChzZXNzaW9uX2luZm8pID0+IHtcbiAgICAgIC8vIFRPRE8gaXNfYW5vbnltb3VzIG1lbWJlcj9cbiAgICAgIGlmIChzZXNzaW9uX2luZm8udXNlcm5hbWUgPT09IFwiYW5vbnltb3VzXCIpIHtcbiAgICAgICAgc2hvd19sb2dpbl9mb3JtKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDb21wb25lbnQoX1VzZXJDb21wb25lbnQoc2Vzc2lvbl9pbmZvLCBsb2dvdXRfY2FsbGJhY2spKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgbG9naW5fZmFpbCA9IChlcnJvcikgPT4ge1xuICAgICAgc2hvd19sb2dpbl9mb3JtKGVycm9yLm1lc3NhZ2UsIFwiZXJyb3JcIik7XG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ2luX3N1Y2Nlc3MgPSAoc2Vzc2lvbl9pbmZvKSA9PiB7XG4gICAgICBpZiAob25Mb2dpbihzZXNzaW9uX2luZm8pKSB7XG4gICAgICAgIHNob3dfc2Vzc2lvbl9pbmZvKHNlc3Npb25faW5mbyk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHNob3dfbG9naW5fZm9ybSA9IChtZXNzYWdlLCBtZXNzYWdlVHlwZSkgPT4ge1xuICAgICAgdmFyIGxvZ2luX2Zvcm0gPSAoXG4gICAgICAgIDxMb2dpbkZvcm1cbiAgICAgICAgICBtZXNzYWdlPXttZXNzYWdlfVxuICAgICAgICAgIG1lc3NhZ2VUeXBlPXttZXNzYWdlVHlwZX1cbiAgICAgICAgICB0aGVuPXtsb2dpbl9zdWNjZXNzfVxuICAgICAgICAgIG9uRXJyb3I9e2xvZ2luX2ZhaWx9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgICAgc2V0Q29tcG9uZW50KGxvZ2luX2Zvcm0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXJ2aWNlID0gbmV3IEluZm9TZXJ2aWNlKCk7XG4gICAgc2VydmljZVxuICAgICAgLmdldFNlc3Npb25JbmZvKClcbiAgICAgIC50aGVuKHNob3dfc2Vzc2lvbl9pbmZvKVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gc2hvd19sb2dpbl9mb3JtKGVycm9yLm1lc3NhZ2UsIFwiaW5mb1wiKSk7XG4gICAgc2hvd19jb21wb25lbnQgPSA8TG9hZGluZ0luZm8gc2l6ZT1cInNtXCIgLz47XG4gIH1cblxuICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJ1c2VyLWNvbXBvbmVudFwiPntzaG93X2NvbXBvbmVudH08L2Rpdj47XG59XG5cblVzZXJDb21wb25lbnQuZGVmYXVsdFByb3BzID0ge1xuICBvbkxvZ2luOiAoKSA9PiB0cnVlLFxuICBvbkxvZ291dDogKCkgPT4gdHJ1ZSxcbn07XG4iLCJjb25zdCBCcmFuZGluZyA9IHtcbiAgbmFtZTogXCJDYW9zREJcIixcbn07XG5cbmV4cG9ydCB7IEJyYW5kaW5nIH07XG4iLCJjb25zdCBfZXhjbHVkZWQgPSBbXCJhc1wiLCBcIm9uU2VsZWN0XCIsIFwiYWN0aXZlS2V5XCIsIFwicm9sZVwiLCBcIm9uS2V5RG93blwiXTtcbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cbmltcG9ydCBxc2EgZnJvbSAnZG9tLWhlbHBlcnMvcXVlcnlTZWxlY3RvckFsbCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VGb3JjZVVwZGF0ZSBmcm9tICdAcmVzdGFydC9ob29rcy91c2VGb3JjZVVwZGF0ZSc7XG5pbXBvcnQgdXNlTWVyZ2VkUmVmcyBmcm9tICdAcmVzdGFydC9ob29rcy91c2VNZXJnZWRSZWZzJztcbmltcG9ydCBOYXZDb250ZXh0IGZyb20gJy4vTmF2Q29udGV4dCc7XG5pbXBvcnQgU2VsZWN0YWJsZUNvbnRleHQsIHsgbWFrZUV2ZW50S2V5IH0gZnJvbSAnLi9TZWxlY3RhYmxlQ29udGV4dCc7XG5pbXBvcnQgVGFiQ29udGV4dCBmcm9tICcuL1RhYkNvbnRleHQnO1xuaW1wb3J0IHsgZGF0YUF0dHIsIGRhdGFQcm9wIH0gZnJvbSAnLi9EYXRhS2V5JztcbmltcG9ydCBOYXZJdGVtIGZyb20gJy4vTmF2SXRlbSc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuY29uc3QgRVZFTlRfS0VZX0FUVFIgPSBkYXRhQXR0cignZXZlbnQta2V5Jyk7XG5jb25zdCBOYXYgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigoX3JlZiwgcmVmKSA9PiB7XG4gIGxldCB7XG4gICAgICAvLyBOZWVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBcImFzXCIgZHVyaW5nIHByb3AgZGVzdHJ1Y3R1cmluZyB0byBiZSBjb21wYXRpYmxlIHdpdGggc3R5bGVkLWNvbXBvbmVudHMgZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy8zNTk1XG4gICAgICBhczogQ29tcG9uZW50ID0gJ2RpdicsXG4gICAgICBvblNlbGVjdCxcbiAgICAgIGFjdGl2ZUtleSxcbiAgICAgIHJvbGUsXG4gICAgICBvbktleURvd25cbiAgICB9ID0gX3JlZixcbiAgICBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKF9yZWYsIF9leGNsdWRlZCk7XG4gIC8vIEEgcmVmIGFuZCBmb3JjZVVwZGF0ZSBmb3IgcmVmb2N1cywgYi9jIHdlIG9ubHkgd2FudCB0byB0cmlnZ2VyIHdoZW4gbmVlZGVkXG4gIC8vIGFuZCBkb24ndCB3YW50IHRvIHJlc2V0IHRoZSBzZXQgaW4gdGhlIGVmZmVjdFxuICBjb25zdCBmb3JjZVVwZGF0ZSA9IHVzZUZvcmNlVXBkYXRlKCk7XG4gIGNvbnN0IG5lZWRzUmVmb2N1c1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IHBhcmVudE9uU2VsZWN0ID0gdXNlQ29udGV4dChTZWxlY3RhYmxlQ29udGV4dCk7XG4gIGNvbnN0IHRhYkNvbnRleHQgPSB1c2VDb250ZXh0KFRhYkNvbnRleHQpO1xuICBsZXQgZ2V0Q29udHJvbGxlZElkLCBnZXRDb250cm9sbGVySWQ7XG4gIGlmICh0YWJDb250ZXh0KSB7XG4gICAgcm9sZSA9IHJvbGUgfHwgJ3RhYmxpc3QnO1xuICAgIGFjdGl2ZUtleSA9IHRhYkNvbnRleHQuYWN0aXZlS2V5O1xuICAgIC8vIFRPRE86IGRvIHdlIG5lZWQgdG8gZHVwbGljYXRlIHRoZXNlP1xuICAgIGdldENvbnRyb2xsZWRJZCA9IHRhYkNvbnRleHQuZ2V0Q29udHJvbGxlZElkO1xuICAgIGdldENvbnRyb2xsZXJJZCA9IHRhYkNvbnRleHQuZ2V0Q29udHJvbGxlcklkO1xuICB9XG4gIGNvbnN0IGxpc3ROb2RlID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBnZXROZXh0QWN0aXZlVGFiID0gb2Zmc2V0ID0+IHtcbiAgICBjb25zdCBjdXJyZW50TGlzdE5vZGUgPSBsaXN0Tm9kZS5jdXJyZW50O1xuICAgIGlmICghY3VycmVudExpc3ROb2RlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBpdGVtcyA9IHFzYShjdXJyZW50TGlzdE5vZGUsIGBbJHtFVkVOVF9LRVlfQVRUUn1dOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSlgKTtcbiAgICBjb25zdCBhY3RpdmVDaGlsZCA9IGN1cnJlbnRMaXN0Tm9kZS5xdWVyeVNlbGVjdG9yKCdbYXJpYS1zZWxlY3RlZD10cnVlXScpO1xuICAgIGlmICghYWN0aXZlQ2hpbGQgfHwgYWN0aXZlQ2hpbGQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGluZGV4ID0gaXRlbXMuaW5kZXhPZihhY3RpdmVDaGlsZCk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIG51bGw7XG4gICAgbGV0IG5leHRJbmRleCA9IGluZGV4ICsgb2Zmc2V0O1xuICAgIGlmIChuZXh0SW5kZXggPj0gaXRlbXMubGVuZ3RoKSBuZXh0SW5kZXggPSAwO1xuICAgIGlmIChuZXh0SW5kZXggPCAwKSBuZXh0SW5kZXggPSBpdGVtcy5sZW5ndGggLSAxO1xuICAgIHJldHVybiBpdGVtc1tuZXh0SW5kZXhdO1xuICB9O1xuICBjb25zdCBoYW5kbGVTZWxlY3QgPSAoa2V5LCBldmVudCkgPT4ge1xuICAgIGlmIChrZXkgPT0gbnVsbCkgcmV0dXJuO1xuICAgIG9uU2VsZWN0ID09IG51bGwgPyB2b2lkIDAgOiBvblNlbGVjdChrZXksIGV2ZW50KTtcbiAgICBwYXJlbnRPblNlbGVjdCA9PSBudWxsID8gdm9pZCAwIDogcGFyZW50T25TZWxlY3Qoa2V5LCBldmVudCk7XG4gIH07XG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSBldmVudCA9PiB7XG4gICAgb25LZXlEb3duID09IG51bGwgPyB2b2lkIDAgOiBvbktleURvd24oZXZlbnQpO1xuICAgIGlmICghdGFiQ29udGV4dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgbmV4dEFjdGl2ZUNoaWxkO1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIG5leHRBY3RpdmVDaGlsZCA9IGdldE5leHRBY3RpdmVUYWIoLTEpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgbmV4dEFjdGl2ZUNoaWxkID0gZ2V0TmV4dEFjdGl2ZVRhYigxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghbmV4dEFjdGl2ZUNoaWxkKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBoYW5kbGVTZWxlY3QobmV4dEFjdGl2ZUNoaWxkLmRhdGFzZXRbZGF0YVByb3AoJ0V2ZW50S2V5JyldIHx8IG51bGwsIGV2ZW50KTtcbiAgICBuZWVkc1JlZm9jdXNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgZm9yY2VVcGRhdGUoKTtcbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGlzdE5vZGUuY3VycmVudCAmJiBuZWVkc1JlZm9jdXNSZWYuY3VycmVudCkge1xuICAgICAgY29uc3QgYWN0aXZlQ2hpbGQgPSBsaXN0Tm9kZS5jdXJyZW50LnF1ZXJ5U2VsZWN0b3IoYFske0VWRU5UX0tFWV9BVFRSfV1bYXJpYS1zZWxlY3RlZD10cnVlXWApO1xuICAgICAgYWN0aXZlQ2hpbGQgPT0gbnVsbCA/IHZvaWQgMCA6IGFjdGl2ZUNoaWxkLmZvY3VzKCk7XG4gICAgfVxuICAgIG5lZWRzUmVmb2N1c1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gIH0pO1xuICBjb25zdCBtZXJnZWRSZWYgPSB1c2VNZXJnZWRSZWZzKHJlZiwgbGlzdE5vZGUpO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goU2VsZWN0YWJsZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogaGFuZGxlU2VsZWN0LFxuICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovX2pzeChOYXZDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICByb2xlLFxuICAgICAgICAvLyB1c2VkIGJ5IE5hdkxpbmsgdG8gZGV0ZXJtaW5lIGl0J3Mgcm9sZVxuICAgICAgICBhY3RpdmVLZXk6IG1ha2VFdmVudEtleShhY3RpdmVLZXkpLFxuICAgICAgICBnZXRDb250cm9sbGVkSWQ6IGdldENvbnRyb2xsZWRJZCB8fCBub29wLFxuICAgICAgICBnZXRDb250cm9sbGVySWQ6IGdldENvbnRyb2xsZXJJZCB8fCBub29wXG4gICAgICB9LFxuICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi9fanN4KENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLFxuICAgICAgICByZWY6IG1lcmdlZFJlZixcbiAgICAgICAgcm9sZTogcm9sZVxuICAgICAgfSkpXG4gICAgfSlcbiAgfSk7XG59KTtcbk5hdi5kaXNwbGF5TmFtZSA9ICdOYXYnO1xuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmFzc2lnbihOYXYsIHtcbiAgSXRlbTogTmF2SXRlbVxufSk7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuY29uc3QgY29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuY29udGV4dC5kaXNwbGF5TmFtZSA9ICdDYXJkSGVhZGVyQ29udGV4dCc7XG5leHBvcnQgZGVmYXVsdCBjb250ZXh0OyIsImltcG9ydCBjcmVhdGVXaXRoQnNQcmVmaXggZnJvbSAnLi9jcmVhdGVXaXRoQnNQcmVmaXgnO1xuZXhwb3J0IGRlZmF1bHQgY3JlYXRlV2l0aEJzUHJlZml4KCduYXYtaXRlbScpOyIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IGFsbCBmcm9tICdwcm9wLXR5cGVzLWV4dHJhL2xpYi9hbGwnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVVuY29udHJvbGxlZCB9IGZyb20gJ3VuY29udHJvbGxhYmxlJztcbmltcG9ydCBCYXNlTmF2IGZyb20gJ0ByZXN0YXJ0L3VpL05hdic7XG5pbXBvcnQgeyB1c2VCb290c3RyYXBQcmVmaXggfSBmcm9tICcuL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IE5hdmJhckNvbnRleHQgZnJvbSAnLi9OYXZiYXJDb250ZXh0JztcbmltcG9ydCBDYXJkSGVhZGVyQ29udGV4dCBmcm9tICcuL0NhcmRIZWFkZXJDb250ZXh0JztcbmltcG9ydCBOYXZJdGVtIGZyb20gJy4vTmF2SXRlbSc7XG5pbXBvcnQgTmF2TGluayBmcm9tICcuL05hdkxpbmsnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IE5hdiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh1bmNvbnRyb2xsZWRQcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhcyA9ICdkaXYnLFxuICAgIGJzUHJlZml4OiBpbml0aWFsQnNQcmVmaXgsXG4gICAgdmFyaWFudCxcbiAgICBmaWxsID0gZmFsc2UsXG4gICAganVzdGlmeSA9IGZhbHNlLFxuICAgIG5hdmJhcixcbiAgICBuYXZiYXJTY3JvbGwsXG4gICAgY2xhc3NOYW1lLFxuICAgIGFjdGl2ZUtleSxcbiAgICAuLi5wcm9wc1xuICB9ID0gdXNlVW5jb250cm9sbGVkKHVuY29udHJvbGxlZFByb3BzLCB7XG4gICAgYWN0aXZlS2V5OiAnb25TZWxlY3QnXG4gIH0pO1xuICBjb25zdCBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChpbml0aWFsQnNQcmVmaXgsICduYXYnKTtcbiAgbGV0IG5hdmJhckJzUHJlZml4O1xuICBsZXQgY2FyZEhlYWRlckJzUHJlZml4O1xuICBsZXQgaXNOYXZiYXIgPSBmYWxzZTtcbiAgY29uc3QgbmF2YmFyQ29udGV4dCA9IHVzZUNvbnRleHQoTmF2YmFyQ29udGV4dCk7XG4gIGNvbnN0IGNhcmRIZWFkZXJDb250ZXh0ID0gdXNlQ29udGV4dChDYXJkSGVhZGVyQ29udGV4dCk7XG4gIGlmIChuYXZiYXJDb250ZXh0KSB7XG4gICAgbmF2YmFyQnNQcmVmaXggPSBuYXZiYXJDb250ZXh0LmJzUHJlZml4O1xuICAgIGlzTmF2YmFyID0gbmF2YmFyID09IG51bGwgPyB0cnVlIDogbmF2YmFyO1xuICB9IGVsc2UgaWYgKGNhcmRIZWFkZXJDb250ZXh0KSB7XG4gICAgKHtcbiAgICAgIGNhcmRIZWFkZXJCc1ByZWZpeFxuICAgIH0gPSBjYXJkSGVhZGVyQ29udGV4dCk7XG4gIH1cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KEJhc2VOYXYsIHtcbiAgICBhczogYXMsXG4gICAgcmVmOiByZWYsXG4gICAgYWN0aXZlS2V5OiBhY3RpdmVLZXksXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwge1xuICAgICAgW2JzUHJlZml4XTogIWlzTmF2YmFyLFxuICAgICAgW2Ake25hdmJhckJzUHJlZml4fS1uYXZgXTogaXNOYXZiYXIsXG4gICAgICBbYCR7bmF2YmFyQnNQcmVmaXh9LW5hdi1zY3JvbGxgXTogaXNOYXZiYXIgJiYgbmF2YmFyU2Nyb2xsLFxuICAgICAgW2Ake2NhcmRIZWFkZXJCc1ByZWZpeH0tJHt2YXJpYW50fWBdOiAhIWNhcmRIZWFkZXJCc1ByZWZpeCxcbiAgICAgIFtgJHtic1ByZWZpeH0tJHt2YXJpYW50fWBdOiAhIXZhcmlhbnQsXG4gICAgICBbYCR7YnNQcmVmaXh9LWZpbGxgXTogZmlsbCxcbiAgICAgIFtgJHtic1ByZWZpeH0tanVzdGlmaWVkYF06IGp1c3RpZnlcbiAgICB9KSxcbiAgICAuLi5wcm9wc1xuICB9KTtcbn0pO1xuTmF2LmRpc3BsYXlOYW1lID0gJ05hdic7XG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKE5hdiwge1xuICBJdGVtOiBOYXZJdGVtLFxuICBMaW5rOiBOYXZMaW5rXG59KTsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgTmF2YmFyQnJhbmQgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigoe1xuICBic1ByZWZpeCxcbiAgY2xhc3NOYW1lLFxuICBhcyxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChic1ByZWZpeCwgJ25hdmJhci1icmFuZCcpO1xuICBjb25zdCBDb21wb25lbnQgPSBhcyB8fCAocHJvcHMuaHJlZiA/ICdhJyA6ICdzcGFuJyk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIHtcbiAgICAuLi5wcm9wcyxcbiAgICByZWY6IHJlZixcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBic1ByZWZpeClcbiAgfSk7XG59KTtcbk5hdmJhckJyYW5kLmRpc3BsYXlOYW1lID0gJ05hdmJhckJyYW5kJztcbmV4cG9ydCBkZWZhdWx0IE5hdmJhckJyYW5kOyIsIi8qKlxuICogU2FmZSBjaGFpbmVkIGZ1bmN0aW9uXG4gKlxuICogV2lsbCBvbmx5IGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBpZiBuZWVkZWQsXG4gKiBvdGhlcndpc2Ugd2lsbCBwYXNzIGJhY2sgZXhpc3RpbmcgZnVuY3Rpb25zIG9yIG51bGwuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuY3Rpb25zIHRvIGNoYWluXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb258bnVsbH1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uKC4uLmZ1bmNzKSB7XG4gIHJldHVybiBmdW5jcy5maWx0ZXIoZiA9PiBmICE9IG51bGwpLnJlZHVjZSgoYWNjLCBmKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBmICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQXJndW1lbnQgVHlwZSwgbXVzdCBvbmx5IHByb3ZpZGUgZnVuY3Rpb25zLCB1bmRlZmluZWQsIG9yIG51bGwuJyk7XG4gICAgfVxuICAgIGlmIChhY2MgPT09IG51bGwpIHJldHVybiBmO1xuICAgIHJldHVybiBmdW5jdGlvbiBjaGFpbmVkRnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgYWNjLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICB9LCBudWxsKTtcbn1cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUNoYWluZWRGdW5jdGlvbjsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBjc3MgZnJvbSAnZG9tLWhlbHBlcnMvY3NzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRU5URVJFRCwgRU5URVJJTkcsIEVYSVRFRCwgRVhJVElORyB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbic7XG5pbXBvcnQgdHJhbnNpdGlvbkVuZExpc3RlbmVyIGZyb20gJy4vdHJhbnNpdGlvbkVuZExpc3RlbmVyJztcbmltcG9ydCBjcmVhdGVDaGFpbmVkRnVuY3Rpb24gZnJvbSAnLi9jcmVhdGVDaGFpbmVkRnVuY3Rpb24nO1xuaW1wb3J0IHRyaWdnZXJCcm93c2VyUmVmbG93IGZyb20gJy4vdHJpZ2dlckJyb3dzZXJSZWZsb3cnO1xuaW1wb3J0IFRyYW5zaXRpb25XcmFwcGVyIGZyb20gJy4vVHJhbnNpdGlvbldyYXBwZXInO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IE1BUkdJTlMgPSB7XG4gIGhlaWdodDogWydtYXJnaW5Ub3AnLCAnbWFyZ2luQm90dG9tJ10sXG4gIHdpZHRoOiBbJ21hcmdpbkxlZnQnLCAnbWFyZ2luUmlnaHQnXVxufTtcbmZ1bmN0aW9uIGdldERlZmF1bHREaW1lbnNpb25WYWx1ZShkaW1lbnNpb24sIGVsZW0pIHtcbiAgY29uc3Qgb2Zmc2V0ID0gYG9mZnNldCR7ZGltZW5zaW9uWzBdLnRvVXBwZXJDYXNlKCl9JHtkaW1lbnNpb24uc2xpY2UoMSl9YDtcbiAgY29uc3QgdmFsdWUgPSBlbGVtW29mZnNldF07XG4gIGNvbnN0IG1hcmdpbnMgPSBNQVJHSU5TW2RpbWVuc2lvbl07XG4gIHJldHVybiB2YWx1ZSArXG4gIC8vIEB0cy1pZ25vcmVcbiAgcGFyc2VJbnQoY3NzKGVsZW0sIG1hcmdpbnNbMF0pLCAxMCkgK1xuICAvLyBAdHMtaWdub3JlXG4gIHBhcnNlSW50KGNzcyhlbGVtLCBtYXJnaW5zWzFdKSwgMTApO1xufVxuY29uc3QgY29sbGFwc2VTdHlsZXMgPSB7XG4gIFtFWElURURdOiAnY29sbGFwc2UnLFxuICBbRVhJVElOR106ICdjb2xsYXBzaW5nJyxcbiAgW0VOVEVSSU5HXTogJ2NvbGxhcHNpbmcnLFxuICBbRU5URVJFRF06ICdjb2xsYXBzZSBzaG93J1xufTtcbmNvbnN0IENvbGxhcHNlID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHtcbiAgb25FbnRlcixcbiAgb25FbnRlcmluZyxcbiAgb25FbnRlcmVkLFxuICBvbkV4aXQsXG4gIG9uRXhpdGluZyxcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbiAgZGltZW5zaW9uID0gJ2hlaWdodCcsXG4gIGluOiBpblByb3AgPSBmYWxzZSxcbiAgdGltZW91dCA9IDMwMCxcbiAgbW91bnRPbkVudGVyID0gZmFsc2UsXG4gIHVubW91bnRPbkV4aXQgPSBmYWxzZSxcbiAgYXBwZWFyID0gZmFsc2UsXG4gIGdldERpbWVuc2lvblZhbHVlID0gZ2V0RGVmYXVsdERpbWVuc2lvblZhbHVlLFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIC8qIENvbXB1dGUgZGltZW5zaW9uICovXG4gIGNvbnN0IGNvbXB1dGVkRGltZW5zaW9uID0gdHlwZW9mIGRpbWVuc2lvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRpbWVuc2lvbigpIDogZGltZW5zaW9uO1xuXG4gIC8qIC0tIEV4cGFuZGluZyAtLSAqL1xuICBjb25zdCBoYW5kbGVFbnRlciA9IHVzZU1lbW8oKCkgPT4gY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uKGVsZW0gPT4ge1xuICAgIGVsZW0uc3R5bGVbY29tcHV0ZWREaW1lbnNpb25dID0gJzAnO1xuICB9LCBvbkVudGVyKSwgW2NvbXB1dGVkRGltZW5zaW9uLCBvbkVudGVyXSk7XG4gIGNvbnN0IGhhbmRsZUVudGVyaW5nID0gdXNlTWVtbygoKSA9PiBjcmVhdGVDaGFpbmVkRnVuY3Rpb24oZWxlbSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsID0gYHNjcm9sbCR7Y29tcHV0ZWREaW1lbnNpb25bMF0udG9VcHBlckNhc2UoKX0ke2NvbXB1dGVkRGltZW5zaW9uLnNsaWNlKDEpfWA7XG4gICAgZWxlbS5zdHlsZVtjb21wdXRlZERpbWVuc2lvbl0gPSBgJHtlbGVtW3Njcm9sbF19cHhgO1xuICB9LCBvbkVudGVyaW5nKSwgW2NvbXB1dGVkRGltZW5zaW9uLCBvbkVudGVyaW5nXSk7XG4gIGNvbnN0IGhhbmRsZUVudGVyZWQgPSB1c2VNZW1vKCgpID0+IGNyZWF0ZUNoYWluZWRGdW5jdGlvbihlbGVtID0+IHtcbiAgICBlbGVtLnN0eWxlW2NvbXB1dGVkRGltZW5zaW9uXSA9IG51bGw7XG4gIH0sIG9uRW50ZXJlZCksIFtjb21wdXRlZERpbWVuc2lvbiwgb25FbnRlcmVkXSk7XG5cbiAgLyogLS0gQ29sbGFwc2luZyAtLSAqL1xuICBjb25zdCBoYW5kbGVFeGl0ID0gdXNlTWVtbygoKSA9PiBjcmVhdGVDaGFpbmVkRnVuY3Rpb24oZWxlbSA9PiB7XG4gICAgZWxlbS5zdHlsZVtjb21wdXRlZERpbWVuc2lvbl0gPSBgJHtnZXREaW1lbnNpb25WYWx1ZShjb21wdXRlZERpbWVuc2lvbiwgZWxlbSl9cHhgO1xuICAgIHRyaWdnZXJCcm93c2VyUmVmbG93KGVsZW0pO1xuICB9LCBvbkV4aXQpLCBbb25FeGl0LCBnZXREaW1lbnNpb25WYWx1ZSwgY29tcHV0ZWREaW1lbnNpb25dKTtcbiAgY29uc3QgaGFuZGxlRXhpdGluZyA9IHVzZU1lbW8oKCkgPT4gY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uKGVsZW0gPT4ge1xuICAgIGVsZW0uc3R5bGVbY29tcHV0ZWREaW1lbnNpb25dID0gbnVsbDtcbiAgfSwgb25FeGl0aW5nKSwgW2NvbXB1dGVkRGltZW5zaW9uLCBvbkV4aXRpbmddKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KFRyYW5zaXRpb25XcmFwcGVyLCB7XG4gICAgcmVmOiByZWYsXG4gICAgYWRkRW5kTGlzdGVuZXI6IHRyYW5zaXRpb25FbmRMaXN0ZW5lcixcbiAgICAuLi5wcm9wcyxcbiAgICBcImFyaWEtZXhwYW5kZWRcIjogcHJvcHMucm9sZSA/IGluUHJvcCA6IG51bGwsXG4gICAgb25FbnRlcjogaGFuZGxlRW50ZXIsXG4gICAgb25FbnRlcmluZzogaGFuZGxlRW50ZXJpbmcsXG4gICAgb25FbnRlcmVkOiBoYW5kbGVFbnRlcmVkLFxuICAgIG9uRXhpdDogaGFuZGxlRXhpdCxcbiAgICBvbkV4aXRpbmc6IGhhbmRsZUV4aXRpbmcsXG4gICAgY2hpbGRSZWY6IGNoaWxkcmVuLnJlZixcbiAgICBpbjogaW5Qcm9wLFxuICAgIHRpbWVvdXQ6IHRpbWVvdXQsXG4gICAgbW91bnRPbkVudGVyOiBtb3VudE9uRW50ZXIsXG4gICAgdW5tb3VudE9uRXhpdDogdW5tb3VudE9uRXhpdCxcbiAgICBhcHBlYXI6IGFwcGVhcixcbiAgICBjaGlsZHJlbjogKHN0YXRlLCBpbm5lclByb3BzKSA9PiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7XG4gICAgICAuLi5pbm5lclByb3BzLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwgY2hpbGRyZW4ucHJvcHMuY2xhc3NOYW1lLCBjb2xsYXBzZVN0eWxlc1tzdGF0ZV0sIGNvbXB1dGVkRGltZW5zaW9uID09PSAnd2lkdGgnICYmICdjb2xsYXBzZS1ob3Jpem9udGFsJylcbiAgICB9KVxuICB9KTtcbn0pO1xuXG4vLyBAdHMtaWdub3JlXG5cbmV4cG9ydCBkZWZhdWx0IENvbGxhcHNlOyIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29sbGFwc2UgZnJvbSAnLi9Db2xsYXBzZSc7XG5pbXBvcnQgeyB1c2VCb290c3RyYXBQcmVmaXggfSBmcm9tICcuL1RoZW1lUHJvdmlkZXInO1xuaW1wb3J0IE5hdmJhckNvbnRleHQgZnJvbSAnLi9OYXZiYXJDb250ZXh0JztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBOYXZiYXJDb2xsYXBzZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGNoaWxkcmVuLFxuICBic1ByZWZpeCxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChic1ByZWZpeCwgJ25hdmJhci1jb2xsYXBzZScpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChOYXZiYXJDb250ZXh0KTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KENvbGxhcHNlLCB7XG4gICAgaW46ICEhKGNvbnRleHQgJiYgY29udGV4dC5leHBhbmRlZCksXG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi9fanN4KFwiZGl2XCIsIHtcbiAgICAgIHJlZjogcmVmLFxuICAgICAgY2xhc3NOYW1lOiBic1ByZWZpeCxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH0pXG4gIH0pO1xufSk7XG5OYXZiYXJDb2xsYXBzZS5kaXNwbGF5TmFtZSA9ICdOYXZiYXJDb2xsYXBzZSc7XG5leHBvcnQgZGVmYXVsdCBOYXZiYXJDb2xsYXBzZTsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAcmVzdGFydC9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgTmF2YmFyQ29udGV4dCBmcm9tICcuL05hdmJhckNvbnRleHQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IE5hdmJhclRvZ2dsZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGJzUHJlZml4LFxuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICBsYWJlbCA9ICdUb2dnbGUgbmF2aWdhdGlvbicsXG4gIC8vIE5lZWQgdG8gZGVmaW5lIHRoZSBkZWZhdWx0IFwiYXNcIiBkdXJpbmcgcHJvcCBkZXN0cnVjdHVyaW5nIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBzdHlsZWQtY29tcG9uZW50cyBnaXRodWIuY29tL3JlYWN0LWJvb3RzdHJhcC9yZWFjdC1ib290c3RyYXAvaXNzdWVzLzM1OTVcbiAgYXM6IENvbXBvbmVudCA9ICdidXR0b24nLFxuICBvbkNsaWNrLFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIGJzUHJlZml4ID0gdXNlQm9vdHN0cmFwUHJlZml4KGJzUHJlZml4LCAnbmF2YmFyLXRvZ2dsZXInKTtcbiAgY29uc3Qge1xuICAgIG9uVG9nZ2xlLFxuICAgIGV4cGFuZGVkXG4gIH0gPSB1c2VDb250ZXh0KE5hdmJhckNvbnRleHQpIHx8IHt9O1xuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soZSA9PiB7XG4gICAgaWYgKG9uQ2xpY2spIG9uQ2xpY2soZSk7XG4gICAgaWYgKG9uVG9nZ2xlKSBvblRvZ2dsZSgpO1xuICB9KTtcbiAgaWYgKENvbXBvbmVudCA9PT0gJ2J1dHRvbicpIHtcbiAgICBwcm9wcy50eXBlID0gJ2J1dHRvbic7XG4gIH1cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KENvbXBvbmVudCwge1xuICAgIC4uLnByb3BzLFxuICAgIHJlZjogcmVmLFxuICAgIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLFxuICAgIFwiYXJpYS1sYWJlbFwiOiBsYWJlbCxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBic1ByZWZpeCwgIWV4cGFuZGVkICYmICdjb2xsYXBzZWQnKSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgLyojX19QVVJFX18qL19qc3goXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogYCR7YnNQcmVmaXh9LWljb25gXG4gICAgfSlcbiAgfSk7XG59KTtcbk5hdmJhclRvZ2dsZS5kaXNwbGF5TmFtZSA9ICdOYXZiYXJUb2dnbGUnO1xuZXhwb3J0IGRlZmF1bHQgTmF2YmFyVG9nZ2xlOyIsImltcG9ydCB1c2VFZmZlY3QgZnJvbSAnLi91c2VJc29tb3JwaGljRWZmZWN0JztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xudmFyIG1hdGNoZXJzQnlXaW5kb3cgPSBuZXcgV2Vha01hcCgpO1xuXG52YXIgZ2V0TWF0Y2hlciA9IGZ1bmN0aW9uIGdldE1hdGNoZXIocXVlcnksIHRhcmdldFdpbmRvdykge1xuICBpZiAoIXF1ZXJ5IHx8ICF0YXJnZXRXaW5kb3cpIHJldHVybiB1bmRlZmluZWQ7XG4gIHZhciBtYXRjaGVycyA9IG1hdGNoZXJzQnlXaW5kb3cuZ2V0KHRhcmdldFdpbmRvdykgfHwgbmV3IE1hcCgpO1xuICBtYXRjaGVyc0J5V2luZG93LnNldCh0YXJnZXRXaW5kb3csIG1hdGNoZXJzKTtcbiAgdmFyIG1xbCA9IG1hdGNoZXJzLmdldChxdWVyeSk7XG5cbiAgaWYgKCFtcWwpIHtcbiAgICBtcWwgPSB0YXJnZXRXaW5kb3cubWF0Y2hNZWRpYShxdWVyeSk7XG4gICAgbXFsLnJlZkNvdW50ID0gMDtcbiAgICBtYXRjaGVycy5zZXQobXFsLm1lZGlhLCBtcWwpO1xuICB9XG5cbiAgcmV0dXJuIG1xbDtcbn07XG4vKipcbiAqIE1hdGNoIGEgbWVkaWEgcXVlcnkgYW5kIGdldCB1cGRhdGVzIGFzIHRoZSBtYXRjaCBjaGFuZ2VzLiBUaGUgbWVkaWEgc3RyaW5nIGlzXG4gKiBwYXNzZWQgZGlyZWN0bHkgdG8gYHdpbmRvdy5tYXRjaE1lZGlhYCBhbmQgcnVuIGFzIGEgTGF5b3V0IEVmZmVjdCwgc28gaW5pdGlhbFxuICogbWF0Y2hlcyBhcmUgcmV0dXJuZWQgYmVmb3JlIHRoZSBicm93c2VyIGhhcyBhIGNoYW5jZSB0byBwYWludC5cbiAqXG4gKiBgYGB0c3hcbiAqIGZ1bmN0aW9uIFBhZ2UoKSB7XG4gKiAgIGNvbnN0IGlzV2lkZSA9IHVzZU1lZGlhUXVlcnkoJ21pbi13aWR0aDogMTAwMHB4JylcbiAqXG4gKiAgIHJldHVybiBpc1dpZGUgPyBcInZlcnkgd2lkZVwiIDogJ25vdCBzbyB3aWRlJ1xuICogfVxuICogYGBgXG4gKlxuICogTWVkaWEgcXVlcnkgbGlzdHMgYXJlIGFsc28gcmV1c2VkIGdsb2JhbGx5LCBob29rIGNhbGxzIGZvciB0aGUgc2FtZSBxdWVyeVxuICogd2lsbCBvbmx5IGNyZWF0ZSBhIG1hdGNoZXIgb25jZSB1bmRlciB0aGUgaG9vZC5cbiAqXG4gKiBAcGFyYW0gcXVlcnkgQSBtZWRpYSBxdWVyeVxuICogQHBhcmFtIHRhcmdldFdpbmRvdyBUaGUgd2luZG93IHRvIG1hdGNoIGFnYWluc3QsIHVzZXMgdGhlIGdsb2JhbGx5IGF2YWlsYWJsZSBvbmUgYXMgYSBkZWZhdWx0LlxuICovXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTWVkaWFRdWVyeShxdWVyeSwgdGFyZ2V0V2luZG93KSB7XG4gIGlmICh0YXJnZXRXaW5kb3cgPT09IHZvaWQgMCkge1xuICAgIHRhcmdldFdpbmRvdyA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogd2luZG93O1xuICB9XG5cbiAgdmFyIG1xbCA9IGdldE1hdGNoZXIocXVlcnksIHRhcmdldFdpbmRvdyk7XG5cbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbXFsID8gbXFsLm1hdGNoZXMgOiBmYWxzZTtcbiAgfSksXG4gICAgICBtYXRjaGVzID0gX3VzZVN0YXRlWzBdLFxuICAgICAgc2V0TWF0Y2hlcyA9IF91c2VTdGF0ZVsxXTtcblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBtcWwgPSBnZXRNYXRjaGVyKHF1ZXJ5LCB0YXJnZXRXaW5kb3cpO1xuXG4gICAgaWYgKCFtcWwpIHtcbiAgICAgIHJldHVybiBzZXRNYXRjaGVzKGZhbHNlKTtcbiAgICB9XG5cbiAgICB2YXIgbWF0Y2hlcnMgPSBtYXRjaGVyc0J5V2luZG93LmdldCh0YXJnZXRXaW5kb3cpO1xuXG4gICAgdmFyIGhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZSgpIHtcbiAgICAgIHNldE1hdGNoZXMobXFsLm1hdGNoZXMpO1xuICAgIH07XG5cbiAgICBtcWwucmVmQ291bnQrKztcbiAgICBtcWwuYWRkTGlzdGVuZXIoaGFuZGxlQ2hhbmdlKTtcbiAgICBoYW5kbGVDaGFuZ2UoKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgbXFsLnJlbW92ZUxpc3RlbmVyKGhhbmRsZUNoYW5nZSk7XG4gICAgICBtcWwucmVmQ291bnQtLTtcblxuICAgICAgaWYgKG1xbC5yZWZDb3VudCA8PSAwKSB7XG4gICAgICAgIG1hdGNoZXJzID09IG51bGwgPyB2b2lkIDAgOiBtYXRjaGVycy5kZWxldGUobXFsLm1lZGlhKTtcbiAgICAgIH1cblxuICAgICAgbXFsID0gdW5kZWZpbmVkO1xuICAgIH07XG4gIH0sIFtxdWVyeV0pO1xuICByZXR1cm4gbWF0Y2hlcztcbn0iLCJpbXBvcnQgdXNlTWVkaWFRdWVyeSBmcm9tICcuL3VzZU1lZGlhUXVlcnknO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcblxuLyoqXG4gKiBDcmVhdGUgYSByZXNwb25zaXZlIGhvb2sgd2UgYSBzZXQgb2YgYnJlYWtwb2ludCBuYW1lcyBhbmQgd2lkdGhzLlxuICogWW91IGNhbiB1c2UgYW55IHZhbGlkIGNzcyB1bml0cyBhcyB3ZWxsIGFzIGEgbnVtYmVycyAoZm9yIHBpeGVscykuXG4gKlxuICogKipOT1RFOioqIFRoZSBvYmplY3Qga2V5IG9yZGVyIGlzIGltcG9ydGFudCEgaXQncyBhc3N1bWVkIHRvIGJlIGluIG9yZGVyIGZyb20gc21hbGxlc3QgdG8gbGFyZ2VzdFxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCB1c2VCcmVha3BvaW50ID0gY3JlYXRlQnJlYWtwb2ludEhvb2soe1xuICogIHhzOiAwLFxuICogIHNtOiA1NzYsXG4gKiAgbWQ6IDc2OCxcbiAqICBsZzogOTkyLFxuICogIHhsOiAxMjAwLFxuICogfSlcbiAqIGBgYFxuICpcbiAqICoqV2F0Y2ggb3V0ISoqIHVzaW5nIHN0cmluZyB2YWx1ZXMgd2lsbCBzb21ldGltZXMgY29uc3RydWN0IG1lZGlhIHF1ZXJpZXMgdXNpbmcgY3NzIGBjYWxjKClgIHdoaWNoXG4gKiBpcyBOT1Qgc3VwcG9ydGVkIGluIG1lZGlhIHF1ZXJpZXMgYnkgYWxsIGJyb3dzZXJzIGF0IHRoZSBtb21lbnQuIHVzZSBudW1iZXJzIGZvclxuICogdGhlIHdpZGVzdCByYW5nZSBvZiBicm93c2VyIHN1cHBvcnQuXG4gKlxuICogQHBhcmFtIGJyZWFrcG9pbnRWYWx1ZXMgQSBvYmplY3QgaGFzaCBvZiBuYW1lcyB0byBicmVha3BvaW50IGRpbWVuc2lvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJyZWFrcG9pbnRIb29rKGJyZWFrcG9pbnRWYWx1ZXMpIHtcbiAgdmFyIG5hbWVzID0gT2JqZWN0LmtleXMoYnJlYWtwb2ludFZhbHVlcyk7XG5cbiAgZnVuY3Rpb24gYW5kKHF1ZXJ5LCBuZXh0KSB7XG4gICAgaWYgKHF1ZXJ5ID09PSBuZXh0KSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnkgPyBxdWVyeSArIFwiIGFuZCBcIiArIG5leHQgOiBuZXh0O1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmV4dChicmVha3BvaW50KSB7XG4gICAgcmV0dXJuIG5hbWVzW01hdGgubWluKG5hbWVzLmluZGV4T2YoYnJlYWtwb2ludCkgKyAxLCBuYW1lcy5sZW5ndGggLSAxKV07XG4gIH1cblxuICBmdW5jdGlvbiBnZXRNYXhRdWVyeShicmVha3BvaW50KSB7XG4gICAgdmFyIG5leHQgPSBnZXROZXh0KGJyZWFrcG9pbnQpO1xuICAgIHZhciB2YWx1ZSA9IGJyZWFrcG9pbnRWYWx1ZXNbbmV4dF07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHZhbHVlID0gdmFsdWUgLSAwLjIgKyBcInB4XCI7ZWxzZSB2YWx1ZSA9IFwiY2FsYyhcIiArIHZhbHVlICsgXCIgLSAwLjJweClcIjtcbiAgICByZXR1cm4gXCIobWF4LXdpZHRoOiBcIiArIHZhbHVlICsgXCIpXCI7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRNaW5RdWVyeShicmVha3BvaW50KSB7XG4gICAgdmFyIHZhbHVlID0gYnJlYWtwb2ludFZhbHVlc1ticmVha3BvaW50XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlICsgXCJweFwiO1xuICAgIH1cblxuICAgIHJldHVybiBcIihtaW4td2lkdGg6IFwiICsgdmFsdWUgKyBcIilcIjtcbiAgfVxuICAvKipcbiAgICogTWF0Y2ggYSBzZXQgb2YgYnJlYWtwb2ludHNcbiAgICpcbiAgICogYGBgdHN4XG4gICAqIGNvbnN0IE1pZFNpemVPbmx5ID0gKCkgPT4ge1xuICAgKiAgIGNvbnN0IGlzTWlkID0gdXNlQnJlYWtwb2ludCh7IGxnOiAnZG93bicsIHNtOiAndXAnIH0pO1xuICAgKlxuICAgKiAgIGlmIChpc01pZCkgcmV0dXJuIDxkaXY+T24gYSBSZWFzb25hYmxlIHNpemVkIFNjcmVlbiE8L2Rpdj5cbiAgICogICByZXR1cm4gbnVsbDtcbiAgICogfVxuICAgKiBgYGBcbiAgICogQHBhcmFtIGJyZWFrcG9pbnRNYXAgQW4gb2JqZWN0IG1hcCBvZiBicmVha3BvaW50cyBhbmQgZGlyZWN0aW9ucywgcXVlcmllcyBhcmUgY29uc3RydWN0ZWQgdXNpbmcgXCJhbmRcIiB0byBqb2luXG4gICAqIGJyZWFrcG9pbnRzIHRvZ2V0aGVyXG4gICAqIEBwYXJhbSB3aW5kb3cgT3B0aW9uYWxseSBzcGVjaWZ5IHRoZSB0YXJnZXQgd2luZG93IHRvIG1hdGNoIGFnYWluc3QgKHVzZWZ1bCB3aGVuIHJlbmRlcmluZyBpbnRvIGlmcmFtZXMpXG4gICAqL1xuXG5cbiAgZnVuY3Rpb24gdXNlQnJlYWtwb2ludChicmVha3BvaW50T3JNYXAsIGRpcmVjdGlvbiwgd2luZG93KSB7XG4gICAgdmFyIGJyZWFrcG9pbnRNYXA7XG5cbiAgICBpZiAodHlwZW9mIGJyZWFrcG9pbnRPck1hcCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGJyZWFrcG9pbnRNYXAgPSBicmVha3BvaW50T3JNYXA7XG4gICAgICB3aW5kb3cgPSBkaXJlY3Rpb247XG4gICAgICBkaXJlY3Rpb24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2JyZWFrcG9pbnRNYXA7XG5cbiAgICAgIGRpcmVjdGlvbiA9IGRpcmVjdGlvbiB8fCB0cnVlO1xuICAgICAgYnJlYWtwb2ludE1hcCA9IChfYnJlYWtwb2ludE1hcCA9IHt9LCBfYnJlYWtwb2ludE1hcFticmVha3BvaW50T3JNYXBdID0gZGlyZWN0aW9uLCBfYnJlYWtwb2ludE1hcCk7XG4gICAgfVxuXG4gICAgdmFyIHF1ZXJ5ID0gdXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnJlYWtwb2ludE1hcCkucmVkdWNlKGZ1bmN0aW9uIChxdWVyeSwgX3JlZikge1xuICAgICAgICB2YXIga2V5ID0gX3JlZlswXSxcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IF9yZWZbMV07XG5cbiAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3VwJyB8fCBkaXJlY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgICBxdWVyeSA9IGFuZChxdWVyeSwgZ2V0TWluUXVlcnkoa2V5KSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAnZG93bicgfHwgZGlyZWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgICAgcXVlcnkgPSBhbmQocXVlcnksIGdldE1heFF1ZXJ5KGtleSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgICAgfSwgJycpO1xuICAgIH0sIFtKU09OLnN0cmluZ2lmeShicmVha3BvaW50TWFwKV0pO1xuICAgIHJldHVybiB1c2VNZWRpYVF1ZXJ5KHF1ZXJ5LCB3aW5kb3cpO1xuICB9XG5cbiAgcmV0dXJuIHVzZUJyZWFrcG9pbnQ7XG59XG52YXIgdXNlQnJlYWtwb2ludCA9IGNyZWF0ZUJyZWFrcG9pbnRIb29rKHtcbiAgeHM6IDAsXG4gIHNtOiA1NzYsXG4gIG1kOiA3NjgsXG4gIGxnOiA5OTIsXG4gIHhsOiAxMjAwLFxuICB4eGw6IDE0MDBcbn0pO1xuZXhwb3J0IGRlZmF1bHQgdXNlQnJlYWtwb2ludDsiLCJpbXBvcnQgb3duZXJEb2N1bWVudCBmcm9tICcuL293bmVyRG9jdW1lbnQnO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBhY3RpdmVseSBmb2N1c2VkIGVsZW1lbnQgc2FmZWx5LlxuICpcbiAqIEBwYXJhbSBkb2MgdGhlIGRvY3VtZW50IHRvIGNoZWNrXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWN0aXZlRWxlbWVudChkb2MpIHtcbiAgaWYgKGRvYyA9PT0gdm9pZCAwKSB7XG4gICAgZG9jID0gb3duZXJEb2N1bWVudCgpO1xuICB9XG5cbiAgLy8gU3VwcG9ydDogSUUgOSBvbmx5XG4gIC8vIElFOSB0aHJvd3MgYW4gXCJVbnNwZWNpZmllZCBlcnJvclwiIGFjY2Vzc2luZyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGZyb20gYW4gPGlmcmFtZT5cbiAgdHJ5IHtcbiAgICB2YXIgYWN0aXZlID0gZG9jLmFjdGl2ZUVsZW1lbnQ7IC8vIElFMTEgcmV0dXJucyBhIHNlZW1pbmdseSBlbXB0eSBvYmplY3QgaW4gc29tZSBjYXNlcyB3aGVuIGFjY2Vzc2luZ1xuICAgIC8vIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgZnJvbSBhbiA8aWZyYW1lPlxuXG4gICAgaWYgKCFhY3RpdmUgfHwgIWFjdGl2ZS5ub2RlTmFtZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGFjdGl2ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8qIGllIHRocm93cyBpZiBubyBhY3RpdmUgZWxlbWVudCAqL1xuICAgIHJldHVybiBkb2MuYm9keTtcbiAgfVxufSIsImltcG9ydCBjc3MgZnJvbSAnZG9tLWhlbHBlcnMvY3NzJztcbmltcG9ydCB7IGRhdGFBdHRyIH0gZnJvbSAnLi9EYXRhS2V5JztcbmltcG9ydCBnZXRCb2R5U2Nyb2xsYmFyV2lkdGggZnJvbSAnLi9nZXRTY3JvbGxiYXJXaWR0aCc7XG5leHBvcnQgY29uc3QgT1BFTl9EQVRBX0FUVFJJQlVURSA9IGRhdGFBdHRyKCdtb2RhbC1vcGVuJyk7XG5cbi8qKlxuICogTWFuYWdlcyBhIHN0YWNrIG9mIE1vZGFscyBhcyB3ZWxsIGFzIGVuc3VyaW5nXG4gKiBib2R5IHNjcm9sbGluZyBpcyBpcyBkaXNhYmxlZCBhbmQgcGFkZGluZyBhY2NvdW50ZWQgZm9yXG4gKi9cbmNsYXNzIE1vZGFsTWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKHtcbiAgICBvd25lckRvY3VtZW50LFxuICAgIGhhbmRsZUNvbnRhaW5lck92ZXJmbG93ID0gdHJ1ZSxcbiAgICBpc1JUTCA9IGZhbHNlXG4gIH0gPSB7fSkge1xuICAgIHRoaXMuaGFuZGxlQ29udGFpbmVyT3ZlcmZsb3cgPSBoYW5kbGVDb250YWluZXJPdmVyZmxvdztcbiAgICB0aGlzLmlzUlRMID0gaXNSVEw7XG4gICAgdGhpcy5tb2RhbHMgPSBbXTtcbiAgICB0aGlzLm93bmVyRG9jdW1lbnQgPSBvd25lckRvY3VtZW50O1xuICB9XG4gIGdldFNjcm9sbGJhcldpZHRoKCkge1xuICAgIHJldHVybiBnZXRCb2R5U2Nyb2xsYmFyV2lkdGgodGhpcy5vd25lckRvY3VtZW50KTtcbiAgfVxuICBnZXRFbGVtZW50KCkge1xuICAgIHJldHVybiAodGhpcy5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50KS5ib2R5O1xuICB9XG4gIHNldE1vZGFsQXR0cmlidXRlcyhfbW9kYWwpIHtcbiAgICAvLyBGb3Igb3ZlcnJpZGluZ1xuICB9XG4gIHJlbW92ZU1vZGFsQXR0cmlidXRlcyhfbW9kYWwpIHtcbiAgICAvLyBGb3Igb3ZlcnJpZGluZ1xuICB9XG4gIHNldENvbnRhaW5lclN0eWxlKGNvbnRhaW5lclN0YXRlKSB7XG4gICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICB9O1xuXG4gICAgLy8gd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgYWN0dWFsIGBzdHlsZWAgaGVyZVxuICAgIC8vIGJlY2F1c2Ugd2Ugd2lsbCBvdmVycmlkZSBpdFxuICAgIGNvbnN0IHBhZGRpbmdQcm9wID0gdGhpcy5pc1JUTCA/ICdwYWRkaW5nTGVmdCcgOiAncGFkZGluZ1JpZ2h0JztcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldEVsZW1lbnQoKTtcbiAgICBjb250YWluZXJTdGF0ZS5zdHlsZSA9IHtcbiAgICAgIG92ZXJmbG93OiBjb250YWluZXIuc3R5bGUub3ZlcmZsb3csXG4gICAgICBbcGFkZGluZ1Byb3BdOiBjb250YWluZXIuc3R5bGVbcGFkZGluZ1Byb3BdXG4gICAgfTtcbiAgICBpZiAoY29udGFpbmVyU3RhdGUuc2Nyb2xsQmFyV2lkdGgpIHtcbiAgICAgIC8vIHVzZSBjb21wdXRlZCBzdHlsZSwgaGVyZSB0byBnZXQgdGhlIHJlYWwgcGFkZGluZ1xuICAgICAgLy8gdG8gYWRkIG91ciBzY3JvbGxiYXIgd2lkdGhcbiAgICAgIHN0eWxlW3BhZGRpbmdQcm9wXSA9IGAke3BhcnNlSW50KGNzcyhjb250YWluZXIsIHBhZGRpbmdQcm9wKSB8fCAnMCcsIDEwKSArIGNvbnRhaW5lclN0YXRlLnNjcm9sbEJhcldpZHRofXB4YDtcbiAgICB9XG4gICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZShPUEVOX0RBVEFfQVRUUklCVVRFLCAnJyk7XG4gICAgY3NzKGNvbnRhaW5lciwgc3R5bGUpO1xuICB9XG4gIHJlc2V0KCkge1xuICAgIFsuLi50aGlzLm1vZGFsc10uZm9yRWFjaChtID0+IHRoaXMucmVtb3ZlKG0pKTtcbiAgfVxuICByZW1vdmVDb250YWluZXJTdHlsZShjb250YWluZXJTdGF0ZSkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0RWxlbWVudCgpO1xuICAgIGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoT1BFTl9EQVRBX0FUVFJJQlVURSk7XG4gICAgT2JqZWN0LmFzc2lnbihjb250YWluZXIuc3R5bGUsIGNvbnRhaW5lclN0YXRlLnN0eWxlKTtcbiAgfVxuICBhZGQobW9kYWwpIHtcbiAgICBsZXQgbW9kYWxJZHggPSB0aGlzLm1vZGFscy5pbmRleE9mKG1vZGFsKTtcbiAgICBpZiAobW9kYWxJZHggIT09IC0xKSB7XG4gICAgICByZXR1cm4gbW9kYWxJZHg7XG4gICAgfVxuICAgIG1vZGFsSWR4ID0gdGhpcy5tb2RhbHMubGVuZ3RoO1xuICAgIHRoaXMubW9kYWxzLnB1c2gobW9kYWwpO1xuICAgIHRoaXMuc2V0TW9kYWxBdHRyaWJ1dGVzKG1vZGFsKTtcbiAgICBpZiAobW9kYWxJZHggIT09IDApIHtcbiAgICAgIHJldHVybiBtb2RhbElkeDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNjcm9sbEJhcldpZHRoOiB0aGlzLmdldFNjcm9sbGJhcldpZHRoKCksXG4gICAgICBzdHlsZToge31cbiAgICB9O1xuICAgIGlmICh0aGlzLmhhbmRsZUNvbnRhaW5lck92ZXJmbG93KSB7XG4gICAgICB0aGlzLnNldENvbnRhaW5lclN0eWxlKHRoaXMuc3RhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kYWxJZHg7XG4gIH1cbiAgcmVtb3ZlKG1vZGFsKSB7XG4gICAgY29uc3QgbW9kYWxJZHggPSB0aGlzLm1vZGFscy5pbmRleE9mKG1vZGFsKTtcbiAgICBpZiAobW9kYWxJZHggPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubW9kYWxzLnNwbGljZShtb2RhbElkeCwgMSk7XG5cbiAgICAvLyBpZiB0aGF0IHdhcyB0aGUgbGFzdCBtb2RhbCBpbiBhIGNvbnRhaW5lcixcbiAgICAvLyBjbGVhbiB1cCB0aGUgY29udGFpbmVyXG4gICAgaWYgKCF0aGlzLm1vZGFscy5sZW5ndGggJiYgdGhpcy5oYW5kbGVDb250YWluZXJPdmVyZmxvdykge1xuICAgICAgdGhpcy5yZW1vdmVDb250YWluZXJTdHlsZSh0aGlzLnN0YXRlKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVNb2RhbEF0dHJpYnV0ZXMobW9kYWwpO1xuICB9XG4gIGlzVG9wTW9kYWwobW9kYWwpIHtcbiAgICByZXR1cm4gISF0aGlzLm1vZGFscy5sZW5ndGggJiYgdGhpcy5tb2RhbHNbdGhpcy5tb2RhbHMubGVuZ3RoIC0gMV0gPT09IG1vZGFsO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCBNb2RhbE1hbmFnZXI7IiwiLyoqXG4gKiBHZXQgdGhlIHdpZHRoIG9mIHRoZSB2ZXJ0aWNhbCB3aW5kb3cgc2Nyb2xsYmFyIGlmIGl0J3MgdmlzaWJsZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCb2R5U2Nyb2xsYmFyV2lkdGgob3duZXJEb2N1bWVudCA9IGRvY3VtZW50KSB7XG4gIGNvbnN0IHdpbmRvdyA9IG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gIHJldHVybiBNYXRoLmFicyh3aW5kb3cuaW5uZXJXaWR0aCAtIG93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTtcbn0iLCJpbXBvcnQgb3duZXJEb2N1bWVudCBmcm9tICdkb20taGVscGVycy9vd25lckRvY3VtZW50JztcbmltcG9ydCBjYW5Vc2VET00gZnJvbSAnZG9tLWhlbHBlcnMvY2FuVXNlRE9NJztcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlV2luZG93IGZyb20gJy4vdXNlV2luZG93JztcbmV4cG9ydCBjb25zdCByZXNvbHZlQ29udGFpbmVyUmVmID0gKHJlZiwgZG9jdW1lbnQpID0+IHtcbiAgaWYgKCFjYW5Vc2VET00pIHJldHVybiBudWxsO1xuICBpZiAocmVmID09IG51bGwpIHJldHVybiAoZG9jdW1lbnQgfHwgb3duZXJEb2N1bWVudCgpKS5ib2R5O1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykgcmVmID0gcmVmKCk7XG4gIGlmIChyZWYgJiYgJ2N1cnJlbnQnIGluIHJlZikgcmVmID0gcmVmLmN1cnJlbnQ7XG4gIGlmIChyZWYgJiYgKCdub2RlVHlwZScgaW4gcmVmIHx8IHJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QpKSByZXR1cm4gcmVmO1xuICByZXR1cm4gbnVsbDtcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VXYWl0Rm9yRE9NUmVmKHJlZiwgb25SZXNvbHZlZCkge1xuICBjb25zdCB3aW5kb3cgPSB1c2VXaW5kb3coKTtcbiAgY29uc3QgW3Jlc29sdmVkUmVmLCBzZXRSZWZdID0gdXNlU3RhdGUoKCkgPT4gcmVzb2x2ZUNvbnRhaW5lclJlZihyZWYsIHdpbmRvdyA9PSBudWxsID8gdm9pZCAwIDogd2luZG93LmRvY3VtZW50KSk7XG4gIGlmICghcmVzb2x2ZWRSZWYpIHtcbiAgICBjb25zdCBlYXJseVJlZiA9IHJlc29sdmVDb250YWluZXJSZWYocmVmKTtcbiAgICBpZiAoZWFybHlSZWYpIHNldFJlZihlYXJseVJlZik7XG4gIH1cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob25SZXNvbHZlZCAmJiByZXNvbHZlZFJlZikge1xuICAgICAgb25SZXNvbHZlZChyZXNvbHZlZFJlZik7XG4gICAgfVxuICB9LCBbb25SZXNvbHZlZCwgcmVzb2x2ZWRSZWZdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBuZXh0UmVmID0gcmVzb2x2ZUNvbnRhaW5lclJlZihyZWYpO1xuICAgIGlmIChuZXh0UmVmICE9PSByZXNvbHZlZFJlZikge1xuICAgICAgc2V0UmVmKG5leHRSZWYpO1xuICAgIH1cbiAgfSwgW3JlZiwgcmVzb2x2ZWRSZWZdKTtcbiAgcmV0dXJuIHJlc29sdmVkUmVmO1xufSIsImltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZU1lcmdlZFJlZnMgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlTWVyZ2VkUmVmcyc7XG5pbXBvcnQgeyBjbG9uZUVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuZnVuY3Rpb24gTm9vcFRyYW5zaXRpb24oe1xuICBjaGlsZHJlbixcbiAgaW46IGluUHJvcCxcbiAgb25FeGl0ZWQsXG4gIG1vdW50T25FbnRlcixcbiAgdW5tb3VudE9uRXhpdFxufSkge1xuICBjb25zdCByZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGhhc0VudGVyZWRSZWYgPSB1c2VSZWYoaW5Qcm9wKTtcbiAgY29uc3QgaGFuZGxlRXhpdGVkID0gdXNlRXZlbnRDYWxsYmFjayhvbkV4aXRlZCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGluUHJvcCkgaGFzRW50ZXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtlbHNlIHtcbiAgICAgIGhhbmRsZUV4aXRlZChyZWYuY3VycmVudCk7XG4gICAgfVxuICB9LCBbaW5Qcm9wLCBoYW5kbGVFeGl0ZWRdKTtcbiAgY29uc3QgY29tYmluZWRSZWYgPSB1c2VNZXJnZWRSZWZzKHJlZiwgY2hpbGRyZW4ucmVmKTtcbiAgY29uc3QgY2hpbGQgPSAvKiNfX1BVUkVfXyovY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7XG4gICAgcmVmOiBjb21iaW5lZFJlZlxuICB9KTtcbiAgaWYgKGluUHJvcCkgcmV0dXJuIGNoaWxkO1xuICBpZiAodW5tb3VudE9uRXhpdCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmICghaGFzRW50ZXJlZFJlZi5jdXJyZW50ICYmIG1vdW50T25FbnRlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjaGlsZDtcbn1cbmV4cG9ydCBkZWZhdWx0IE5vb3BUcmFuc2l0aW9uOyIsImltcG9ydCB1c2VNZXJnZWRSZWZzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZU1lcmdlZFJlZnMnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0VmZmVjdCBmcm9tICdAcmVzdGFydC9ob29rcy91c2VJc29tb3JwaGljRWZmZWN0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VSZWYsIGNsb25lRWxlbWVudCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTm9vcFRyYW5zaXRpb24gZnJvbSAnLi9Ob29wVHJhbnNpdGlvbic7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRyYW5zaXRpb24oe1xuICBpbjogaW5Qcm9wLFxuICBvblRyYW5zaXRpb25cbn0pIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBpc0luaXRpYWxSZWYgPSB1c2VSZWYodHJ1ZSk7XG4gIGNvbnN0IGhhbmRsZVRyYW5zaXRpb24gPSB1c2VFdmVudENhbGxiYWNrKG9uVHJhbnNpdGlvbik7XG4gIHVzZUlzb21vcnBoaWNFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCBzdGFsZSA9IGZhbHNlO1xuICAgIGhhbmRsZVRyYW5zaXRpb24oe1xuICAgICAgaW46IGluUHJvcCxcbiAgICAgIGVsZW1lbnQ6IHJlZi5jdXJyZW50LFxuICAgICAgaW5pdGlhbDogaXNJbml0aWFsUmVmLmN1cnJlbnQsXG4gICAgICBpc1N0YWxlOiAoKSA9PiBzdGFsZVxuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdGFsZSA9IHRydWU7XG4gICAgfTtcbiAgfSwgW2luUHJvcCwgaGFuZGxlVHJhbnNpdGlvbl0pO1xuICB1c2VJc29tb3JwaGljRWZmZWN0KCgpID0+IHtcbiAgICBpc0luaXRpYWxSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIC8vIHRoaXMgaXMgZm9yIHN0cmljdCBtb2RlXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzSW5pdGlhbFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHJldHVybiByZWY7XG59XG4vKipcbiAqIEFkYXB0cyBhbiBpbXBlcmF0aXZlIHRyYW5zaXRpb24gZnVuY3Rpb24gdG8gYSBzdWJzZXQgb2YgdGhlIFJURyBgPFRyYW5zaXRpb24+YCBjb21wb25lbnQgQVBJLlxuICpcbiAqIEltcGVyYXRpdmVUcmFuc2l0aW9uIGRvZXMgbm90IHN1cHBvcnQgbW91bnRpbmcgb3B0aW9ucyBvciBgYXBwZWFyYCBhdCB0aGUgbW9tZW50LCBtZWFuaW5nXG4gKiB0aGF0IGl0IGFsd2F5cyBhY3RzIGxpa2U6IGBtb3VudE9uRW50ZXI9e3RydWV9IHVubW91bnRPbkV4aXQ9e3RydWV9IGFwcGVhcj17dHJ1ZX1gXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEltcGVyYXRpdmVUcmFuc2l0aW9uKHtcbiAgY2hpbGRyZW4sXG4gIGluOiBpblByb3AsXG4gIG9uRXhpdGVkLFxuICBvbkVudGVyZWQsXG4gIHRyYW5zaXRpb25cbn0pIHtcbiAgY29uc3QgW2V4aXRlZCwgc2V0RXhpdGVkXSA9IHVzZVN0YXRlKCFpblByb3ApO1xuXG4gIC8vIFRPRE86IEkgdGhpbmsgdGhpcyBuZWVkcyB0byBiZSBpbiBhbiBlZmZlY3RcbiAgaWYgKGluUHJvcCAmJiBleGl0ZWQpIHtcbiAgICBzZXRFeGl0ZWQoZmFsc2UpO1xuICB9XG4gIGNvbnN0IHJlZiA9IHVzZVRyYW5zaXRpb24oe1xuICAgIGluOiAhIWluUHJvcCxcbiAgICBvblRyYW5zaXRpb246IG9wdGlvbnMgPT4ge1xuICAgICAgY29uc3Qgb25GaW5pc2ggPSAoKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zLmlzU3RhbGUoKSkgcmV0dXJuO1xuICAgICAgICBpZiAob3B0aW9ucy5pbikge1xuICAgICAgICAgIG9uRW50ZXJlZCA9PSBudWxsID8gdm9pZCAwIDogb25FbnRlcmVkKG9wdGlvbnMuZWxlbWVudCwgb3B0aW9ucy5pbml0aWFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRFeGl0ZWQodHJ1ZSk7XG4gICAgICAgICAgb25FeGl0ZWQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uRXhpdGVkKG9wdGlvbnMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBQcm9taXNlLnJlc29sdmUodHJhbnNpdGlvbihvcHRpb25zKSkudGhlbihvbkZpbmlzaCwgZXJyb3IgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuaW4pIHNldEV4aXRlZCh0cnVlKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBjb21iaW5lZFJlZiA9IHVzZU1lcmdlZFJlZnMocmVmLCBjaGlsZHJlbi5yZWYpO1xuICByZXR1cm4gZXhpdGVkICYmICFpblByb3AgPyBudWxsIDogLyojX19QVVJFX18qL2Nsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgIHJlZjogY29tYmluZWRSZWZcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVHJhbnNpdGlvbihDb21wb25lbnQsIHJ1blRyYW5zaXRpb24sIHByb3BzKSB7XG4gIGlmIChDb21wb25lbnQpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL19qc3goQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuICB9XG4gIGlmIChydW5UcmFuc2l0aW9uKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KEltcGVyYXRpdmVUcmFuc2l0aW9uLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgdHJhbnNpdGlvbjogcnVuVHJhbnNpdGlvblxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goTm9vcFRyYW5zaXRpb24sIE9iamVjdC5hc3NpZ24oe30sIHByb3BzKSk7XG59IiwiY29uc3QgX2V4Y2x1ZGVkID0gW1wic2hvd1wiLCBcInJvbGVcIiwgXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcImNoaWxkcmVuXCIsIFwiYmFja2Ryb3BcIiwgXCJrZXlib2FyZFwiLCBcIm9uQmFja2Ryb3BDbGlja1wiLCBcIm9uRXNjYXBlS2V5RG93blwiLCBcInRyYW5zaXRpb25cIiwgXCJydW5UcmFuc2l0aW9uXCIsIFwiYmFja2Ryb3BUcmFuc2l0aW9uXCIsIFwicnVuQmFja2Ryb3BUcmFuc2l0aW9uXCIsIFwiYXV0b0ZvY3VzXCIsIFwiZW5mb3JjZUZvY3VzXCIsIFwicmVzdG9yZUZvY3VzXCIsIFwicmVzdG9yZUZvY3VzT3B0aW9uc1wiLCBcInJlbmRlckRpYWxvZ1wiLCBcInJlbmRlckJhY2tkcm9wXCIsIFwibWFuYWdlclwiLCBcImNvbnRhaW5lclwiLCBcIm9uU2hvd1wiLCBcIm9uSGlkZVwiLCBcIm9uRXhpdFwiLCBcIm9uRXhpdGVkXCIsIFwib25FeGl0aW5nXCIsIFwib25FbnRlclwiLCBcIm9uRW50ZXJpbmdcIiwgXCJvbkVudGVyZWRcIl07XG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7IGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9OyB2YXIgdGFyZ2V0ID0ge307IHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTsgdmFyIGtleSwgaTsgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHsga2V5ID0gc291cmNlS2V5c1tpXTsgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSByZXR1cm4gdGFyZ2V0OyB9XG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUsIHJlYWN0L3Byb3AtdHlwZXMgKi9cblxuaW1wb3J0IGFjdGl2ZUVsZW1lbnQgZnJvbSAnZG9tLWhlbHBlcnMvYWN0aXZlRWxlbWVudCc7XG5pbXBvcnQgY29udGFpbnMgZnJvbSAnZG9tLWhlbHBlcnMvY29udGFpbnMnO1xuaW1wb3J0IGNhblVzZURPTSBmcm9tICdkb20taGVscGVycy9jYW5Vc2VET00nO1xuaW1wb3J0IGxpc3RlbiBmcm9tICdkb20taGVscGVycy9saXN0ZW4nO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUltcGVyYXRpdmVIYW5kbGUsIGZvcndhcmRSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHVzZU1vdW50ZWQgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlTW91bnRlZCc7XG5pbXBvcnQgdXNlV2lsbFVubW91bnQgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlV2lsbFVubW91bnQnO1xuaW1wb3J0IHVzZVByZXZpb3VzIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZVByZXZpb3VzJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IE1vZGFsTWFuYWdlciBmcm9tICcuL01vZGFsTWFuYWdlcic7XG5pbXBvcnQgdXNlV2FpdEZvckRPTVJlZiBmcm9tICcuL3VzZVdhaXRGb3JET01SZWYnO1xuaW1wb3J0IHVzZVdpbmRvdyBmcm9tICcuL3VzZVdpbmRvdyc7XG5pbXBvcnQgeyByZW5kZXJUcmFuc2l0aW9uIH0gZnJvbSAnLi9JbXBlcmF0aXZlVHJhbnNpdGlvbic7XG5pbXBvcnQgeyBpc0VzY0tleSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xubGV0IG1hbmFnZXI7XG5mdW5jdGlvbiBnZXRNYW5hZ2VyKHdpbmRvdykge1xuICBpZiAoIW1hbmFnZXIpIG1hbmFnZXIgPSBuZXcgTW9kYWxNYW5hZ2VyKHtcbiAgICBvd25lckRvY3VtZW50OiB3aW5kb3cgPT0gbnVsbCA/IHZvaWQgMCA6IHdpbmRvdy5kb2N1bWVudFxuICB9KTtcbiAgcmV0dXJuIG1hbmFnZXI7XG59XG5mdW5jdGlvbiB1c2VNb2RhbE1hbmFnZXIocHJvdmlkZWQpIHtcbiAgY29uc3Qgd2luZG93ID0gdXNlV2luZG93KCk7XG4gIGNvbnN0IG1vZGFsTWFuYWdlciA9IHByb3ZpZGVkIHx8IGdldE1hbmFnZXIod2luZG93KTtcbiAgY29uc3QgbW9kYWwgPSB1c2VSZWYoe1xuICAgIGRpYWxvZzogbnVsbCxcbiAgICBiYWNrZHJvcDogbnVsbFxuICB9KTtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24obW9kYWwuY3VycmVudCwge1xuICAgIGFkZDogKCkgPT4gbW9kYWxNYW5hZ2VyLmFkZChtb2RhbC5jdXJyZW50KSxcbiAgICByZW1vdmU6ICgpID0+IG1vZGFsTWFuYWdlci5yZW1vdmUobW9kYWwuY3VycmVudCksXG4gICAgaXNUb3BNb2RhbDogKCkgPT4gbW9kYWxNYW5hZ2VyLmlzVG9wTW9kYWwobW9kYWwuY3VycmVudCksXG4gICAgc2V0RGlhbG9nUmVmOiB1c2VDYWxsYmFjayhyZWYgPT4ge1xuICAgICAgbW9kYWwuY3VycmVudC5kaWFsb2cgPSByZWY7XG4gICAgfSwgW10pLFxuICAgIHNldEJhY2tkcm9wUmVmOiB1c2VDYWxsYmFjayhyZWYgPT4ge1xuICAgICAgbW9kYWwuY3VycmVudC5iYWNrZHJvcCA9IHJlZjtcbiAgICB9LCBbXSlcbiAgfSk7XG59XG5jb25zdCBNb2RhbCA9IC8qI19fUFVSRV9fKi9mb3J3YXJkUmVmKChfcmVmLCByZWYpID0+IHtcbiAgbGV0IHtcbiAgICAgIHNob3cgPSBmYWxzZSxcbiAgICAgIHJvbGUgPSAnZGlhbG9nJyxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHN0eWxlLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBiYWNrZHJvcCA9IHRydWUsXG4gICAgICBrZXlib2FyZCA9IHRydWUsXG4gICAgICBvbkJhY2tkcm9wQ2xpY2ssXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICB0cmFuc2l0aW9uLFxuICAgICAgcnVuVHJhbnNpdGlvbixcbiAgICAgIGJhY2tkcm9wVHJhbnNpdGlvbixcbiAgICAgIHJ1bkJhY2tkcm9wVHJhbnNpdGlvbixcbiAgICAgIGF1dG9Gb2N1cyA9IHRydWUsXG4gICAgICBlbmZvcmNlRm9jdXMgPSB0cnVlLFxuICAgICAgcmVzdG9yZUZvY3VzID0gdHJ1ZSxcbiAgICAgIHJlc3RvcmVGb2N1c09wdGlvbnMsXG4gICAgICByZW5kZXJEaWFsb2csXG4gICAgICByZW5kZXJCYWNrZHJvcCA9IHByb3BzID0+IC8qI19fUFVSRV9fKi9fanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHByb3BzKSksXG4gICAgICBtYW5hZ2VyOiBwcm92aWRlZE1hbmFnZXIsXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lclJlZixcbiAgICAgIG9uU2hvdyxcbiAgICAgIG9uSGlkZSA9ICgpID0+IHt9LFxuICAgICAgb25FeGl0LFxuICAgICAgb25FeGl0ZWQsXG4gICAgICBvbkV4aXRpbmcsXG4gICAgICBvbkVudGVyLFxuICAgICAgb25FbnRlcmluZyxcbiAgICAgIG9uRW50ZXJlZFxuICAgIH0gPSBfcmVmLFxuICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShfcmVmLCBfZXhjbHVkZWQpO1xuICBjb25zdCBjb250YWluZXIgPSB1c2VXYWl0Rm9yRE9NUmVmKGNvbnRhaW5lclJlZik7XG4gIGNvbnN0IG1vZGFsID0gdXNlTW9kYWxNYW5hZ2VyKHByb3ZpZGVkTWFuYWdlcik7XG4gIGNvbnN0IGlzTW91bnRlZCA9IHVzZU1vdW50ZWQoKTtcbiAgY29uc3QgcHJldlNob3cgPSB1c2VQcmV2aW91cyhzaG93KTtcbiAgY29uc3QgW2V4aXRlZCwgc2V0RXhpdGVkXSA9IHVzZVN0YXRlKCFzaG93KTtcbiAgY29uc3QgbGFzdEZvY3VzUmVmID0gdXNlUmVmKG51bGwpO1xuICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gbW9kYWwsIFttb2RhbF0pO1xuICBpZiAoY2FuVXNlRE9NICYmICFwcmV2U2hvdyAmJiBzaG93KSB7XG4gICAgbGFzdEZvY3VzUmVmLmN1cnJlbnQgPSBhY3RpdmVFbGVtZW50KCk7XG4gIH1cblxuICAvLyBUT0RPOiBJIHRoaW5rIHRoaXMgbmVlZHMgdG8gYmUgaW4gYW4gZWZmZWN0XG4gIGlmIChzaG93ICYmIGV4aXRlZCkge1xuICAgIHNldEV4aXRlZChmYWxzZSk7XG4gIH1cbiAgY29uc3QgaGFuZGxlU2hvdyA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgIG1vZGFsLmFkZCgpO1xuICAgIHJlbW92ZUtleWRvd25MaXN0ZW5lclJlZi5jdXJyZW50ID0gbGlzdGVuKGRvY3VtZW50LCAna2V5ZG93bicsIGhhbmRsZURvY3VtZW50S2V5RG93bik7XG4gICAgcmVtb3ZlRm9jdXNMaXN0ZW5lclJlZi5jdXJyZW50ID0gbGlzdGVuKGRvY3VtZW50LCAnZm9jdXMnLFxuICAgIC8vIHRoZSB0aW1lb3V0IGlzIG5lY2Vzc2FyeSBiL2MgdGhpcyB3aWxsIHJ1biBiZWZvcmUgdGhlIG5ldyBtb2RhbCBpcyBtb3VudGVkXG4gICAgLy8gYW5kIHNvIHN0ZWFscyBmb2N1cyBmcm9tIGl0XG4gICAgKCkgPT4gc2V0VGltZW91dChoYW5kbGVFbmZvcmNlRm9jdXMpLCB0cnVlKTtcbiAgICBpZiAob25TaG93KSB7XG4gICAgICBvblNob3coKTtcbiAgICB9XG5cbiAgICAvLyBhdXRvZm9jdXMgYWZ0ZXIgb25TaG93IHRvIG5vdCB0cmlnZ2VyIGEgZm9jdXMgZXZlbnQgZm9yIHByZXZpb3VzXG4gICAgLy8gbW9kYWxzIGJlZm9yZSB0aGlzIG9uZSBpcyBzaG93bi5cbiAgICBpZiAoYXV0b0ZvY3VzKSB7XG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQoZG9jdW1lbnQpO1xuICAgICAgaWYgKG1vZGFsLmRpYWxvZyAmJiBjdXJyZW50QWN0aXZlRWxlbWVudCAmJiAhY29udGFpbnMobW9kYWwuZGlhbG9nLCBjdXJyZW50QWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgbGFzdEZvY3VzUmVmLmN1cnJlbnQgPSBjdXJyZW50QWN0aXZlRWxlbWVudDtcbiAgICAgICAgbW9kYWwuZGlhbG9nLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgY29uc3QgaGFuZGxlSGlkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgIG1vZGFsLnJlbW92ZSgpO1xuICAgIHJlbW92ZUtleWRvd25MaXN0ZW5lclJlZi5jdXJyZW50ID09IG51bGwgPyB2b2lkIDAgOiByZW1vdmVLZXlkb3duTGlzdGVuZXJSZWYuY3VycmVudCgpO1xuICAgIHJlbW92ZUZvY3VzTGlzdGVuZXJSZWYuY3VycmVudCA9PSBudWxsID8gdm9pZCAwIDogcmVtb3ZlRm9jdXNMaXN0ZW5lclJlZi5jdXJyZW50KCk7XG4gICAgaWYgKHJlc3RvcmVGb2N1cykge1xuICAgICAgdmFyIF9sYXN0Rm9jdXNSZWYkY3VycmVudDtcbiAgICAgIC8vIFN1cHBvcnQ6IDw9SUUxMSBkb2Vzbid0IHN1cHBvcnQgYGZvY3VzKClgIG9uIHN2ZyBlbGVtZW50cyAoUkI6ICM5MTcpXG4gICAgICAoX2xhc3RGb2N1c1JlZiRjdXJyZW50ID0gbGFzdEZvY3VzUmVmLmN1cnJlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfbGFzdEZvY3VzUmVmJGN1cnJlbnQuZm9jdXMgPT0gbnVsbCA/IHZvaWQgMCA6IF9sYXN0Rm9jdXNSZWYkY3VycmVudC5mb2N1cyhyZXN0b3JlRm9jdXNPcHRpb25zKTtcbiAgICAgIGxhc3RGb2N1c1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRPRE86IHRyeSBhbmQgY29tYmluZSB0aGVzZSBlZmZlY3RzOiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtYm9vdHN0cmFwL3JlYWN0LW92ZXJsYXlzL3B1bGwvNzk0I2Rpc2N1c3Npb25fcjQwOTk1NDEyMFxuXG4gIC8vIFNob3cgbG9naWMgd2hlbjpcbiAgLy8gIC0gc2hvdyBpcyBgdHJ1ZWAgX2FuZF8gYGNvbnRhaW5lcmAgaGFzIHJlc29sdmVkXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93IHx8ICFjb250YWluZXIpIHJldHVybjtcbiAgICBoYW5kbGVTaG93KCk7XG4gIH0sIFtzaG93LCBjb250YWluZXIsIC8qIHNob3VsZCBuZXZlciBjaGFuZ2U6ICovaGFuZGxlU2hvd10pO1xuXG4gIC8vIEhpZGUgY2xlYW51cCBsb2dpYyB3aGVuOlxuICAvLyAgLSBgZXhpdGVkYCBzd2l0Y2hlcyB0byB0cnVlXG4gIC8vICAtIGNvbXBvbmVudCB1bm1vdW50cztcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWV4aXRlZCkgcmV0dXJuO1xuICAgIGhhbmRsZUhpZGUoKTtcbiAgfSwgW2V4aXRlZCwgaGFuZGxlSGlkZV0pO1xuICB1c2VXaWxsVW5tb3VudCgoKSA9PiB7XG4gICAgaGFuZGxlSGlkZSgpO1xuICB9KTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIGNvbnN0IGhhbmRsZUVuZm9yY2VGb2N1cyA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghZW5mb3JjZUZvY3VzIHx8ICFpc01vdW50ZWQoKSB8fCAhbW9kYWwuaXNUb3BNb2RhbCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVFbGVtZW50ID0gYWN0aXZlRWxlbWVudCgpO1xuICAgIGlmIChtb2RhbC5kaWFsb2cgJiYgY3VycmVudEFjdGl2ZUVsZW1lbnQgJiYgIWNvbnRhaW5zKG1vZGFsLmRpYWxvZywgY3VycmVudEFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICBtb2RhbC5kaWFsb2cuZm9jdXMoKTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBoYW5kbGVCYWNrZHJvcENsaWNrID0gdXNlRXZlbnRDYWxsYmFjayhlID0+IHtcbiAgICBpZiAoZS50YXJnZXQgIT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBvbkJhY2tkcm9wQ2xpY2sgPT0gbnVsbCA/IHZvaWQgMCA6IG9uQmFja2Ryb3BDbGljayhlKTtcbiAgICBpZiAoYmFja2Ryb3AgPT09IHRydWUpIHtcbiAgICAgIG9uSGlkZSgpO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGhhbmRsZURvY3VtZW50S2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soZSA9PiB7XG4gICAgaWYgKGtleWJvYXJkICYmIGlzRXNjS2V5KGUpICYmIG1vZGFsLmlzVG9wTW9kYWwoKSkge1xuICAgICAgb25Fc2NhcGVLZXlEb3duID09IG51bGwgPyB2b2lkIDAgOiBvbkVzY2FwZUtleURvd24oZSk7XG4gICAgICBpZiAoIWUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICBvbkhpZGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBjb25zdCByZW1vdmVGb2N1c0xpc3RlbmVyUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IHJlbW92ZUtleWRvd25MaXN0ZW5lclJlZiA9IHVzZVJlZigpO1xuICBjb25zdCBoYW5kbGVIaWRkZW4gPSAoLi4uYXJncykgPT4ge1xuICAgIHNldEV4aXRlZCh0cnVlKTtcbiAgICBvbkV4aXRlZCA9PSBudWxsID8gdm9pZCAwIDogb25FeGl0ZWQoLi4uYXJncyk7XG4gIH07XG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgZGlhbG9nUHJvcHMgPSBPYmplY3QuYXNzaWduKHtcbiAgICByb2xlLFxuICAgIHJlZjogbW9kYWwuc2V0RGlhbG9nUmVmLFxuICAgIC8vIGFwcGFyZW50bHkgb25seSB3b3JrcyBvbiB0aGUgZGlhbG9nIHJvbGUgZWxlbWVudFxuICAgICdhcmlhLW1vZGFsJzogcm9sZSA9PT0gJ2RpYWxvZycgPyB0cnVlIDogdW5kZWZpbmVkXG4gIH0sIHJlc3QsIHtcbiAgICBzdHlsZSxcbiAgICBjbGFzc05hbWUsXG4gICAgdGFiSW5kZXg6IC0xXG4gIH0pO1xuICBsZXQgZGlhbG9nID0gcmVuZGVyRGlhbG9nID8gcmVuZGVyRGlhbG9nKGRpYWxvZ1Byb3BzKSA6IC8qI19fUFVSRV9fKi9fanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGRpYWxvZ1Byb3BzLCB7XG4gICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRyZW4sIHtcbiAgICAgIHJvbGU6ICdkb2N1bWVudCdcbiAgICB9KVxuICB9KSk7XG4gIGRpYWxvZyA9IHJlbmRlclRyYW5zaXRpb24odHJhbnNpdGlvbiwgcnVuVHJhbnNpdGlvbiwge1xuICAgIHVubW91bnRPbkV4aXQ6IHRydWUsXG4gICAgbW91bnRPbkVudGVyOiB0cnVlLFxuICAgIGFwcGVhcjogdHJ1ZSxcbiAgICBpbjogISFzaG93LFxuICAgIG9uRXhpdCxcbiAgICBvbkV4aXRpbmcsXG4gICAgb25FeGl0ZWQ6IGhhbmRsZUhpZGRlbixcbiAgICBvbkVudGVyLFxuICAgIG9uRW50ZXJpbmcsXG4gICAgb25FbnRlcmVkLFxuICAgIGNoaWxkcmVuOiBkaWFsb2dcbiAgfSk7XG4gIGxldCBiYWNrZHJvcEVsZW1lbnQgPSBudWxsO1xuICBpZiAoYmFja2Ryb3ApIHtcbiAgICBiYWNrZHJvcEVsZW1lbnQgPSByZW5kZXJCYWNrZHJvcCh7XG4gICAgICByZWY6IG1vZGFsLnNldEJhY2tkcm9wUmVmLFxuICAgICAgb25DbGljazogaGFuZGxlQmFja2Ryb3BDbGlja1xuICAgIH0pO1xuICAgIGJhY2tkcm9wRWxlbWVudCA9IHJlbmRlclRyYW5zaXRpb24oYmFja2Ryb3BUcmFuc2l0aW9uLCBydW5CYWNrZHJvcFRyYW5zaXRpb24sIHtcbiAgICAgIGluOiAhIXNob3csXG4gICAgICBhcHBlYXI6IHRydWUsXG4gICAgICBtb3VudE9uRW50ZXI6IHRydWUsXG4gICAgICB1bm1vdW50T25FeGl0OiB0cnVlLFxuICAgICAgY2hpbGRyZW46IGJhY2tkcm9wRWxlbWVudFxuICAgIH0pO1xuICB9XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChfRnJhZ21lbnQsIHtcbiAgICBjaGlsZHJlbjogLyojX19QVVJFX18qL1JlYWN0RE9NLmNyZWF0ZVBvcnRhbCggLyojX19QVVJFX18qL19qc3hzKF9GcmFnbWVudCwge1xuICAgICAgY2hpbGRyZW46IFtiYWNrZHJvcEVsZW1lbnQsIGRpYWxvZ11cbiAgICB9KSwgY29udGFpbmVyKVxuICB9KTtcbn0pO1xuTW9kYWwuZGlzcGxheU5hbWUgPSAnTW9kYWwnO1xuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmFzc2lnbihNb2RhbCwge1xuICBNYW5hZ2VyOiBNb2RhbE1hbmFnZXJcbn0pOyIsImltcG9ydCB1c2VVcGRhdGVkUmVmIGZyb20gJy4vdXNlVXBkYXRlZFJlZic7XG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEF0dGFjaCBhIGNhbGxiYWNrIHRoYXQgZmlyZXMgd2hlbiBhIGNvbXBvbmVudCB1bm1vdW50c1xuICpcbiAqIEBwYXJhbSBmbiBIYW5kbGVyIHRvIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgdW5tb3VudHNcbiAqIEBjYXRlZ29yeSBlZmZlY3RzXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlV2lsbFVubW91bnQoZm4pIHtcbiAgdmFyIG9uVW5tb3VudCA9IHVzZVVwZGF0ZWRSZWYoZm4pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gb25Vbm1vdW50LmN1cnJlbnQoKTtcbiAgICB9O1xuICB9LCBbXSk7XG59IiwiaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBSZXR1cm5zIGEgcmVmIHRoYXQgaXMgaW1tZWRpYXRlbHkgdXBkYXRlZCB3aXRoIHRoZSBuZXcgdmFsdWVcbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIFJlZiB2YWx1ZVxuICogQGNhdGVnb3J5IHJlZnNcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VVcGRhdGVkUmVmKHZhbHVlKSB7XG4gIHZhciB2YWx1ZVJlZiA9IHVzZVJlZih2YWx1ZSk7XG4gIHZhbHVlUmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlUmVmO1xufSIsIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9wcmVmZXItZGVmYXVsdC1leHBvcnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VzY0tleShlKSB7XG4gIHJldHVybiBlLmNvZGUgPT09ICdFc2NhcGUnIHx8IGUua2V5Q29kZSA9PT0gMjc7XG59IiwiaW1wb3J0IGNyZWF0ZVdpdGhCc1ByZWZpeCBmcm9tICcuL2NyZWF0ZVdpdGhCc1ByZWZpeCc7XG5leHBvcnQgZGVmYXVsdCBjcmVhdGVXaXRoQnNQcmVmaXgoJ29mZmNhbnZhcy1ib2R5Jyk7IiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBFTlRFUkVELCBFTlRFUklORywgRVhJVElORyB9IGZyb20gJ3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvVHJhbnNpdGlvbic7XG5pbXBvcnQgdHJhbnNpdGlvbkVuZExpc3RlbmVyIGZyb20gJy4vdHJhbnNpdGlvbkVuZExpc3RlbmVyJztcbmltcG9ydCBUcmFuc2l0aW9uV3JhcHBlciBmcm9tICcuL1RyYW5zaXRpb25XcmFwcGVyJztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgdHJhbnNpdGlvblN0eWxlcyA9IHtcbiAgW0VOVEVSSU5HXTogJ3Nob3cnLFxuICBbRU5URVJFRF06ICdzaG93J1xufTtcbmNvbnN0IE9mZmNhbnZhc1RvZ2dsaW5nID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoKHtcbiAgYnNQcmVmaXgsXG4gIGNsYXNzTmFtZSxcbiAgY2hpbGRyZW4sXG4gIGluOiBpblByb3AgPSBmYWxzZSxcbiAgbW91bnRPbkVudGVyID0gZmFsc2UsXG4gIHVubW91bnRPbkV4aXQgPSBmYWxzZSxcbiAgYXBwZWFyID0gZmFsc2UsXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgYnNQcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdvZmZjYW52YXMnKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KFRyYW5zaXRpb25XcmFwcGVyLCB7XG4gICAgcmVmOiByZWYsXG4gICAgYWRkRW5kTGlzdGVuZXI6IHRyYW5zaXRpb25FbmRMaXN0ZW5lcixcbiAgICBpbjogaW5Qcm9wLFxuICAgIG1vdW50T25FbnRlcjogbW91bnRPbkVudGVyLFxuICAgIHVubW91bnRPbkV4aXQ6IHVubW91bnRPbkV4aXQsXG4gICAgYXBwZWFyOiBhcHBlYXIsXG4gICAgLi4ucHJvcHMsXG4gICAgY2hpbGRSZWY6IGNoaWxkcmVuLnJlZixcbiAgICBjaGlsZHJlbjogKHN0YXR1cywgaW5uZXJQcm9wcykgPT4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgLi4uaW5uZXJQcm9wcyxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIGNoaWxkcmVuLnByb3BzLmNsYXNzTmFtZSwgKHN0YXR1cyA9PT0gRU5URVJJTkcgfHwgc3RhdHVzID09PSBFWElUSU5HKSAmJiBgJHtic1ByZWZpeH0tdG9nZ2xpbmdgLCB0cmFuc2l0aW9uU3R5bGVzW3N0YXR1c10pXG4gICAgfSlcbiAgfSk7XG59KTtcbk9mZmNhbnZhc1RvZ2dsaW5nLmRpc3BsYXlOYW1lID0gJ09mZmNhbnZhc1RvZ2dsaW5nJztcbmV4cG9ydCBkZWZhdWx0IE9mZmNhbnZhc1RvZ2dsaW5nOyIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmNvbnN0IE1vZGFsQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkhpZGUoKSB7fVxufSk7XG5leHBvcnQgZGVmYXVsdCBNb2RhbENvbnRleHQ7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gJy4vQ2xvc2VCdXR0b24nO1xuaW1wb3J0IE1vZGFsQ29udGV4dCBmcm9tICcuL01vZGFsQ29udGV4dCc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgQWJzdHJhY3RNb2RhbEhlYWRlciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGNsb3NlTGFiZWwgPSAnQ2xvc2UnLFxuICBjbG9zZVZhcmlhbnQsXG4gIGNsb3NlQnV0dG9uID0gZmFsc2UsXG4gIG9uSGlkZSxcbiAgY2hpbGRyZW4sXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTW9kYWxDb250ZXh0KTtcbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICBjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0Lm9uSGlkZSgpO1xuICAgIG9uSGlkZSA9PSBudWxsID8gdm9pZCAwIDogb25IaWRlKCk7XG4gIH0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3hzKFwiZGl2XCIsIHtcbiAgICByZWY6IHJlZixcbiAgICAuLi5wcm9wcyxcbiAgICBjaGlsZHJlbjogW2NoaWxkcmVuLCBjbG9zZUJ1dHRvbiAmJiAvKiNfX1BVUkVfXyovX2pzeChDbG9zZUJ1dHRvbiwge1xuICAgICAgXCJhcmlhLWxhYmVsXCI6IGNsb3NlTGFiZWwsXG4gICAgICB2YXJpYW50OiBjbG9zZVZhcmlhbnQsXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGlja1xuICAgIH0pXVxuICB9KTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgQWJzdHJhY3RNb2RhbEhlYWRlcjsiLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUJvb3RzdHJhcFByZWZpeCB9IGZyb20gJy4vVGhlbWVQcm92aWRlcic7XG5pbXBvcnQgQWJzdHJhY3RNb2RhbEhlYWRlciBmcm9tICcuL0Fic3RyYWN0TW9kYWxIZWFkZXInO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IE9mZmNhbnZhc0hlYWRlciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGJzUHJlZml4LFxuICBjbGFzc05hbWUsXG4gIGNsb3NlTGFiZWwgPSAnQ2xvc2UnLFxuICBjbG9zZUJ1dHRvbiA9IGZhbHNlLFxuICAuLi5wcm9wc1xufSwgcmVmKSA9PiB7XG4gIGJzUHJlZml4ID0gdXNlQm9vdHN0cmFwUHJlZml4KGJzUHJlZml4LCAnb2ZmY2FudmFzLWhlYWRlcicpO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goQWJzdHJhY3RNb2RhbEhlYWRlciwge1xuICAgIHJlZjogcmVmLFxuICAgIC4uLnByb3BzLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhjbGFzc05hbWUsIGJzUHJlZml4KSxcbiAgICBjbG9zZUxhYmVsOiBjbG9zZUxhYmVsLFxuICAgIGNsb3NlQnV0dG9uOiBjbG9zZUJ1dHRvblxuICB9KTtcbn0pO1xuT2ZmY2FudmFzSGVhZGVyLmRpc3BsYXlOYW1lID0gJ09mZmNhbnZhc0hlYWRlcic7XG5leHBvcnQgZGVmYXVsdCBPZmZjYW52YXNIZWFkZXI7IiwiaW1wb3J0IGNyZWF0ZVdpdGhCc1ByZWZpeCBmcm9tICcuL2NyZWF0ZVdpdGhCc1ByZWZpeCc7XG5pbXBvcnQgZGl2V2l0aENsYXNzTmFtZSBmcm9tICcuL2RpdldpdGhDbGFzc05hbWUnO1xuY29uc3QgRGl2U3R5bGVkQXNINSA9IGRpdldpdGhDbGFzc05hbWUoJ2g1Jyk7XG5leHBvcnQgZGVmYXVsdCBjcmVhdGVXaXRoQnNQcmVmaXgoJ29mZmNhbnZhcy10aXRsZScsIHtcbiAgQ29tcG9uZW50OiBEaXZTdHlsZWRBc0g1XG59KTsiLCJmdW5jdGlvbiByZXBsYWNlQ2xhc3NOYW1lKG9yaWdDbGFzcywgY2xhc3NUb1JlbW92ZSkge1xuICByZXR1cm4gb3JpZ0NsYXNzLnJlcGxhY2UobmV3IFJlZ0V4cChcIihefFxcXFxzKVwiICsgY2xhc3NUb1JlbW92ZSArIFwiKD86XFxcXHN8JClcIiwgJ2cnKSwgJyQxJykucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL15cXHMqfFxccyokL2csICcnKTtcbn1cbi8qKlxuICogUmVtb3ZlcyBhIENTUyBjbGFzcyBmcm9tIGEgZ2l2ZW4gZWxlbWVudC5cbiAqIFxuICogQHBhcmFtIGVsZW1lbnQgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSBjbGFzc05hbWUgdGhlIENTUyBjbGFzcyBuYW1lXG4gKi9cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcbiAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0KSB7XG4gICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVsZW1lbnQuY2xhc3NOYW1lID09PSAnc3RyaW5nJykge1xuICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gcmVwbGFjZUNsYXNzTmFtZShlbGVtZW50LmNsYXNzTmFtZSwgY2xhc3NOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCByZXBsYWNlQ2xhc3NOYW1lKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycsIGNsYXNzTmFtZSkpO1xuICB9XG59IiwiaW1wb3J0IGFkZENsYXNzIGZyb20gJ2RvbS1oZWxwZXJzL2FkZENsYXNzJztcbmltcG9ydCBjc3MgZnJvbSAnZG9tLWhlbHBlcnMvY3NzJztcbmltcG9ydCBxc2EgZnJvbSAnZG9tLWhlbHBlcnMvcXVlcnlTZWxlY3RvckFsbCc7XG5pbXBvcnQgcmVtb3ZlQ2xhc3MgZnJvbSAnZG9tLWhlbHBlcnMvcmVtb3ZlQ2xhc3MnO1xuaW1wb3J0IE1vZGFsTWFuYWdlciBmcm9tICdAcmVzdGFydC91aS9Nb2RhbE1hbmFnZXInO1xuY29uc3QgU2VsZWN0b3IgPSB7XG4gIEZJWEVEX0NPTlRFTlQ6ICcuZml4ZWQtdG9wLCAuZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQsIC5zdGlja3ktdG9wJyxcbiAgU1RJQ0tZX0NPTlRFTlQ6ICcuc3RpY2t5LXRvcCcsXG4gIE5BVkJBUl9UT0dHTEVSOiAnLm5hdmJhci10b2dnbGVyJ1xufTtcbmNsYXNzIEJvb3RzdHJhcE1vZGFsTWFuYWdlciBleHRlbmRzIE1vZGFsTWFuYWdlciB7XG4gIGFkanVzdEFuZFN0b3JlKHByb3AsIGVsZW1lbnQsIGFkanVzdCkge1xuICAgIGNvbnN0IGFjdHVhbCA9IGVsZW1lbnQuc3R5bGVbcHJvcF07XG4gICAgLy8gVE9ETzogRE9NU3RyaW5nTWFwIGFuZCBDU1NTdHlsZURlY2xhcmF0aW9uIGFyZW4ndCBzdHJpY3RseSBjb21wYXRpYmxlXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGVsZW1lbnQuZGF0YXNldFtwcm9wXSA9IGFjdHVhbDtcbiAgICBjc3MoZWxlbWVudCwge1xuICAgICAgW3Byb3BdOiBgJHtwYXJzZUZsb2F0KGNzcyhlbGVtZW50LCBwcm9wKSkgKyBhZGp1c3R9cHhgXG4gICAgfSk7XG4gIH1cbiAgcmVzdG9yZShwcm9wLCBlbGVtZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmRhdGFzZXRbcHJvcF07XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBlbGVtZW50LmRhdGFzZXRbcHJvcF07XG4gICAgICBjc3MoZWxlbWVudCwge1xuICAgICAgICBbcHJvcF06IHZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2V0Q29udGFpbmVyU3R5bGUoY29udGFpbmVyU3RhdGUpIHtcbiAgICBzdXBlci5zZXRDb250YWluZXJTdHlsZShjb250YWluZXJTdGF0ZSk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRFbGVtZW50KCk7XG4gICAgYWRkQ2xhc3MoY29udGFpbmVyLCAnbW9kYWwtb3BlbicpO1xuICAgIGlmICghY29udGFpbmVyU3RhdGUuc2Nyb2xsQmFyV2lkdGgpIHJldHVybjtcbiAgICBjb25zdCBwYWRkaW5nUHJvcCA9IHRoaXMuaXNSVEwgPyAncGFkZGluZ0xlZnQnIDogJ3BhZGRpbmdSaWdodCc7XG4gICAgY29uc3QgbWFyZ2luUHJvcCA9IHRoaXMuaXNSVEwgPyAnbWFyZ2luTGVmdCcgOiAnbWFyZ2luUmlnaHQnO1xuICAgIHFzYShjb250YWluZXIsIFNlbGVjdG9yLkZJWEVEX0NPTlRFTlQpLmZvckVhY2goZWwgPT4gdGhpcy5hZGp1c3RBbmRTdG9yZShwYWRkaW5nUHJvcCwgZWwsIGNvbnRhaW5lclN0YXRlLnNjcm9sbEJhcldpZHRoKSk7XG4gICAgcXNhKGNvbnRhaW5lciwgU2VsZWN0b3IuU1RJQ0tZX0NPTlRFTlQpLmZvckVhY2goZWwgPT4gdGhpcy5hZGp1c3RBbmRTdG9yZShtYXJnaW5Qcm9wLCBlbCwgLWNvbnRhaW5lclN0YXRlLnNjcm9sbEJhcldpZHRoKSk7XG4gICAgcXNhKGNvbnRhaW5lciwgU2VsZWN0b3IuTkFWQkFSX1RPR0dMRVIpLmZvckVhY2goZWwgPT4gdGhpcy5hZGp1c3RBbmRTdG9yZShtYXJnaW5Qcm9wLCBlbCwgY29udGFpbmVyU3RhdGUuc2Nyb2xsQmFyV2lkdGgpKTtcbiAgfVxuICByZW1vdmVDb250YWluZXJTdHlsZShjb250YWluZXJTdGF0ZSkge1xuICAgIHN1cGVyLnJlbW92ZUNvbnRhaW5lclN0eWxlKGNvbnRhaW5lclN0YXRlKTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldEVsZW1lbnQoKTtcbiAgICByZW1vdmVDbGFzcyhjb250YWluZXIsICdtb2RhbC1vcGVuJyk7XG4gICAgY29uc3QgcGFkZGluZ1Byb3AgPSB0aGlzLmlzUlRMID8gJ3BhZGRpbmdMZWZ0JyA6ICdwYWRkaW5nUmlnaHQnO1xuICAgIGNvbnN0IG1hcmdpblByb3AgPSB0aGlzLmlzUlRMID8gJ21hcmdpbkxlZnQnIDogJ21hcmdpblJpZ2h0JztcbiAgICBxc2EoY29udGFpbmVyLCBTZWxlY3Rvci5GSVhFRF9DT05URU5UKS5mb3JFYWNoKGVsID0+IHRoaXMucmVzdG9yZShwYWRkaW5nUHJvcCwgZWwpKTtcbiAgICBxc2EoY29udGFpbmVyLCBTZWxlY3Rvci5TVElDS1lfQ09OVEVOVCkuZm9yRWFjaChlbCA9PiB0aGlzLnJlc3RvcmUobWFyZ2luUHJvcCwgZWwpKTtcbiAgICBxc2EoY29udGFpbmVyLCBTZWxlY3Rvci5OQVZCQVJfVE9HR0xFUikuZm9yRWFjaChlbCA9PiB0aGlzLnJlc3RvcmUobWFyZ2luUHJvcCwgZWwpKTtcbiAgfVxufVxubGV0IHNoYXJlZE1hbmFnZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hhcmVkTWFuYWdlcihvcHRpb25zKSB7XG4gIGlmICghc2hhcmVkTWFuYWdlcikgc2hhcmVkTWFuYWdlciA9IG5ldyBCb290c3RyYXBNb2RhbE1hbmFnZXIob3B0aW9ucyk7XG4gIHJldHVybiBzaGFyZWRNYW5hZ2VyO1xufVxuZXhwb3J0IGRlZmF1bHQgQm9vdHN0cmFwTW9kYWxNYW5hZ2VyOyIsImltcG9ydCBoYXNDbGFzcyBmcm9tICcuL2hhc0NsYXNzJztcbi8qKlxuICogQWRkcyBhIENTUyBjbGFzcyB0byBhIGdpdmVuIGVsZW1lbnQuXG4gKiBcbiAqIEBwYXJhbSBlbGVtZW50IHRoZSBlbGVtZW50XG4gKiBAcGFyYW0gY2xhc3NOYW1lIHRoZSBDU1MgY2xhc3MgbmFtZVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkge1xuICBpZiAoZWxlbWVudC5jbGFzc0xpc3QpIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO2Vsc2UgaWYgKCFoYXNDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpKSBpZiAodHlwZW9mIGVsZW1lbnQuY2xhc3NOYW1lID09PSAnc3RyaW5nJykgZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZSArIFwiIFwiICsgY2xhc3NOYW1lO2Vsc2UgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgKGVsZW1lbnQuY2xhc3NOYW1lICYmIGVsZW1lbnQuY2xhc3NOYW1lLmJhc2VWYWwgfHwgJycpICsgXCIgXCIgKyBjbGFzc05hbWUpO1xufSIsIi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gZWxlbWVudCBoYXMgYSBDU1MgY2xhc3MuXG4gKiBcbiAqIEBwYXJhbSBlbGVtZW50IHRoZSBlbGVtZW50XG4gKiBAcGFyYW0gY2xhc3NOYW1lIHRoZSBDU1MgY2xhc3MgbmFtZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBoYXNDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHtcbiAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0KSByZXR1cm4gISFjbGFzc05hbWUgJiYgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKTtcbiAgcmV0dXJuIChcIiBcIiArIChlbGVtZW50LmNsYXNzTmFtZS5iYXNlVmFsIHx8IGVsZW1lbnQuY2xhc3NOYW1lKSArIFwiIFwiKS5pbmRleE9mKFwiIFwiICsgY2xhc3NOYW1lICsgXCIgXCIpICE9PSAtMTtcbn0iLCJpbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gJ0ByZXN0YXJ0L2hvb2tzL3VzZUJyZWFrcG9pbnQnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQHJlc3RhcnQvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJhc2VNb2RhbCBmcm9tICdAcmVzdGFydC91aS9Nb2RhbCc7XG5pbXBvcnQgRmFkZSBmcm9tICcuL0ZhZGUnO1xuaW1wb3J0IE9mZmNhbnZhc0JvZHkgZnJvbSAnLi9PZmZjYW52YXNCb2R5JztcbmltcG9ydCBPZmZjYW52YXNUb2dnbGluZyBmcm9tICcuL09mZmNhbnZhc1RvZ2dsaW5nJztcbmltcG9ydCBNb2RhbENvbnRleHQgZnJvbSAnLi9Nb2RhbENvbnRleHQnO1xuaW1wb3J0IE5hdmJhckNvbnRleHQgZnJvbSAnLi9OYXZiYXJDb250ZXh0JztcbmltcG9ydCBPZmZjYW52YXNIZWFkZXIgZnJvbSAnLi9PZmZjYW52YXNIZWFkZXInO1xuaW1wb3J0IE9mZmNhbnZhc1RpdGxlIGZyb20gJy4vT2ZmY2FudmFzVGl0bGUnO1xuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4IH0gZnJvbSAnLi9UaGVtZVByb3ZpZGVyJztcbmltcG9ydCBCb290c3RyYXBNb2RhbE1hbmFnZXIsIHsgZ2V0U2hhcmVkTWFuYWdlciB9IGZyb20gJy4vQm9vdHN0cmFwTW9kYWxNYW5hZ2VyJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGcmFnbWVudCBhcyBfRnJhZ21lbnQgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmZ1bmN0aW9uIERpYWxvZ1RyYW5zaXRpb24ocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KE9mZmNhbnZhc1RvZ2dsaW5nLCB7XG4gICAgLi4ucHJvcHNcbiAgfSk7XG59XG5mdW5jdGlvbiBCYWNrZHJvcFRyYW5zaXRpb24ocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KEZhZGUsIHtcbiAgICAuLi5wcm9wc1xuICB9KTtcbn1cbmNvbnN0IE9mZmNhbnZhcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKCh7XG4gIGJzUHJlZml4LFxuICBjbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkYnksXG4gIHBsYWNlbWVudCA9ICdzdGFydCcsXG4gIHJlc3BvbnNpdmUsXG4gIC8qIEJhc2VNb2RhbCBwcm9wcyAqL1xuXG4gIHNob3cgPSBmYWxzZSxcbiAgYmFja2Ryb3AgPSB0cnVlLFxuICBrZXlib2FyZCA9IHRydWUsXG4gIHNjcm9sbCA9IGZhbHNlLFxuICBvbkVzY2FwZUtleURvd24sXG4gIG9uU2hvdyxcbiAgb25IaWRlLFxuICBjb250YWluZXIsXG4gIGF1dG9Gb2N1cyA9IHRydWUsXG4gIGVuZm9yY2VGb2N1cyA9IHRydWUsXG4gIHJlc3RvcmVGb2N1cyA9IHRydWUsXG4gIHJlc3RvcmVGb2N1c09wdGlvbnMsXG4gIG9uRW50ZXJlZCxcbiAgb25FeGl0LFxuICBvbkV4aXRpbmcsXG4gIG9uRW50ZXIsXG4gIG9uRW50ZXJpbmcsXG4gIG9uRXhpdGVkLFxuICBiYWNrZHJvcENsYXNzTmFtZSxcbiAgbWFuYWdlcjogcHJvcHNNYW5hZ2VyLFxuICByZW5kZXJTdGF0aWNOb2RlID0gZmFsc2UsXG4gIC4uLnByb3BzXG59LCByZWYpID0+IHtcbiAgY29uc3QgbW9kYWxNYW5hZ2VyID0gdXNlUmVmKCk7XG4gIGJzUHJlZml4ID0gdXNlQm9vdHN0cmFwUHJlZml4KGJzUHJlZml4LCAnb2ZmY2FudmFzJyk7XG4gIGNvbnN0IHtcbiAgICBvblRvZ2dsZVxuICB9ID0gdXNlQ29udGV4dChOYXZiYXJDb250ZXh0KSB8fCB7fTtcbiAgY29uc3QgW3Nob3dPZmZjYW52YXMsIHNldFNob3dPZmZjYW52YXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBoaWRlUmVzcG9uc2l2ZU9mZmNhbnZhcyA9IHVzZUJyZWFrcG9pbnQocmVzcG9uc2l2ZSB8fCAneHMnLCAndXAnKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBIYW5kbGVzIHRoZSBjYXNlIHdoZXJlIHNjcmVlbiBpcyByZXNpemVkIHdoaWxlIHRoZSByZXNwb25zaXZlXG4gICAgLy8gb2ZmY2FudmFzIGlzIHNob3duLiBJZiBgcmVzcG9uc2l2ZWAgbm90IHByb3ZpZGVkLCBqdXN0IHVzZSBgc2hvd2AuXG4gICAgc2V0U2hvd09mZmNhbnZhcyhyZXNwb25zaXZlID8gc2hvdyAmJiAhaGlkZVJlc3BvbnNpdmVPZmZjYW52YXMgOiBzaG93KTtcbiAgfSwgW3Nob3csIHJlc3BvbnNpdmUsIGhpZGVSZXNwb25zaXZlT2ZmY2FudmFzXSk7XG4gIGNvbnN0IGhhbmRsZUhpZGUgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICBvblRvZ2dsZSA9PSBudWxsID8gdm9pZCAwIDogb25Ub2dnbGUoKTtcbiAgICBvbkhpZGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9uSGlkZSgpO1xuICB9KTtcbiAgY29uc3QgbW9kYWxDb250ZXh0ID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIG9uSGlkZTogaGFuZGxlSGlkZVxuICB9KSwgW2hhbmRsZUhpZGVdKTtcbiAgZnVuY3Rpb24gZ2V0TW9kYWxNYW5hZ2VyKCkge1xuICAgIGlmIChwcm9wc01hbmFnZXIpIHJldHVybiBwcm9wc01hbmFnZXI7XG4gICAgaWYgKHNjcm9sbCkge1xuICAgICAgLy8gSGF2ZSB0byB1c2UgYSBkaWZmZXJlbnQgbW9kYWwgbWFuYWdlciBzaW5jZSB0aGUgc2hhcmVkXG4gICAgICAvLyBvbmUgaGFuZGxlcyBvdmVyZmxvdy5cbiAgICAgIGlmICghbW9kYWxNYW5hZ2VyLmN1cnJlbnQpIG1vZGFsTWFuYWdlci5jdXJyZW50ID0gbmV3IEJvb3RzdHJhcE1vZGFsTWFuYWdlcih7XG4gICAgICAgIGhhbmRsZUNvbnRhaW5lck92ZXJmbG93OiBmYWxzZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbW9kYWxNYW5hZ2VyLmN1cnJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBnZXRTaGFyZWRNYW5hZ2VyKCk7XG4gIH1cbiAgY29uc3QgaGFuZGxlRW50ZXIgPSAobm9kZSwgLi4uYXJncykgPT4ge1xuICAgIGlmIChub2RlKSBub2RlLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG4gICAgb25FbnRlciA9PSBudWxsID8gdm9pZCAwIDogb25FbnRlcihub2RlLCAuLi5hcmdzKTtcbiAgfTtcbiAgY29uc3QgaGFuZGxlRXhpdGVkID0gKG5vZGUsIC4uLmFyZ3MpID0+IHtcbiAgICBpZiAobm9kZSkgbm9kZS5zdHlsZS52aXNpYmlsaXR5ID0gJyc7XG4gICAgb25FeGl0ZWQgPT0gbnVsbCA/IHZvaWQgMCA6IG9uRXhpdGVkKC4uLmFyZ3MpO1xuICB9O1xuICBjb25zdCByZW5kZXJCYWNrZHJvcCA9IHVzZUNhbGxiYWNrKGJhY2tkcm9wUHJvcHMgPT4gLyojX19QVVJFX18qL19qc3goXCJkaXZcIiwge1xuICAgIC4uLmJhY2tkcm9wUHJvcHMsXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGAke2JzUHJlZml4fS1iYWNrZHJvcGAsIGJhY2tkcm9wQ2xhc3NOYW1lKVxuICB9KSwgW2JhY2tkcm9wQ2xhc3NOYW1lLCBic1ByZWZpeF0pO1xuICBjb25zdCByZW5kZXJEaWFsb2cgPSBkaWFsb2dQcm9wcyA9PiAvKiNfX1BVUkVfXyovX2pzeChcImRpdlwiLCB7XG4gICAgLi4uZGlhbG9nUHJvcHMsXG4gICAgLi4ucHJvcHMsXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwgcmVzcG9uc2l2ZSA/IGAke2JzUHJlZml4fS0ke3Jlc3BvbnNpdmV9YCA6IGJzUHJlZml4LCBgJHtic1ByZWZpeH0tJHtwbGFjZW1lbnR9YCksXG4gICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYXJpYUxhYmVsbGVkYnksXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gIH0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3hzKF9GcmFnbWVudCwge1xuICAgIGNoaWxkcmVuOiBbIXNob3dPZmZjYW52YXMgJiYgKHJlc3BvbnNpdmUgfHwgcmVuZGVyU3RhdGljTm9kZSkgJiYgcmVuZGVyRGlhbG9nKHt9KSwgLyojX19QVVJFX18qL19qc3goTW9kYWxDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogbW9kYWxDb250ZXh0LFxuICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi9fanN4KEJhc2VNb2RhbCwge1xuICAgICAgICBzaG93OiBzaG93T2ZmY2FudmFzLFxuICAgICAgICByZWY6IHJlZixcbiAgICAgICAgYmFja2Ryb3A6IGJhY2tkcm9wLFxuICAgICAgICBjb250YWluZXI6IGNvbnRhaW5lcixcbiAgICAgICAga2V5Ym9hcmQ6IGtleWJvYXJkLFxuICAgICAgICBhdXRvRm9jdXM6IGF1dG9Gb2N1cyxcbiAgICAgICAgZW5mb3JjZUZvY3VzOiBlbmZvcmNlRm9jdXMgJiYgIXNjcm9sbCxcbiAgICAgICAgcmVzdG9yZUZvY3VzOiByZXN0b3JlRm9jdXMsXG4gICAgICAgIHJlc3RvcmVGb2N1c09wdGlvbnM6IHJlc3RvcmVGb2N1c09wdGlvbnMsXG4gICAgICAgIG9uRXNjYXBlS2V5RG93bjogb25Fc2NhcGVLZXlEb3duLFxuICAgICAgICBvblNob3c6IG9uU2hvdyxcbiAgICAgICAgb25IaWRlOiBoYW5kbGVIaWRlLFxuICAgICAgICBvbkVudGVyOiBoYW5kbGVFbnRlcixcbiAgICAgICAgb25FbnRlcmluZzogb25FbnRlcmluZyxcbiAgICAgICAgb25FbnRlcmVkOiBvbkVudGVyZWQsXG4gICAgICAgIG9uRXhpdDogb25FeGl0LFxuICAgICAgICBvbkV4aXRpbmc6IG9uRXhpdGluZyxcbiAgICAgICAgb25FeGl0ZWQ6IGhhbmRsZUV4aXRlZCxcbiAgICAgICAgbWFuYWdlcjogZ2V0TW9kYWxNYW5hZ2VyKCksXG4gICAgICAgIHRyYW5zaXRpb246IERpYWxvZ1RyYW5zaXRpb24sXG4gICAgICAgIGJhY2tkcm9wVHJhbnNpdGlvbjogQmFja2Ryb3BUcmFuc2l0aW9uLFxuICAgICAgICByZW5kZXJCYWNrZHJvcDogcmVuZGVyQmFja2Ryb3AsXG4gICAgICAgIHJlbmRlckRpYWxvZzogcmVuZGVyRGlhbG9nXG4gICAgICB9KVxuICAgIH0pXVxuICB9KTtcbn0pO1xuT2ZmY2FudmFzLmRpc3BsYXlOYW1lID0gJ09mZmNhbnZhcyc7XG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKE9mZmNhbnZhcywge1xuICBCb2R5OiBPZmZjYW52YXNCb2R5LFxuICBIZWFkZXI6IE9mZmNhbnZhc0hlYWRlcixcbiAgVGl0bGU6IE9mZmNhbnZhc1RpdGxlXG59KTsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IE9mZmNhbnZhcyBmcm9tICcuL09mZmNhbnZhcyc7XG5pbXBvcnQgTmF2YmFyQ29udGV4dCBmcm9tICcuL05hdmJhckNvbnRleHQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmNvbnN0IE5hdmJhck9mZmNhbnZhcyA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KE5hdmJhckNvbnRleHQpO1xuICByZXR1cm4gLyojX19QVVJFX18qL19qc3goT2ZmY2FudmFzLCB7XG4gICAgcmVmOiByZWYsXG4gICAgc2hvdzogISEoY29udGV4dCAhPSBudWxsICYmIGNvbnRleHQuZXhwYW5kZWQpLFxuICAgIC4uLnByb3BzLFxuICAgIHJlbmRlclN0YXRpY05vZGU6IHRydWVcbiAgfSk7XG59KTtcbk5hdmJhck9mZmNhbnZhcy5kaXNwbGF5TmFtZSA9ICdOYXZiYXJPZmZjYW52YXMnO1xuZXhwb3J0IGRlZmF1bHQgTmF2YmFyT2ZmY2FudmFzOyIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgU2VsZWN0YWJsZUNvbnRleHQgZnJvbSAnQHJlc3RhcnQvdWkvU2VsZWN0YWJsZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlVW5jb250cm9sbGVkIH0gZnJvbSAndW5jb250cm9sbGFibGUnO1xuaW1wb3J0IGNyZWF0ZVdpdGhCc1ByZWZpeCBmcm9tICcuL2NyZWF0ZVdpdGhCc1ByZWZpeCc7XG5pbXBvcnQgTmF2YmFyQnJhbmQgZnJvbSAnLi9OYXZiYXJCcmFuZCc7XG5pbXBvcnQgTmF2YmFyQ29sbGFwc2UgZnJvbSAnLi9OYXZiYXJDb2xsYXBzZSc7XG5pbXBvcnQgTmF2YmFyVG9nZ2xlIGZyb20gJy4vTmF2YmFyVG9nZ2xlJztcbmltcG9ydCBOYXZiYXJPZmZjYW52YXMgZnJvbSAnLi9OYXZiYXJPZmZjYW52YXMnO1xuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4IH0gZnJvbSAnLi9UaGVtZVByb3ZpZGVyJztcbmltcG9ydCBOYXZiYXJDb250ZXh0IGZyb20gJy4vTmF2YmFyQ29udGV4dCc7XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuY29uc3QgTmF2YmFyVGV4dCA9IGNyZWF0ZVdpdGhCc1ByZWZpeCgnbmF2YmFyLXRleHQnLCB7XG4gIENvbXBvbmVudDogJ3NwYW4nXG59KTtcbmNvbnN0IE5hdmJhciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBic1ByZWZpeDogaW5pdGlhbEJzUHJlZml4LFxuICAgIGV4cGFuZCA9IHRydWUsXG4gICAgdmFyaWFudCA9ICdsaWdodCcsXG4gICAgYmcsXG4gICAgZml4ZWQsXG4gICAgc3RpY2t5LFxuICAgIGNsYXNzTmFtZSxcbiAgICAvLyBOZWVkIHRvIGRlZmluZSB0aGUgZGVmYXVsdCBcImFzXCIgZHVyaW5nIHByb3AgZGVzdHJ1Y3R1cmluZyB0byBiZSBjb21wYXRpYmxlIHdpdGggc3R5bGVkLWNvbXBvbmVudHMgZ2l0aHViLmNvbS9yZWFjdC1ib290c3RyYXAvcmVhY3QtYm9vdHN0cmFwL2lzc3Vlcy8zNTk1XG4gICAgYXM6IENvbXBvbmVudCA9ICduYXYnLFxuICAgIGV4cGFuZGVkLFxuICAgIG9uVG9nZ2xlLFxuICAgIG9uU2VsZWN0LFxuICAgIGNvbGxhcHNlT25TZWxlY3QgPSBmYWxzZSxcbiAgICAuLi5jb250cm9sbGVkUHJvcHNcbiAgfSA9IHVzZVVuY29udHJvbGxlZChwcm9wcywge1xuICAgIGV4cGFuZGVkOiAnb25Ub2dnbGUnXG4gIH0pO1xuICBjb25zdCBic1ByZWZpeCA9IHVzZUJvb3RzdHJhcFByZWZpeChpbml0aWFsQnNQcmVmaXgsICduYXZiYXInKTtcbiAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgIG9uU2VsZWN0ID09IG51bGwgPyB2b2lkIDAgOiBvblNlbGVjdCguLi5hcmdzKTtcbiAgICBpZiAoY29sbGFwc2VPblNlbGVjdCAmJiBleHBhbmRlZCkge1xuICAgICAgb25Ub2dnbGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9uVG9nZ2xlKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtvblNlbGVjdCwgY29sbGFwc2VPblNlbGVjdCwgZXhwYW5kZWQsIG9uVG9nZ2xlXSk7XG5cbiAgLy8gd2lsbCByZXN1bHQgaW4gc29tZSBmYWxzZSBwb3NpdGl2ZXMgYnV0IHRoYXQgc2VlbXMgYmV0dGVyXG4gIC8vIHRoYW4gZmFsc2UgbmVnYXRpdmVzLiBzdHJpY3QgYHVuZGVmaW5lZGAgY2hlY2sgYWxsb3dzIGV4cGxpY2l0XG4gIC8vIFwibnVsbGluZ1wiIG9mIHRoZSByb2xlIGlmIHRoZSB1c2VyIHJlYWxseSBkb2Vzbid0IHdhbnQgb25lXG4gIGlmIChjb250cm9sbGVkUHJvcHMucm9sZSA9PT0gdW5kZWZpbmVkICYmIENvbXBvbmVudCAhPT0gJ25hdicpIHtcbiAgICBjb250cm9sbGVkUHJvcHMucm9sZSA9ICduYXZpZ2F0aW9uJztcbiAgfVxuICBsZXQgZXhwYW5kQ2xhc3MgPSBgJHtic1ByZWZpeH0tZXhwYW5kYDtcbiAgaWYgKHR5cGVvZiBleHBhbmQgPT09ICdzdHJpbmcnKSBleHBhbmRDbGFzcyA9IGAke2V4cGFuZENsYXNzfS0ke2V4cGFuZH1gO1xuICBjb25zdCBuYXZiYXJDb250ZXh0ID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIG9uVG9nZ2xlOiAoKSA9PiBvblRvZ2dsZSA9PSBudWxsID8gdm9pZCAwIDogb25Ub2dnbGUoIWV4cGFuZGVkKSxcbiAgICBic1ByZWZpeCxcbiAgICBleHBhbmRlZDogISFleHBhbmRlZCxcbiAgICBleHBhbmRcbiAgfSksIFtic1ByZWZpeCwgZXhwYW5kZWQsIGV4cGFuZCwgb25Ub2dnbGVdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9fanN4KE5hdmJhckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogbmF2YmFyQ29udGV4dCxcbiAgICBjaGlsZHJlbjogLyojX19QVVJFX18qL19qc3goU2VsZWN0YWJsZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgIHZhbHVlOiBoYW5kbGVDb2xsYXBzZSxcbiAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIHtcbiAgICAgICAgcmVmOiByZWYsXG4gICAgICAgIC4uLmNvbnRyb2xsZWRQcm9wcyxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGNsYXNzTmFtZSwgYnNQcmVmaXgsIGV4cGFuZCAmJiBleHBhbmRDbGFzcywgdmFyaWFudCAmJiBgJHtic1ByZWZpeH0tJHt2YXJpYW50fWAsIGJnICYmIGBiZy0ke2JnfWAsIHN0aWNreSAmJiBgc3RpY2t5LSR7c3RpY2t5fWAsIGZpeGVkICYmIGBmaXhlZC0ke2ZpeGVkfWApXG4gICAgICB9KVxuICAgIH0pXG4gIH0pO1xufSk7XG5OYXZiYXIuZGlzcGxheU5hbWUgPSAnTmF2YmFyJztcbmV4cG9ydCBkZWZhdWx0IE9iamVjdC5hc3NpZ24oTmF2YmFyLCB7XG4gIEJyYW5kOiBOYXZiYXJCcmFuZCxcbiAgQ29sbGFwc2U6IE5hdmJhckNvbGxhcHNlLFxuICBPZmZjYW52YXM6IE5hdmJhck9mZmNhbnZhcyxcbiAgVGV4dDogTmF2YmFyVGV4dCxcbiAgVG9nZ2xlOiBOYXZiYXJUb2dnbGVcbn0pOyIsImltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4IH0gZnJvbSAnLi9UaGVtZVByb3ZpZGVyJztcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5jb25zdCBDb250YWluZXIgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZigoe1xuICBic1ByZWZpeCxcbiAgZmx1aWQgPSBmYWxzZSxcbiAgLy8gTmVlZCB0byBkZWZpbmUgdGhlIGRlZmF1bHQgXCJhc1wiIGR1cmluZyBwcm9wIGRlc3RydWN0dXJpbmcgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHN0eWxlZC1jb21wb25lbnRzIGdpdGh1Yi5jb20vcmVhY3QtYm9vdHN0cmFwL3JlYWN0LWJvb3RzdHJhcC9pc3N1ZXMvMzU5NVxuICBhczogQ29tcG9uZW50ID0gJ2RpdicsXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn0sIHJlZikgPT4ge1xuICBjb25zdCBwcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdjb250YWluZXInKTtcbiAgY29uc3Qgc3VmZml4ID0gdHlwZW9mIGZsdWlkID09PSAnc3RyaW5nJyA/IGAtJHtmbHVpZH1gIDogJy1mbHVpZCc7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovX2pzeChDb21wb25lbnQsIHtcbiAgICByZWY6IHJlZixcbiAgICAuLi5wcm9wcyxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBmbHVpZCA/IGAke3ByZWZpeH0ke3N1ZmZpeH1gIDogcHJlZml4KVxuICB9KTtcbn0pO1xuQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ0NvbnRhaW5lcic7XG5leHBvcnQgZGVmYXVsdCBDb250YWluZXI7IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgdGhlIENhb3NEQiBQcm9qZWN0LlxuICpcbiAqIENvcHlyaWdodCAoQykgMjAxOSBIZW5yaWsgdG9tIFfDtnJkZW4gPGgudG9td29lcmRlbkBpbmRpc2NhbGUuY29tPlxuICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjMgVGltbSBGaXRzY2hlbiA8dC5maXRzY2hlbkBpbmRpc2NhbGUuY29tPlxuICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjMgSW5kaVNjYWxlIEdtYkggPGluZm9AaW5kaXNjYWxlLmNvbT5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZVxuICogTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbi8vLy8vLy8gQVVUTyBDT01QTEVUSU9OXG5jb25zdCBDUUxfV09SRFMgPSBbXG4gIFwiRklORFwiLFxuICBcIkZJTEVcIixcbiAgXCJFTlRJVFlcIixcbiAgXCJTRUxFQ1RcIixcbiAgXCJDT1VOVFwiLFxuICBcIlJFQ09SRFwiLFxuICBcIlBST1BFUlRZXCIsXG4gIFwiUkVDT1JEVFlQRVwiLFxuICBcIlJFRkVSRU5DRVNcIixcbiAgXCJSRUZFUkVOQ0VEIEJZXCIsXG4gIFwiV0hJQ0hcIixcbiAgXCJXSVRIXCIsXG4gIFwiQ1JFQVRFRCBCWVwiLFxuICBcIkNSRUFURUQgQlkgTUVcIixcbiAgXCJDUkVBVEVEIEFUXCIsXG4gIFwiQ1JFQVRFRCBPTlwiLFxuICBcIkNSRUFURUQgSU5cIixcbiAgXCJDUkVBVEVEIEJFRk9SRVwiLFxuICBcIkNSRUFURUQgVU5USUxcIixcbiAgXCJDUkVBVEVEIEFGVEVSXCIsXG4gIFwiQ1JFQVRFRCBTSU5DRVwiLFxuICBcIlNPTUVPTkVcIixcbiAgXCJTVE9SRUQgQVRcIixcbiAgXCJIQVMgQSBQUk9QRVJUWVwiLFxuICBcIkhBUyBCRUVOXCIsXG4gIFwiQU5ZIFZFUlNJT04gT0ZcIixcbiAgXCJGUk9NXCIsXG4gIFwiSU5TRVJURUQgQVRcIixcbiAgXCJJTlNFUlRFRCBPTlwiLFxuICBcIklOU0VSVEVEIElOXCIsXG4gIFwiSU5TRVJURUQgQllcIixcbiAgXCJJTlNFUlRFRCBCWSBNRVwiLFxuICBcIklOU0VSVEVEIEJFRk9SRVwiLFxuICBcIklOU0VSVEVEIFVOVElMXCIsXG4gIFwiSU5TRVJURUQgQUZURVJcIixcbiAgXCJJTlNFUlRFRCBTSU5DRVwiLFxuICBcIlVQREFURUQgQVRcIixcbiAgXCJVUERBVEVEIE9OXCIsXG4gIFwiVVBEQVRFRCBJTlwiLFxuICBcIlVQREFURUQgQllcIixcbiAgXCJVUERBVEVEIEJZIE1FXCIsXG4gIFwiVVBEQVRFRCBCRUZPUkVcIixcbiAgXCJVUERBVEVEIFVOVElMXCIsXG4gIFwiVVBEQVRFRCBBRlRFUlwiLFxuICBcIlVQREFURUQgU0lOQ0VcIixcbiAgXCJTSU5DRVwiLFxuICBcIkJFRk9SRVwiLFxuICBcIk9OXCIsXG4gIFwiSU5cIixcbiAgXCJBRlRFUlwiLFxuICBcIlVOVElMXCIsXG4gIFwiQVRcIixcbiAgXCJCWVwiLFxuICBcIkJZIE1FXCIsXG5dO1xuXG5mdW5jdGlvbiBwcmVwYXJlVGVybXModGVybXMpIHtcbiAgcmV0dXJuIHRlcm1zLm1hcCgodGVybSkgPT4ge1xuICAgIHZhciB0ZXJtX2VzY2FwZWQgPSB0ZXJtO1xuICAgIGlmICh0ZXJtX2VzY2FwZWQuaW5kZXhPZihcIiBcIikgPiAtMSkge1xuICAgICAgaWYgKHRlcm0uaW5kZXhPZignXCInKSA+IC0xKSB7XG4gICAgICAgIHRlcm1fZXNjYXBlZCA9IGAnJHt0ZXJtX2VzY2FwZWR9J2A7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZXJtX2VzY2FwZWQgPSBgXCIke3Rlcm1fZXNjYXBlZH1cImA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbDogdGVybSxcbiAgICAgIG5vcm1hbGl6ZWQ6IHRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCksXG4gICAgICBlc2NhcGVkOiB0ZXJtX2VzY2FwZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVDcWxXb3Jkcyh3b3Jkcykge1xuICByZXR1cm4gd29yZHMubWFwKCh3b3JkKSA9PiAoe1xuICAgIG9yaWdpbmFsOiB3b3JkLFxuICAgIG5vcm1hbGl6ZWQ6IHdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCksXG4gICAgZXNjYXBlZDogd29yZCxcbiAgfSkpO1xufVxuXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRpb24ge1xuICBjb25zdHJ1Y3Rvcih0ZXJtcywgY3FsX3dvcmRzKSB7XG4gICAgdGhpcy5fY3FsX3dvcmRzID0gcHJlcGFyZUNxbFdvcmRzKGNxbF93b3JkcyB8fCBDUUxfV09SRFMpO1xuICAgIHRoaXMuX3Rlcm1zID0gdGVybXMgfHwgW107XG4gICAgdGhpcy5fcmVzb2x2ZWRfdGVybXMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBnZXRTdWdnZXN0aW9ucyhpc0NxbCwgZnVsbFF1ZXJ5LCB3b3JkKSB7XG4gICAgaWYgKGlzQ3FsKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRDcWxTdWdnZXN0aW9ucyhmdWxsUXVlcnksIHdvcmQpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRTZWFyY2hUZXJtU3VnZ2VzdGlvbnMoZnVsbFF1ZXJ5LCB3b3JkKTtcbiAgfVxuXG4gIGFzeW5jIF9kb19yZXNvbHZlX3Rlcm1zKHRlcm1zKSB7XG4gICAgdmFyIHJlc29sdmVkX3Rlcm1zO1xuICAgIGlmICh0eXBlb2YgdGVybXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmVzb2x2ZWRfdGVybXMgPSBhd2FpdCB0ZXJtcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlZF90ZXJtcyA9IGF3YWl0IHRlcm1zO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgcHJlcGFyZVRlcm1zKHJlc29sdmVkX3Rlcm1zKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRUZXJtcygpIHtcbiAgICBpZiAoIXRoaXMuX3Jlc29sdmVkX3Rlcm1zKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlZF90ZXJtcyA9IHRoaXMuX2RvX3Jlc29sdmVfdGVybXModGhpcy5fdGVybXMpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fcmVzb2x2ZWRfdGVybXM7XG4gIH1cblxuICBhc3luYyBnZXRTZWFyY2hUZXJtU3VnZ2VzdGlvbnMoZnVsbFF1ZXJ5LCB3b3JkKSB7XG4gICAgdmFyIHRlcm1zID0gYXdhaXQgdGhpcy5fZ2V0VGVybXMoKTtcbiAgICBpZiAoZnVsbFF1ZXJ5ID09PSB3b3JkKSB7XG4gICAgICAvLyBzdGlsbCBvbmx5IG9uZSB3b3JkIC0+IGFsc28gYXBwZW5kIEZJTkQsIFNFTEVDVCBhbmQgQ09VTlRcbiAgICAgIHRlcm1zID0gcHJlcGFyZUNxbFdvcmRzKFtcIkZJTkRcIiwgXCJTRUxFQ1RcIiwgXCJDT1VOVFwiXSkuY29uY2F0KHRlcm1zKTtcbiAgICB9XG4gICAgY29uc3Qgd29yZE5vcm1hbGl6ZWQgPSB3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0ZXJtcy5maWx0ZXIoKHRlcm0pID0+IHRlcm0ubm9ybWFsaXplZC5zdGFydHNXaXRoKHdvcmROb3JtYWxpemVkKSk7XG4gIH1cblxuICBhc3luYyBnZXRDcWxTdWdnZXN0aW9ucyhmdWxsUXVlcnksIHdvcmQpIHtcbiAgICBjb25zdCBjcWxfd29yZHMgPSB0aGlzLl9jcWxfd29yZHM7XG5cbiAgICBjb25zdCB3b3JkTm9ybWFsaXplZCA9IHdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGNxbF93b3Jkc1xuICAgICAgLmZpbHRlcigodGVybSkgPT4gdGVybS5ub3JtYWxpemVkLnN0YXJ0c1dpdGgod29yZE5vcm1hbGl6ZWQpKVxuICAgICAgLmNvbmNhdChhd2FpdCB0aGlzLmdldFNlYXJjaFRlcm1TdWdnZXN0aW9ucyhmdWxsUXVlcnksIHdvcmQpKTtcbiAgfVxufVxuXG4vLy8vLy8vIFFVRVJZIEdFTkVSQVRJT05cblxuZXhwb3J0IGNvbnN0IGlzQ3FsID0gZnVuY3Rpb24gKHF1ZXJ5KSB7XG4gIHF1ZXJ5ID0gcXVlcnkudG9VcHBlckNhc2UoKS50cmltKCk7XG4gIHJldHVybiAoXG4gICAgcXVlcnkuc3RhcnRzV2l0aChcIkZJTkRcIikgfHxcbiAgICBxdWVyeS5zdGFydHNXaXRoKFwiQ09VTlRcIikgfHxcbiAgICBxdWVyeS5zdGFydHNXaXRoKFwiU0VMRUNUXCIpXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTZWxlY3QgPSBmdW5jdGlvbiAocXVlcnkpIHtcbiAgcmV0dXJuIHF1ZXJ5LnRvVXBwZXJDYXNlKCkudHJpbSgpLnN0YXJ0c1dpdGgoXCJTRUxFQ1RcIik7XG59O1xuXG5jb25zdCB0cmFuc2xhdG9yID0ge1xuICBcIj1cIjogXCI9XCIsXG4gIFwiPlwiOiBcIj5cIixcbiAgXCLiiaVcIjogXCI+PVwiLFxuICBcIjxcIjogXCI8XCIsXG4gIFwi4omkXCI6IFwiPD1cIixcbiAgXCLiiaBcIjogXCIhPVwiLFxuICBlcXVhbHM6IFwiPVwiLFxuICBpbjogXCJpblwiLFxuICBcIm5vdCBpblwiOiBcIm5vdCBpblwiLFxuICBcImFmdGVyIGRhdGVcIjogXCI+XCIsXG4gIFwic2luY2UgZGF0ZVwiOiBcIj49XCIsXG4gIFwidW50aWwgZGF0ZVwiOiBcIjw9XCIsXG4gIFwiYmVmb3JlIGRhdGVcIjogXCI8XCIsXG4gIFwib24gZGF0ZVwiOiBcIm9uXCIsXG4gIFwibm90IG9uIGRhdGVcIjogXCJub3Qgb25cIixcbn07XG5cbi8qKlxuICogQ29udmVydCBhIChwcm9wZXJ0eSwgb3BlcmF0b3IsIHZhbHVlLCB1bml0KSB0dXBsZSB0byBhIHZhbGlkIENRTCBQT1YtZmlsdGVyXG4gKiBleHByZXNzaW9uIGluY2x1ZGluZyBxdW90YXRpb24gZm9yIHRoZSB2YWx1ZSBhbmQgcGFyZW50aGVzaXMgYXJvdW5kXG4gKiBldmVyeXRoaW5nIGZvciBzYWZlIGludGVycHJldGF0aW9uIGJ5IHRoZSBDUUwgcGFyc2VyLlxuICpcbiAqICAgRS5nLiAoXCJFdmVudC5sb25naXR1ZGVcIiwgXCI+XCIsIC00MCwgXCLCsFwiKSByZXN1bHRzIGluXG4gKiAgICAgICAgJyhFdmVudC5sb25naXR1ZGUgPiBcIi00MMKwXCIpJy5cbiAqXG4gKiBOb3RlOiBUaGUgY29ycmVjdCBxdW90YXRpb24gZm9yIHRoZSBwcm9wZXJ0eSBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBwYXNzZWRcbiAqIGBwcm9wZXJ0eWAgYWxyZWFkeSBhbmQgaGVuY2UgYmUgZGVmaW5lZCBpbiB0aGUgUXVlcnlGb3JtfkZpbHRlckRlZmluaXRpb24uXG4gKlxuICogTm90ZTogVGhpcyBpcyBuZWVkZWQgYnkgbWFrZVF1ZXJ5IGFuZCBoYW5kbGVzIHRoZSBtb3N0IGJhc2ljIGNhc2VzLiBGb3JcbiAqIG9wZXJhdG9ycyBsaWtlIGBub3QgY29udGFpbnNgIG9yIGByYW5nZWAgdGhlcmUgYXJlIHNwZWNpYWwgdHJlYXRtZW50c1xuICogZWxzZXdoZXJlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICogQHBhcmFtIHtzdHJpbmd9IG9wZXJhdG9yXG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gW3VuaXRdXG4gKiBAcmV0dXJuIHtzdHJpbmd9IENRTCBQT1YtZmlsdGVyIGV4cHJlc3Npb24uXG4gKi9cbmNvbnN0IHRvQ1FMID0gKHByb3BlcnR5LCBvcGVyYXRvciwgdmFsdWUsIHVuaXQpID0+IHtcbiAgdmFsdWUgPSB2YWx1ZSB8fCBcIlwiO1xuICB1bml0ID0gdW5pdCB8fCBcIlwiO1xuICBjb25zdCBxdW90ZXMgPSB1bml0ICE9PSBcIlwiID8gXCJcIiA6IHZhbHVlLmluZGV4T2YoJ1wiJykgPT09IC0xID8gJ1wiJyA6IFwiJ1wiO1xuICBpZiAodHJhbnNsYXRvcltvcGVyYXRvcl0pIHtcbiAgICByZXR1cm4gYCgke3Byb3BlcnR5fSAke3RyYW5zbGF0b3Jbb3BlcmF0b3JdfSAke3F1b3Rlc30ke3ZhbHVlfSR7dW5pdH0ke3F1b3Rlc30pYDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCB0cmFuc2xhdGUgJHtwcm9wZXJ0eX0gJHtvcGVyYXRvcn0gZmlsdGVyYCwgdmFsdWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsbG93ZWRfb3BlcmF0b3JzID0ge1xuICBib29sZWFuOiBbXCJpcyB0cnVlXCIsIFwiaXMgZmFsc2VcIl0sXG4gIHRleHQ6IFtcImVxdWFsc1wiLCBcIm5vdCBlcXVhbHNcIiwgXCJjb250YWluc1wiLCBcIm5vdCBjb250YWluc1wiXSxcbiAgaW50ZWdlcjogW1wiPVwiLCBcIuKJoFwiLCBcIuKJpVwiLCBcIuKJpFwiLCBcIjxcIiwgXCI+XCIsIFwicmFuZ2VcIl0sXG4gIGRvdWJsZTogW1wiPVwiLCBcIuKJoFwiLCBcIuKJpVwiLCBcIuKJpFwiLCBcIjxcIiwgXCI+XCIsIFwicmFuZ2VcIl0sXG4gIGRhdGV0aW1lOiBbXG4gICAgXCI9XCIsXG4gICAgXCLiiaBcIixcbiAgICBcIm9uIGRhdGVcIixcbiAgICBcImluXCIsXG4gICAgXCJub3Qgb24gZGF0ZVwiLFxuICAgIFwibm90IGluXCIsXG4gICAgXCJhZnRlciBkYXRlXCIsXG4gICAgXCJiZWZvcmUgZGF0ZVwiLFxuICAgIFwidW50aWwgZGF0ZVwiLFxuICAgIFwic2luY2UgZGF0ZVwiLFxuICBdLFxufTtcblxuLyoqXG4gKiBEaWN0aW9uYXJ5IG9mIGZ1bmN0aW9uczpcbiAqXG4gKiAoZGF0YXR5cGUsb3BlcmF0b3IpIC0+IGZ1bmN0aW9uKHByb3BlcnR5LCBvcGVyYXRvciwgdmFsdWUsIHVuaXQpXG4gKi9cbmNvbnN0IG1ha2VfcXVlcnlfZmlsdGVyID0ge1xuICBib29sZWFuOiB7XG4gICAgXCJpcyB0cnVlXCI6IChwcm9wZXJ0eSkgPT4gYCgke3Byb3BlcnR5fSA9IFRSVUUpYCxcbiAgICBcImlzIGZhbHNlXCI6IChwcm9wZXJ0eSkgPT4gYCgke3Byb3BlcnR5fSA9IEZBTFNFKWAsXG4gIH0sXG4gIHRleHQ6IHtcbiAgICBjb250YWluczogKHByb3BlcnR5LCBvcGVyYXRvciwgdmFsdWUpID0+IGAoJHtwcm9wZXJ0eX0gTElLRSBcIioke3ZhbHVlfSpcIilgLFxuICAgIFwibm90IGVxdWFsc1wiOiAocHJvcGVydHksIG9wZXJhdG9yLCB2YWx1ZSkgPT5cbiAgICAgIGAoTk9UICR7cHJvcGVydHl9ID0gXCIke3ZhbHVlfVwiKWAsXG4gICAgXCJub3QgY29udGFpbnNcIjogKHByb3BlcnR5LCBvcGVyYXRvciwgdmFsdWUpID0+XG4gICAgICBgKE5PVCAke3Byb3BlcnR5fSBMSUtFIFwiKiR7dmFsdWV9KlwiKWAsXG4gIH0sXG4gIGludGVnZXI6IHtcbiAgICByYW5nZTogKHByb3BlcnR5LCBvcGVyYXRvciwgdmFsdWUsIHVuaXQpID0+XG4gICAgICBgKCR7cHJvcGVydHl9ID4gJHt2YWx1ZVswXX0ke3VuaXR9KSBBTkQgKCR7cHJvcGVydHl9IDwgJHt2YWx1ZVsxXX0ke3VuaXR9KWAsXG4gIH0sXG4gIGRvdWJsZToge1xuICAgIHJhbmdlOiAocHJvcGVydHksIG9wZXJhdG9yLCB2YWx1ZSwgdW5pdCkgPT5cbiAgICAgIGAoJHtwcm9wZXJ0eX0gPiAke3ZhbHVlWzBdfSR7dW5pdH0pIEFORCAoJHtwcm9wZXJ0eX0gPCAke3ZhbHVlWzFdfSR7dW5pdH0pYCxcbiAgfSxcbiAgX2RlZmF1bHQ6IHsgX2RlZmF1bHQ6IHRvQ1FMIH0sXG59O1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgdmFsaWQgQ1FMIFBPVi1maWx0ZXIgZXhwcmVzc2lvbnMgYXBwcm9wcmlhdGUgZm9yIGEgdHVwbGVcbiAqIChkYXRhdHlwZSwgcHJvcGVydHksIG9wZXJhdG9yLCB2YWx1ZSwgdW5pdCkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGF0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHlcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRvclxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IFt1bml0XVxuICogQHJldHVybiB7c3RyaW5nfSBDUUwgUE9WLWZpbHRlciBleHByZXNzaW9uLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VRdWVyeUZpbHRlciA9IChkYXRhdHlwZSwgcHJvcGVydHksIG9wZXJhdG9yLCB2YWx1ZSwgdW5pdCkgPT4ge1xuICBpZiAoIWRhdGF0eXBlIHx8ICFvcGVyYXRvcikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgdW5pdCA9IHVuaXQgfHwgXCJcIjtcblxuICBpZiAobWFrZV9xdWVyeV9maWx0ZXJbZGF0YXR5cGVdKSB7XG4gICAgaWYgKFxuICAgICAgbWFrZV9xdWVyeV9maWx0ZXJbZGF0YXR5cGVdW29wZXJhdG9yXSB8fFxuICAgICAgbWFrZV9xdWVyeV9maWx0ZXJbZGF0YXR5cGVdW29wZXJhdG9yXSA9PT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuIG1ha2VfcXVlcnlfZmlsdGVyW2RhdGF0eXBlXVtvcGVyYXRvcl0oXG4gICAgICAgIHByb3BlcnR5LFxuICAgICAgICBvcGVyYXRvcixcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHVuaXRcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG1ha2VfcXVlcnlfZmlsdGVyW2RhdGF0eXBlXVtcIl9kZWZhdWx0XCJdIHx8XG4gICAgICBtYWtlX3F1ZXJ5X2ZpbHRlcltkYXRhdHlwZV1bXCJfZGVmYXVsdFwiXSA9PT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuIG1ha2VfcXVlcnlfZmlsdGVyW2RhdGF0eXBlXVtcIl9kZWZhdWx0XCJdKFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgb3BlcmF0b3IsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICB1bml0XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtYWtlX3F1ZXJ5X2ZpbHRlcltcIl9kZWZhdWx0XCJdW29wZXJhdG9yXSkge1xuICAgIHJldHVybiBtYWtlX3F1ZXJ5X2ZpbHRlcltcIl9kZWZhdWx0XCJdW29wZXJhdG9yXShcbiAgICAgIHByb3BlcnR5LFxuICAgICAgb3BlcmF0b3IsXG4gICAgICB2YWx1ZSxcbiAgICAgIHVuaXRcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VfcXVlcnlfZmlsdGVyW1wiX2RlZmF1bHRcIl1bXCJfZGVmYXVsdFwiXShcbiAgICBwcm9wZXJ0eSxcbiAgICBvcGVyYXRvcixcbiAgICB2YWx1ZSxcbiAgICB1bml0XG4gICk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWNvcmRfdHlwZVxuICogQHJldHVybnMge1F1ZXJ5Rm9ybX5tYWtlUXVlcnlDYWxsYmFja31cbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VRdWVyeVRlbXBsYXRlID1cbiAgKHJlY29yZF90eXBlKSA9PiAoc2VhcmNoX3Rlcm1zLCBhY3RpdmVGaWx0ZXJzKSA9PiB7XG4gICAgdmFyIHF1ZXJ5ID0gXCJGSU5EIFJFQ09SRFwiO1xuICAgIGlmIChyZWNvcmRfdHlwZSkge1xuICAgICAgcXVlcnkgKz0gYCBcIiR7cmVjb3JkX3R5cGV9XCJgO1xuICAgIH1cbiAgICB2YXIgZmlsdGVyX2Nvbm5lY3RvciA9IFwiIFdJVEggXCI7XG4gICAgaWYgKHNlYXJjaF90ZXJtcyAmJiBzZWFyY2hfdGVybXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3BsaXR0ZWRfc2VhcmNoX3Rlcm1zID0gc3BsaXRTZWFyY2hUZXJtcyhzZWFyY2hfdGVybXMpLm1hcChcbiAgICAgICAgKHdvcmQpID0+IGBBIFBST1BFUlRZIExJS0UgJyoke3dvcmQucmVwbGFjZUFsbChcIidcIiwgYFxcXFwnYCl9KidgXG4gICAgICApO1xuICAgICAgaWYgKHNwbGl0dGVkX3NlYXJjaF90ZXJtcy5sZW5ndGgpIHtcbiAgICAgICAgZmlsdGVyX2Nvbm5lY3RvciA9IFwiIEFORCBcIjtcbiAgICAgICAgcXVlcnkgKz0gXCIgV0lUSCBcIiArIHNwbGl0dGVkX3NlYXJjaF90ZXJtcy5qb2luKGZpbHRlcl9jb25uZWN0b3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcnMgPSBhY3RpdmVGaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PlxuICAgICAgbWFrZVF1ZXJ5RmlsdGVyKFxuICAgICAgICBmaWx0ZXIuZGF0YXR5cGUsXG4gICAgICAgIGZpbHRlci5wcm9wZXJ0eSxcbiAgICAgICAgZmlsdGVyLm9wZXJhdG9yLFxuICAgICAgICBmaWx0ZXIudmFsdWUsXG4gICAgICAgIGZpbHRlci51bml0XG4gICAgICApXG4gICAgKTtcblxuICAgIGlmIChmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHF1ZXJ5ICs9IGZpbHRlcl9jb25uZWN0b3IgKyBmaWx0ZXJzLmpvaW4oXCIgQU5EIFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH07XG5cbmNvbnN0IF9zcGxpdFNlYXJjaFRlcm1zUGF0dGVybiA9XG4gIC9cIig/PGRxPlteXCJdKilcIiB8Jyg/PHNxPlteJ10qKScgfCg/PG5xPlteIF0rKS9nO1xuXG4vKipcbiAqIFNwbGl0IGEgcXVlcnkgc3RyaW5nIGludG8gc2luZ2xlIHRlcm1zLlxuICpcbiAqIFRlcm1zIGFyZSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2VzLiBUZXJtcyB3aGljaCBjb250YWluIHdoaXRlIHNwYWNlc1xuICogd2hpY2ggYXJlIHRvIGJlIHByZXNlcnZlZCBtdXN0IGJlIGVuY2xvc2VkIGluIFwiIG9yICcgcXVvdGVzLiBUaGVcbiAqIGVuY2xvc2luZyBxdW90YXRpb24gbWFya3MgYXJlIGJlaW5nIHN0cmlwcGVkLiBDdXJyZW50bHkgbm8gc3VwcG9ydCBmb3JcbiAqIGVzY2FwZSBzZXF1ZW5jZXMgZm9yIHF1b3RhdGlvbiBtYXJrcy5cbiAqXG4gKiBAZnVuY3Rpb24gc3BsaXRTZWFyY2hUZXJtc1xuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5IC0gY29tcGxldGUgcXVlcnkgc3RyaW5nLlxuICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIHRoZSBzZWFyY2ggdGVybXMuXG4gKi9cbmNvbnN0IHNwbGl0U2VhcmNoVGVybXMgPSBmdW5jdGlvbiAocXVlcnkpIHtcbiAgLy8gYWRkIGVtcHR5IHNwYWNlIGF0IHRoZSBlbmQsIHNvIGV2ZXJ5IG1hdGNoaW5nIGdyb3VwIGVuZHMgd2l0aCBpdCAtPiBlYXNpZXIgcmVnZXguIEFsc28sIHVuZGVmaW5lZCBpcyBmaWx0ZXJlZCBvdXRcbiAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgKHF1ZXJ5ICsgXCIgXCIpLm1hdGNoQWxsKF9zcGxpdFNlYXJjaFRlcm1zUGF0dGVybiksXG4gICAgKG0pID0+IG1bMV0gfHwgbVsyXSB8fCBtWzNdXG4gICkuZmlsdGVyKCh3b3JkKSA9PiB3b3JkKTtcbn07XG5cbi8vLy8vLyBUQUJTXG5cbi8qKlxuICogRmlsdGVyRGVmaW5pdGlvbnMgZGVmaW5lIHdoaWNoIGZpbHRlcnMgY2FuIGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2Vycy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBRdWVyeUZvcm1+RmlsdGVyRGVmaW5pdGlvblxuICogQHB1YmxpY1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHByb3BlcnR5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gZGF0YXR5cGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWluXVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFttYXhdXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3N0ZXBdXG4gKiBAcHJvcGVydHkge3N0cmludH0gW3VuaXRdXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2lucHV0VHlwZV1cbiAqL1xuXG4vKipcbiAqIFF1ZXJ5RmlsdGVycyBzcGVjaWZ5IHRoZSBjdXJyZW50IGZpbHRlcnMgYSB1c2VyIGhhcyBzcGVjaWZpZWQgdXNpbmcgdGhlXG4gKiBRdWVyeUZvcm0uXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gUXVlcnlGb3JtflF1ZXJ5RmlsdGVyXG4gKiBAcHVibGljXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcHJvcGVydHlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkYXRhdHlwZVxuICogQHByb3BlcnR5IHtzdGlybmd9IG9wZXJhdG9yXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdW5pdFxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB2YWx1ZVxuICovXG5cbi8qKlxuICogV2hlbiB0aGUgcXVlcnkgZm9ybSBpcyBiZWluZyBzdWJtaXR0ZWQsIHRoaXMgY2FsbGJhY2sgZ2VuZXJhdGVzIHRoZSBxdWVyeVxuICogZnJvbSB0aGUgc2VhcmNoIHRlcm1zIGFuZCBhY3RpdmUgRmlsdGVycy5cbiAqXG4gKiBAY2FsbGJhY2sgUXVlcnlGb3Jtfm1ha2VRdWVyeUNhbGxiYWNrXG4gKiBAcHVibGljXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VhcmNoVGVybXNcbiAqIEBwYXJhbSB7UXVlcnlGb3JtflF1ZXJ5RmlsdGVyW119IGFjdGl2ZUZpbHRlcnNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBnZW5lcmF0ZWQgQ1FMIHF1ZXJ5LlxuICovXG5cbi8qKlxuICogQ3JlYXRlIGEgdGFiIG9iamVjdC5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBwdWJsaWNcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICogQHBhcmFtIHtzdHJpbmd9IHJlY29yZFR5cGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbGFiZWxdXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Rlc2NyaXB0aW9uXVxuICogQHBhcmFtIHtRdWVyeUZvcm1+bWFrZVF1ZXJ5Q2FsbGJhY2t9IFttYWtlUXVlcnlDYWxsYmFjaz1tYWtlUXVlcnlUZW1wbGF0ZShpZCldXG4gKiBAcGFyYW0ge1F1ZXJ5Rm9ybX5GaWx0ZXJEZWZpbml0aW9uW119IFtmaWx0ZXJEZWZpbml0aW9ucz1bXV1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhYihcbiAgaWQsXG4gIHJlY29yZFR5cGUsXG4gIGxhYmVsLFxuICBkZXNjcmlwdGlvbixcbiAgbWFrZVF1ZXJ5Q2FsbGJhY2ssXG4gIGZpbHRlckRlZmluaXRpb25zXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogaWQsXG4gICAgcmVjb3JkVHlwZTogcmVjb3JkVHlwZSxcbiAgICBsYWJlbDogbGFiZWwgfHwgcmVjb3JkVHlwZSB8fCBpZCxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIGRlc2NyaXB0aW9uIHx8IGBTaG93IG9ubHkgcmVzdWx0cyBvZiB0eXBlICR7bGFiZWwgfHwgcmVjb3JkVHlwZSB8fCBpZH1gLFxuICAgIG1ha2VRdWVyeTogbWFrZVF1ZXJ5Q2FsbGJhY2sgfHwgbWFrZVF1ZXJ5VGVtcGxhdGUocmVjb3JkVHlwZSksXG4gICAgZmlsdGVyRGVmaW5pdGlvbnM6IGZpbHRlckRlZmluaXRpb25zIHx8IFtdLFxuICB9O1xufVxuXG4vLy8vLy8gREVCVUdHSU5HIEFORCBURVNUSU5HXG5cbi8qKlxuICogQ3JlYXRlIHNvbWUgcXVlcnkgcGFuZWwgdGFicyBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLlxuICovXG5leHBvcnQgY29uc3QgZ2V0X3Rlc3RfdGFicyA9ICgpID0+IHtcbiAgY29uc3QgbWFrZUZpbHRlckRlZmluaXRpb25zID0gKGlkKSA9PiBbXG4gICAgeyBwcm9wZXJ0eTogaWQgKyBcIi10ZXh0LXByb3BlcnR5XCIsIGRhdGF0eXBlOiBcInRleHRcIiB9LFxuICAgIHsgcHJvcGVydHk6IGlkICsgXCItZGF0ZXRpbWUtcHJvcGVydHlcIiwgZGF0YXR5cGU6IFwiZGF0ZXRpbWVcIiB9LFxuICAgIHsgcHJvcGVydHk6IGlkICsgXCItaW50ZWdlci1wcm9wZXJ0eVwiLCBkYXRhdHlwZTogXCJpbnRlZ2VyXCIgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogaWQgKyBcIi1kb3VibGUtcHJvcGVydHlcIixcbiAgICAgIGRhdGF0eXBlOiBcImRvdWJsZVwiLFxuICAgICAgbWluOiBcIi01MFwiLFxuICAgICAgbWF4OiBcIjUwXCIsXG4gICAgICB1bml0OiBcIm1cIixcbiAgICB9LFxuICAgIHsgcHJvcGVydHk6IGlkICsgXCItYm9vbGVhbi1wcm9wZXJ0eVwiLCBkYXRhdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogYFwiJHtpZH0tcmVmZXJlbmNlLXByb3BlcnR5XCIuXCJzdWItcHJvcGVydHlcImAsXG4gICAgICBsYWJlbDogYHN1Yi1wcm9wZXJ0eSBvZiAke2lkfS1yZWZlcmVuY2UtcHJvcGVydHlgLFxuICAgICAgZGF0YXR5cGU6IFwidGV4dFwiLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiBbXG4gICAgY3JlYXRlVGFiKFxuICAgICAgXCJhbGxcIixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFwiQWxsXCIsXG4gICAgICBcIlNob3cgYWxsIG1hdGNoaW5nIHJlc3VsdHNcIixcbiAgICAgIG1ha2VRdWVyeVRlbXBsYXRlKFwiXCIpLFxuICAgICAgbWFrZUZpbHRlckRlZmluaXRpb25zKFwiYWxsXCIpXG4gICAgKSxcbiAgICBjcmVhdGVUYWIoXG4gICAgICBcImRhdGFzZXRcIixcbiAgICAgIFwiRGF0YXNldFwiLFxuICAgICAgXCJEYXRhc2V0XCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBtYWtlUXVlcnlUZW1wbGF0ZShcIkRhdGFzZXRcIiksXG4gICAgICBtYWtlRmlsdGVyRGVmaW5pdGlvbnMoXCJkYXRhc2V0XCIpXG4gICAgKSxcbiAgICBjcmVhdGVUYWIoXG4gICAgICBcImV2ZW50XCIsXG4gICAgICBcIkV2ZW50XCIsXG4gICAgICBcIkV2ZW50XCIsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBtYWtlUXVlcnlUZW1wbGF0ZShcIkV2ZW50XCIpLFxuICAgICAgbWFrZUZpbHRlckRlZmluaXRpb25zKFwiZXZlbnRcIilcbiAgICApLFxuICAgIGNyZWF0ZVRhYihcbiAgICAgIFwicGVyc29uXCIsXG4gICAgICBcIlBlcnNvblwiLFxuICAgICAgXCJQZXJzb25cIixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG1ha2VRdWVyeVRlbXBsYXRlKFwiUGVyc29uXCIpLFxuICAgICAgbWFrZUZpbHRlckRlZmluaXRpb25zKFwicGVyc29uXCIpXG4gICAgKSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRfdGVzdF9zdWdnZXN0aW9ucyA9IGFzeW5jIChpc0NxbCwgZnVsbCwgcHJlZml4KSA9PiB7XG4gIGNvbnN0IGFjID0gbmV3IEF1dG9Db21wbGV0aW9uKFxuICAgICgpID0+IFtcbiAgICAgIHByZWZpeCArIFwiLXN1Z2dlc3Rpb24xXCIsXG4gICAgICBwcmVmaXggKyBcIi1zdWdnZXN0aW9uMlwiLFxuICAgICAgcHJlZml4ICsgXCItc3VnZ2VzdGlvbjNcIixcbiAgICAgIHByZWZpeCArIFwiLXN1Z2dlc3Rpb240XCIsXG4gICAgICBwcmVmaXggKyBcIi1zdWdnZXN0aW9uNVwiLFxuICAgICAgcHJlZml4ICsgXCItc3VnZ2VzdGlvbjZcIixcbiAgICAgIHByZWZpeCArIFwiLXN1Z2dlc3Rpb243XCIsXG4gICAgICBwcmVmaXggKyBcIi1zdWdnZXN0aW9uOFwiLFxuICAgICAgcHJlZml4ICsgXCItc3VnZ2VzdGlvbjlcIixcbiAgICAgIHByZWZpeCArIFwiLXN1Z2dlc3Rpb24xMFwiLFxuICAgICAgcHJlZml4ICsgXCItc3VnZ2VzdGlvbjExXCIsXG4gICAgICBwcmVmaXggKyBcIi1zdWdnZXN0aW9uMTJcIixcbiAgICAgIHByZWZpeCArIFwiLXN1Z2dlc3Rpb24xM1wiLFxuICAgICAgcHJlZml4ICsgXCItc3VnZ2VzdGlvbjE0XCIsXG4gICAgICBwcmVmaXggKyBcIi1zdWdnZXN0aW9uMTVcIixcbiAgICBdLFxuICAgIENRTF9XT1JEU1xuICApO1xuICByZXR1cm4gYWMuZ2V0U3VnZ2VzdGlvbnMoaXNDcWwsIGZ1bGwsIHByZWZpeCk7XG59O1xuIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgdGhlIENhb3NEQiBQcm9qZWN0LlxuICpcbiAqIENvcHlyaWdodCAoQykgMjAyMi0yMDIzIFRpbW0gRml0c2NoZW4gPHQuZml0c2NoZW5AaW5kaXNjYWxlLmNvbT5cbiAqIENvcHlyaWdodCAoQykgMjAyMi0yMDIzIEluZGlTY2FsZSBHbWJIIDxpbmZvQGluZGlzY2FsZS5jb20+XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9wcm9wLXR5cGVzICovXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlTWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZVJlZHVjZXIsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ29udGV4dCxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBMb2FkaW5nSW5mbyB9IGZyb20gXCIuL0xvYWRpbmdJbmZvXCI7XG5pbXBvcnQgZ2V0Q2FyZXRDb29yZGluYXRlcyBmcm9tIFwidGV4dGFyZWEtY2FyZXRcIjtcbmltcG9ydCB7IEF1dG9Db21wbGV0aW9uIH0gZnJvbSBcIi4vUXVlcnlGb3JtLmhlbHBlcnNcIjtcbmltcG9ydCB7XG4gIGFsbG93ZWRfb3BlcmF0b3JzLFxuICBpc1NlbGVjdCBhcyBmSXNTZWxlY3QsXG4gIGlzQ3FsIGFzIGZJc0NxbCxcbiAgZ2V0X3Rlc3Rfc3VnZ2VzdGlvbnMsXG4gIGdldF90ZXN0X3RhYnMsXG59IGZyb20gXCIuL1F1ZXJ5Rm9ybS5oZWxwZXJzXCI7XG5cbmNvbnN0IFF1ZXJ5Rm9ybUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHt9KTtcblxuY29uc3QgUmFuZ2VGaWx0ZXJJbnB1dCA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG9uQ2hhbmdlLCB2YWx1ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IG9uQ2hhbmdlTWluID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGNvbnN0IG5ld0UgPSB7IHRhcmdldDogeyB2YWx1ZTogW2UudGFyZ2V0LnZhbHVlLCB2YWx1ZVsxXV0gfSB9O1xuICAgICAgb25DaGFuZ2UobmV3RSk7XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIHZhbHVlXVxuICApO1xuICBjb25zdCBvbkNoYW5nZU1heCA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBjb25zdCBuZXdFID0geyB0YXJnZXQ6IHsgdmFsdWU6IFt2YWx1ZVswXSwgZS50YXJnZXQudmFsdWVdIH0gfTtcbiAgICAgIG9uQ2hhbmdlKG5ld0UpO1xuICAgIH0sXG4gICAgW29uQ2hhbmdlLCB2YWx1ZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgdmFsdWU9e3Byb3BzLnZhbHVlWzBdfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VNaW59XG4gICAgICAgIG1heD17cHJvcHMudmFsdWVbMV19XG4gICAgICAvPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibXgtMVwiPnRvPC9zcGFuPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIHZhbHVlPXtwcm9wcy52YWx1ZVsxXX1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlTWF4fVxuICAgICAgICBtaW49e3Byb3BzLnZhbHVlWzBdfVxuICAgICAgLz5cbiAgICAgIHtwcm9wcy51bml0RWxlbWVudH1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmNvbnN0IEZpbHRlcklucHV0ID0gKHtcbiAgbWluLFxuICBtYXgsXG4gIHN0ZXAsXG4gIHZhbHVlLFxuICBzZXRWYWx1ZSxcbiAgZGF0YXR5cGUsXG4gIG9wZXJhdG9yLFxuICB1bml0LFxuICBpbnB1dHR5cGUsXG59KSA9PiB7XG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHNldFZhbHVlKGUudGFyZ2V0LnZhbHVlKSwgW3NldFZhbHVlXSk7XG4gIGlmICghZGF0YXR5cGUgfHwgIW9wZXJhdG9yKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc05hbWU6IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiLFxuICAgIG9uQ2hhbmdlOiBvbkNoYW5nZSxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbWluOiBtaW4sXG4gICAgbWF4OiBtYXgsXG4gIH07XG4gIGlmIChpbnB1dHR5cGUpIHtcbiAgICBkZWZhdWx0UHJvcHMudHlwZSA9IGlucHV0dHlwZTtcbiAgfVxuICBpZiAoc3RlcCkge1xuICAgIGRlZmF1bHRQcm9wcy5zdGVwID0gc3RlcDtcbiAgfVxuXG4gIGNvbnN0IHVuaXRFbGVtZW50ID0gdW5pdCAmJiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwibXMtMVwiIHRpdGxlPVwiVGhlIHVuaXRcIj5cbiAgICAgIHt1bml0fVxuICAgIDwvc3Bhbj5cbiAgKTtcblxuICBjb25zdCBpbnB1dEVsZW1lbnQgPSB7XG4gICAgYm9vbGVhbjogeyBfZGVmYXVsdDogbnVsbCB9LFxuICAgIGludGVnZXI6IHtcbiAgICAgIF9kZWZhdWx0OiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGlucHV0IHsuLi5kZWZhdWx0UHJvcHN9IHR5cGU9XCJudW1iZXJcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgICAge3VuaXRFbGVtZW50fVxuICAgICAgICA8Lz5cbiAgICAgICksXG4gICAgICByYW5nZTogKFxuICAgICAgICA8UmFuZ2VGaWx0ZXJJbnB1dFxuICAgICAgICAgIHVuaXRFbGVtZW50PXt1bml0RWxlbWVudH1cbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxuICAgICAgICAgIHN0ZXA9XCIxXCJcbiAgICAgICAgLz5cbiAgICAgICksXG4gICAgfSxcbiAgICBkb3VibGU6IHtcbiAgICAgIF9kZWZhdWx0OiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGlucHV0IHN0ZXA9XCIwLjAwMVwiIHsuLi5kZWZhdWx0UHJvcHN9IHR5cGU9XCJudW1iZXJcIiAvPlxuICAgICAgICAgIHt1bml0RWxlbWVudH1cbiAgICAgICAgPC8+XG4gICAgICApLFxuICAgICAgcmFuZ2U6IChcbiAgICAgICAgPFJhbmdlRmlsdGVySW5wdXRcbiAgICAgICAgICB1bml0RWxlbWVudD17dW5pdEVsZW1lbnR9XG4gICAgICAgICAgc3RlcD1cIjAuMDAxXCJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxuICAgICAgICAvPlxuICAgICAgKSxcbiAgICB9LFxuICAgIF9kZWZhdWx0OiB7IF9kZWZhdWx0OiA8aW5wdXQgey4uLmRlZmF1bHRQcm9wc30gLz4gfSxcbiAgfTtcblxuICBpZiAoaW5wdXRFbGVtZW50W2RhdGF0eXBlXSkge1xuICAgIGlmIChcbiAgICAgIGlucHV0RWxlbWVudFtkYXRhdHlwZV1bb3BlcmF0b3JdIHx8XG4gICAgICBpbnB1dEVsZW1lbnRbZGF0YXR5cGVdW29wZXJhdG9yXSA9PT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuIGlucHV0RWxlbWVudFtkYXRhdHlwZV1bb3BlcmF0b3JdO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBpbnB1dEVsZW1lbnRbZGF0YXR5cGVdW1wiX2RlZmF1bHRcIl0gfHxcbiAgICAgIGlucHV0RWxlbWVudFtkYXRhdHlwZV1bXCJfZGVmYXVsdFwiXSA9PT0gbnVsbFxuICAgICkge1xuICAgICAgcmV0dXJuIGlucHV0RWxlbWVudFtkYXRhdHlwZV1bXCJfZGVmYXVsdFwiXTtcbiAgICB9XG4gIH1cblxuICBpZiAoaW5wdXRFbGVtZW50W1wiX2RlZmF1bHRcIl1bb3BlcmF0b3JdKSB7XG4gICAgcmV0dXJuIGlucHV0RWxlbWVudFtcIl9kZWZhdWx0XCJdW29wZXJhdG9yXTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dEVsZW1lbnRbXCJfZGVmYXVsdFwiXVtcIl9kZWZhdWx0XCJdO1xufTtcblxuZnVuY3Rpb24gQ3FsSGludCgpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9XCJjYW9zZGItZi1xdWVyeS1jcWwtaGludFwiXG4gICAgICB0aXRsZT1cIllvdSBhcmUgdXNpbmcgdGhlIGV4cGVydCBzZWFyY2ggbW9kZS4gRW50ZXIgYSB2YWxpZCBDUUwgUXVlcnkuXCJcbiAgICA+XG4gICAgICBDUUxcbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUXVlcnlGb3JtU2luZ2xlVGFiKHsgdGFiLCBzZXRBY3RpdmVUYWIsIGlzQWN0aXZlVGFiIH0pIHtcbiAgY29uc3QgYWN0aXZhdGVUYWIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFpc0FjdGl2ZVRhYikge1xuICAgICAgc2V0QWN0aXZlVGFiKHRhYik7XG4gICAgfVxuICB9LCBbdGFiLCBzZXRBY3RpdmVUYWIsIGlzQWN0aXZlVGFiXSk7XG5cbiAgY29uc3QgY2xhc3NOYW1lID0gXCJjYW9zZGItZi1xdWVyeS10YWJcIiArIChpc0FjdGl2ZVRhYiA/IFwiIGFjdGl2ZVwiIDogXCJcIik7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB0aXRsZT17dGFiLmRlc2NyaXB0aW9ufVxuICAgICAgdGFiSW5kZXg9e2lzQWN0aXZlVGFiID8gXCItMVwiIDogXCIwXCJ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uQ2xpY2s9e2lzQWN0aXZlVGFiID8gdW5kZWZpbmVkIDogYWN0aXZhdGVUYWJ9XG4gICAgPlxuICAgICAge3RhYi5sYWJlbH1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gQWRkVGFiRmlsdGVyT3BlcmF0b3Ioe1xuICBmaWx0ZXIsXG4gIGZpbHRlcklkeCxcbiAgdXBkYXRlRmlsdGVyLFxuICByZXN0b3JlT3BlcmF0b3IsXG4gIHJlc3RvcmVWYWx1ZSxcbn0pIHtcbiAgY29uc3QgW29wZXJhdG9yLCBzZXRPcGVyYXRvcl0gPSB1c2VTdGF0ZShcbiAgICBmaWx0ZXIub3BlcmF0b3IgfHwgYWxsb3dlZF9vcGVyYXRvcnNbZmlsdGVyLmRhdGF0eXBlXVswXVxuICApO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGZpbHRlci52YWx1ZSB8fCBcIlwiKTtcblxuICBjb25zdCBpbnB1dEVsZW1lbnQgPSAoXG4gICAgPEZpbHRlcklucHV0XG4gICAgICBkYXRhdHlwZT17ZmlsdGVyLmRhdGF0eXBlfVxuICAgICAgb3BlcmF0b3I9e29wZXJhdG9yfVxuICAgICAgc2V0VmFsdWU9e3NldFZhbHVlfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgdW5pdD17ZmlsdGVyLnVuaXR9XG4gICAgICBtaW49e2ZpbHRlci5taW59XG4gICAgICBtYXg9e2ZpbHRlci5tYXh9XG4gICAgICBzdGVwPXtmaWx0ZXIuc3RlcH1cbiAgICAgIGlucHV0dHlwZT17ZmlsdGVyLmlucHV0dHlwZX1cbiAgICAvPlxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc3RvcmVPcGVyYXRvciAmJiBvcGVyYXRvciAhPT0gcmVzdG9yZU9wZXJhdG9yKSB7XG4gICAgICBzZXRPcGVyYXRvcihyZXN0b3JlT3BlcmF0b3IpO1xuICAgIH1cbiAgfSwgW3Jlc3RvcmVPcGVyYXRvciwgb3BlcmF0b3JdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZXN0b3JlVmFsdWUgJiYgdmFsdWUgIT09IHJlc3RvcmVWYWx1ZSkge1xuICAgICAgc2V0VmFsdWUocmVzdG9yZVZhbHVlKTtcbiAgICB9XG4gIH0sIFtyZXN0b3JlVmFsdWUsIHZhbHVlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3BlcmF0b3IgIT09IGZpbHRlci5vcGVyYXRvcikge1xuICAgICAgdXBkYXRlRmlsdGVyKGZpbHRlcklkeCwge1xuICAgICAgICByZXN0b3JlT3BlcmF0b3I6IHVuZGVmaW5lZCxcbiAgICAgICAgb3BlcmF0b3I6IG9wZXJhdG9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbb3BlcmF0b3IsIGZpbHRlci5vcGVyYXRvciwgZmlsdGVySWR4LCB1cGRhdGVGaWx0ZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh2YWx1ZSAhPT0gZmlsdGVyLnZhbHVlKSB7XG4gICAgICB1cGRhdGVGaWx0ZXIoZmlsdGVySWR4LCB7XG4gICAgICAgIHJlc3RvcmVWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgZmlsdGVyLnZhbHVlLCBmaWx0ZXJJZHgsIHVwZGF0ZUZpbHRlcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1zbVwiXG4gICAgICAgICAgdmFsdWU9e29wZXJhdG9yfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0T3BlcmF0b3IoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICA+XG4gICAgICAgICAge2FsbG93ZWRfb3BlcmF0b3JzW2ZpbHRlci5kYXRhdHlwZV0ubWFwKChvcCwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8b3B0aW9uIGtleT17aWR4fT57b3B9PC9vcHRpb24+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleFwiPntpbnB1dEVsZW1lbnR9PC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEZpbHRlclNlbGVjdCh7IHNlbGVjdGVkLCBmaWx0ZXJEZWZpbml0aW9ucywgb25DaGFuZ2UsIHRpdGxlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8c2VsZWN0XG4gICAgICB0aXRsZT17dGl0bGV9XG4gICAgICBjbGFzc05hbWU9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1zbVwiXG4gICAgICB2YWx1ZT17c2VsZWN0ZWR9XG4gICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgPlxuICAgICAge2ZpbHRlckRlZmluaXRpb25zLm1hcCgoZmlsLCBpZHgpID0+IChcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT17ZmlsLnByb3BlcnR5fSBzdHlsZT17ZmlsLnN0eWxlfSBrZXk9e2lkeH0+XG4gICAgICAgICAge2ZpbC5sYWJlbCB8fCBmaWwucHJvcGVydHl9XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgKSl9XG4gICAgPC9zZWxlY3Q+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEFkZEZpbHRlcih7IGZpbHRlckRlZmluaXRpb25zLCBhZGRGaWx0ZXIgfSkge1xuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBhZGRGaWx0ZXIoZS50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW2FkZEZpbHRlcl1cbiAgKTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPEZpbHRlclNlbGVjdFxuICAgICAgICBmaWx0ZXJEZWZpbml0aW9ucz17ZmlsdGVyRGVmaW5pdGlvbnMuY29uY2F0KHtcbiAgICAgICAgICBwcm9wZXJ0eTogXCJfX2FkZF9maWx0ZXJfX1wiLFxuICAgICAgICAgIGxhYmVsOiBcIkFkZCBGaWx0ZXJcIixcbiAgICAgICAgICBzdHlsZTogeyBkaXNwbGF5OiBcIm5vbmVcIiB9LFxuICAgICAgICB9KX1cbiAgICAgICAgc2VsZWN0ZWQ9XCJfX2FkZF9maWx0ZXJfX1wiXG4gICAgICAgIHRpdGxlPVwiQWRkIEZpbHRlclwiXG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEZpbHRlcih7XG4gIGZpbHRlckRlZmluaXRpb25zLFxuICBmaWx0ZXJJZHgsXG4gIGFjdGl2ZUZpbHRlcnMsXG4gIHVwZGF0ZUZpbHRlcixcbiAgc2V0UHJvcGVydHksXG4gIHJlbW92ZUZpbHRlcixcbn0pIHtcbiAgY29uc3QgYWN0aXZlRmlsdGVyID0gYWN0aXZlRmlsdGVycyAmJiBhY3RpdmVGaWx0ZXJzW2ZpbHRlcklkeF07XG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIHNldFByb3BlcnR5KGZpbHRlcklkeCwgZS50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFByb3BlcnR5LCBmaWx0ZXJJZHhdXG4gICk7XG4gIGNvbnN0IHJlbW92ZVRoaXMgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiByZW1vdmVGaWx0ZXIoZmlsdGVySWR4KSxcbiAgICBbcmVtb3ZlRmlsdGVyLCBmaWx0ZXJJZHhdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYW9zZGItZi1xdWVyeS1maWx0ZXItcHJvcGVydHktc2VsZWN0b3JcIj5cbiAgICAgICAgPEZpbHRlclNlbGVjdFxuICAgICAgICAgIGZpbHRlckRlZmluaXRpb25zPXtmaWx0ZXJEZWZpbml0aW9uc31cbiAgICAgICAgICBzZWxlY3RlZD17YWN0aXZlRmlsdGVyLnByb3BlcnR5fVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEFkZFRhYkZpbHRlck9wZXJhdG9yXG4gICAgICAgIHJlc3RvcmVWYWx1ZT17YWN0aXZlRmlsdGVyLnJlc3RvcmVWYWx1ZX1cbiAgICAgICAgcmVzdG9yZU9wZXJhdG9yPXthY3RpdmVGaWx0ZXIucmVzdG9yZU9wZXJhdG9yfVxuICAgICAgICB1cGRhdGVGaWx0ZXI9e3VwZGF0ZUZpbHRlcn1cbiAgICAgICAgZmlsdGVySWR4PXtmaWx0ZXJJZHh9XG4gICAgICAgIGZpbHRlcj17YWN0aXZlRmlsdGVyfVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1lbmQgZmxleC1ncm93LTFcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtc2Vjb25kYXJ5XCJcbiAgICAgICAgICBvbkNsaWNrPXtyZW1vdmVUaGlzfVxuICAgICAgICA+XG4gICAgICAgICAgUmVtb3ZlIEZpbHRlclxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApO1xufVxuXG5mdW5jdGlvbiBRdWVyeUZvcm1UYWJGaWx0ZXJzSW5uZXIoe1xuICBmaWx0ZXJEZWZpbml0aW9ucyxcbiAgYWN0aXZlRmlsdGVycyxcbiAgc2V0QWN0aXZlRmlsdGVycyxcbn0pIHtcbiAgY29uc3QgcmVtb3ZlRmlsdGVyID0gdXNlQ2FsbGJhY2soXG4gICAgKGZpbHRlcklkeCkgPT4ge1xuICAgICAgc2V0QWN0aXZlRmlsdGVycyhhY3RpdmVGaWx0ZXJzLmZpbHRlcigoZmlsLCBpZHgpID0+IGlkeCAhPT0gZmlsdGVySWR4KSk7XG4gICAgfSxcbiAgICBbYWN0aXZlRmlsdGVycywgc2V0QWN0aXZlRmlsdGVyc11cbiAgKTtcblxuICBjb25zdCB1cGRhdGVGaWx0ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoZmlsdGVySWR4LCB1cGRhdGUpID0+IHtcbiAgICAgIGNvbnN0IG5ld0FjdGl2ZUZpbHRlcnMgPSBbXS5jb25jYXQoYWN0aXZlRmlsdGVycyk7XG5cbiAgICAgIG5ld0FjdGl2ZUZpbHRlcnNbZmlsdGVySWR4XSA9IHtcbiAgICAgICAgLi4ubmV3QWN0aXZlRmlsdGVyc1tmaWx0ZXJJZHhdLFxuICAgICAgICAuLi51cGRhdGUsXG4gICAgICB9O1xuXG4gICAgICBzZXRBY3RpdmVGaWx0ZXJzKG5ld0FjdGl2ZUZpbHRlcnMpO1xuICAgIH0sXG4gICAgW2FjdGl2ZUZpbHRlcnMsIHNldEFjdGl2ZUZpbHRlcnNdXG4gICk7XG5cbiAgY29uc3Qgc2V0UHJvcGVydHkgPSB1c2VDYWxsYmFjayhcbiAgICAoZmlsdGVySWR4LCBwcm9wZXJ0eU5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5RmlsdGVyID0gZmlsdGVyRGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgICAoZmlsKSA9PiBmaWwucHJvcGVydHkgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKVswXTtcbiAgICAgIHVwZGF0ZUZpbHRlcihmaWx0ZXJJZHgsIHtcbiAgICAgICAgcmVzdG9yZVZhbHVlOiBcIlwiLFxuICAgICAgICByZXN0b3JlT3BlcmF0b3I6IGFsbG93ZWRfb3BlcmF0b3JzW3Byb3BlcnR5RmlsdGVyLmRhdGF0eXBlXVswXSxcbiAgICAgICAgcHJvcGVydHk6IHByb3BlcnR5TmFtZSxcbiAgICAgICAgZGF0YXR5cGU6IHByb3BlcnR5RmlsdGVyLmRhdGF0eXBlLFxuICAgICAgICB1bml0OiBwcm9wZXJ0eUZpbHRlci51bml0LFxuICAgICAgICBtaW46IHByb3BlcnR5RmlsdGVyLm1pbixcbiAgICAgICAgbWF4OiBwcm9wZXJ0eUZpbHRlci5tYXgsXG4gICAgICAgIGZpbHRlcjogcHJvcGVydHlGaWx0ZXIsXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFt1cGRhdGVGaWx0ZXIsIGZpbHRlckRlZmluaXRpb25zXVxuICApO1xuXG4gIGNvbnN0IGFkZEZpbHRlciA9IHVzZUNhbGxiYWNrKFxuICAgIChwcm9wZXJ0eU5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5RmlsdGVyID0gZmlsdGVyRGVmaW5pdGlvbnMuZmlsdGVyKFxuICAgICAgICAoZmlsKSA9PiBmaWwucHJvcGVydHkgPT09IHByb3BlcnR5TmFtZVxuICAgICAgKVswXTtcbiAgICAgIHNldEFjdGl2ZUZpbHRlcnMoXG4gICAgICAgIGFjdGl2ZUZpbHRlcnMuY29uY2F0KHtcbiAgICAgICAgICBwcm9wZXJ0eTogcHJvcGVydHlOYW1lLFxuICAgICAgICAgIGRhdGF0eXBlOiBwcm9wZXJ0eUZpbHRlci5kYXRhdHlwZSxcbiAgICAgICAgICB1bml0OiBwcm9wZXJ0eUZpbHRlci51bml0LFxuICAgICAgICAgIG1pbjogcHJvcGVydHlGaWx0ZXIubWluLFxuICAgICAgICAgIG1heDogcHJvcGVydHlGaWx0ZXIubWF4LFxuICAgICAgICAgIGZpbHRlcjogcHJvcGVydHlGaWx0ZXIsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0sXG4gICAgW2FjdGl2ZUZpbHRlcnMsIHNldEFjdGl2ZUZpbHRlcnMsIGZpbHRlckRlZmluaXRpb25zXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthY3RpdmVGaWx0ZXJzLm1hcCgoZmlsLCBpZHgpID0+IChcbiAgICAgICAgPEZpbHRlclxuICAgICAgICAgIGtleT17aWR4fVxuICAgICAgICAgIGZpbHRlcklkeD17aWR4fVxuICAgICAgICAgIGZpbHRlckRlZmluaXRpb25zPXtmaWx0ZXJEZWZpbml0aW9uc31cbiAgICAgICAgICBhY3RpdmVGaWx0ZXJzPXthY3RpdmVGaWx0ZXJzfVxuICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcnM9e3NldEFjdGl2ZUZpbHRlcnN9XG4gICAgICAgICAgdXBkYXRlRmlsdGVyPXt1cGRhdGVGaWx0ZXJ9XG4gICAgICAgICAgc2V0UHJvcGVydHk9e3NldFByb3BlcnR5fVxuICAgICAgICAgIHJlbW92ZUZpbHRlcj17cmVtb3ZlRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleFwiPlxuICAgICAgICA8QWRkRmlsdGVyXG4gICAgICAgICAgZmlsdGVyRGVmaW5pdGlvbnM9e2ZpbHRlckRlZmluaXRpb25zfVxuICAgICAgICAgIGFkZEZpbHRlcj17YWRkRmlsdGVyfVxuICAgICAgICAvPlxuICAgICAgICB7YWN0aXZlRmlsdGVycy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIHRpdGxlPVwiU2VhcmNoIHdpdGggZmlsdGVyc1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG1zLWF1dG9cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFNlYXJjaFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFF1ZXJ5Rm9ybVRhYkZpbHRlcnMoe1xuICBmaWx0ZXJEZWZpbml0aW9ucyxcbiAgYWN0aXZlRmlsdGVycyxcbiAgc2V0QWN0aXZlRmlsdGVycyxcbn0pIHtcbiAgY29uc3QgW3Nob3dGaWx0ZXJzLCBzZXRTaG93RmlsdGVyc10gPSB1c2VTdGF0ZShhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+IDApO1xuXG4gIGNvbnN0IHRpdGxlID0gc2hvd0ZpbHRlcnNcbiAgICA/IFwiQ2FuY2VsIEFkdmFuY2VkIEZpbHRlcmluZ1wiXG4gICAgOiBcIkFkdmFuY2VkIEZpbHRlcmluZ1wiO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dGaWx0ZXJzKCFzaG93RmlsdGVycyl9XG4gICAgICAgIGNsYXNzTmFtZT1cImJ0biBtcy1hdXRvIGNhb3NkYi1mLXF1ZXJ5LWZpbHRlcnMtdG9nZ2xlXCJcbiAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgPlxuICAgICAgICB7c2hvd0ZpbHRlcnMgPyAoXG4gICAgICAgICAgPGkgY2xhc3NOYW1lPVwiYmkgYmkteFwiPjwvaT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8aSBjbGFzc05hbWU9XCJiaSBiaS1maWx0ZXJcIj48L2k+XG4gICAgICAgICl9XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIHtzaG93RmlsdGVycyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2Fvc2RiLWYtcXVlcnktdGFiLWZpbHRlcnMgdy0xMDBcIj5cbiAgICAgICAgICA8UXVlcnlGb3JtVGFiRmlsdGVyc0lubmVyXG4gICAgICAgICAgICBmaWx0ZXJEZWZpbml0aW9ucz17ZmlsdGVyRGVmaW5pdGlvbnN9XG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJzPXthY3RpdmVGaWx0ZXJzfVxuICAgICAgICAgICAgc2V0QWN0aXZlRmlsdGVycz17c2V0QWN0aXZlRmlsdGVyc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFF1ZXJ5Rm9ybVRhYnMoe1xuICB0YWJzLFxuICBzZXRBY3RpdmVUYWIsXG4gIGFjdGl2ZVRhYixcbiAgYWN0aXZlRmlsdGVycyxcbiAgc2V0QWN0aXZlRmlsdGVycyxcbn0pIHtcbiAgY29uc3QgaGFzRmlsdGVycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBhY3RpdmVUYWIgJiZcbiAgICAgIGFjdGl2ZVRhYi5maWx0ZXJEZWZpbml0aW9ucyAmJlxuICAgICAgYWN0aXZlVGFiLmZpbHRlckRlZmluaXRpb25zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9LCBbYWN0aXZlVGFiXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJjYW9zZGItZi1xdWVyeS10YWItbGlzdCBkLWZsZXggZmxleC13cmFwXCI+XG4gICAgICB7dGFicy5tYXAoKHRhYikgPT4gKFxuICAgICAgICA8UXVlcnlGb3JtU2luZ2xlVGFiXG4gICAgICAgICAgaXNBY3RpdmVUYWI9e2FjdGl2ZVRhYi5pZCA9PT0gdGFiLmlkfVxuICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFifVxuICAgICAgICAgIGtleT17dGFiLmxhYmVsfVxuICAgICAgICAgIHRhYj17dGFifVxuICAgICAgICAvPlxuICAgICAgKSl9e1wiIFwifVxuICAgICAge2hhc0ZpbHRlcnMgJiYgKFxuICAgICAgICA8UXVlcnlGb3JtVGFiRmlsdGVyc1xuICAgICAgICAgIHsuLi5hY3RpdmVUYWJ9XG4gICAgICAgICAgYWN0aXZlRmlsdGVycz17YWN0aXZlRmlsdGVyc31cbiAgICAgICAgICBzZXRBY3RpdmVGaWx0ZXJzPXtzZXRBY3RpdmVGaWx0ZXJzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUXVlcnlTdWJtaXRCdXR0b24oeyBpc1N1Ym1pdHRlZCwgYWN0aXZlIH0pIHtcbiAgaWYgKGlzU3VibWl0dGVkKSB7XG4gICAgcmV0dXJuIDxMb2FkaW5nSW5mbyBjbGFzc05hbWU9XCJhbGlnbi1zZWxmLWNlbnRlclwiIHNpemU9XCJzbVwiIC8+O1xuICB9XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvbiBhcmlhLWxhYmVsPVwic2VhcmNoXCIgdGl0bGU9XCJTZWFyY2hcIiB0eXBlPVwic3VibWl0XCIgZGlzYWJsZWQ9eyFhY3RpdmV9PlxuICAgICAgPGkgY2xhc3NOYW1lPVwiYmkgYmktc2VhcmNoXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5mdW5jdGlvbiBTaW5nbGVRdWVyeUZvcm1TdWdnZXN0aW9uc0l0ZW0oe1xuICBzdWdnZXN0aW9uLFxuICBpc0hpZ2hsaWdodGVkLFxuICBvbk1vdXNlRW50ZXIsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGxpXG4gICAgICBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn1cbiAgICAgIGNsYXNzTmFtZT17aXNIaWdobGlnaHRlZCA/IFwiaGlnaGxpZ2h0XCIgOiBcIlwifVxuICAgID5cbiAgICAgIHtzdWdnZXN0aW9uLm9yaWdpbmFsfVxuICAgIDwvbGk+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFF1ZXJ5Rm9ybVN1Z2dlc3Rpb25zSXRlbXMoe1xuICBzdWdnZXN0aW9ucyxcbiAgaGlnaGxpZ2h0SW5kZXgsXG4gIHNlbGVjdFN1Z2dlc3Rpb24sXG59KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtzdWdnZXN0aW9ucy5tYXAoKHN1ZywgaW5kZXgpID0+IChcbiAgICAgICAgPFNpbmdsZVF1ZXJ5Rm9ybVN1Z2dlc3Rpb25zSXRlbVxuICAgICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4gc2VsZWN0U3VnZ2VzdGlvbihpbmRleCl9XG4gICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICBpc0hpZ2hsaWdodGVkPXtoaWdobGlnaHRJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgc3VnZ2VzdGlvbj17c3VnfVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgPC8+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFF1ZXJ5Rm9ybVN1Z2dlc3Rpb25zKHtcbiAgdW5zZWxlY3RTdWdnZXN0aW9ucyxcbiAgc2VsZWN0U3VnZ2VzdGlvbixcbiAgaGlnaGxpZ2h0SW5kZXgsXG4gIHN1Z2dlc3Rpb25zLFxuICBnZXRJbnB1dFJlZixcbiAgd29yZFBvcyxcbiAgd29yZCxcbiAgeE9mZnNldCxcbn0pIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGl0ZW1zID0gKFxuICAgIDxRdWVyeUZvcm1TdWdnZXN0aW9uc0l0ZW1zXG4gICAgICBzZWxlY3RTdWdnZXN0aW9uPXtzZWxlY3RTdWdnZXN0aW9ufVxuICAgICAgaGlnaGxpZ2h0SW5kZXg9e2hpZ2hsaWdodEluZGV4fVxuICAgICAgc3VnZ2VzdGlvbnM9e3N1Z2dlc3Rpb25zfVxuICAgIC8+XG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGlnaGxpZ2h0SW5kZXggPiAtMSkge1xuICAgICAgcmVmLmN1cnJlbnQuc2Nyb2xsKDAsIDI0ICogaGlnaGxpZ2h0SW5kZXggLSA0OCk7XG4gICAgfVxuICB9LCBbaGlnaGxpZ2h0SW5kZXhdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpbnB1dFJlZiA9IGdldElucHV0UmVmKCk7XG4gICAgdmFyIGNvb3JkcyA9IGdldENhcmV0Q29vcmRpbmF0ZXMoaW5wdXRSZWYuY3VycmVudCwgd29yZFBvcyk7XG4gICAgY29uc3QgaW5wdXRXaWR0aCA9IGlucHV0UmVmLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgaWYgKGNvb3Jkcy5sZWZ0ID4gaW5wdXRXaWR0aCkge1xuICAgICAgY29uc3QgcmlnaHRPZmZzZXQgPVxuICAgICAgICBnZXRDYXJldENvb3JkaW5hdGVzKGlucHV0UmVmLmN1cnJlbnQsIHdvcmRQb3MgKyB3b3JkLmxlbmd0aCkubGVmdCAtXG4gICAgICAgIGNvb3Jkcy5sZWZ0O1xuXG4gICAgICByZWYuY3VycmVudC5zdHlsZS5tYXJnaW5MZWZ0ID0gYCR7aW5wdXRXaWR0aCAtIHJpZ2h0T2Zmc2V0fXB4YDtcbiAgICB9IGVsc2UgaWYgKGNvb3Jkcy5sZWZ0ID4gOCkge1xuICAgICAgcmVmLmN1cnJlbnQuc3R5bGUubWFyZ2luTGVmdCA9IGAke2Nvb3Jkcy5sZWZ0IC0gOH1weGA7XG4gICAgfVxuICB9LCBbd29yZCwgZ2V0SW5wdXRSZWYsIHdvcmRQb3NdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIG9uTW91c2VMZWF2ZT17dW5zZWxlY3RTdWdnZXN0aW9uc31cbiAgICAgIHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiB4T2Zmc2V0IH19XG4gICAgICBjbGFzc05hbWU9XCJjYW9zZGItZi1xdWVyeS1mb3JtLXN1Zy1jb250YWluZXJcIlxuICAgID5cbiAgICAgIDxvbCByZWY9e3JlZn0gY2xhc3NOYW1lPVwiY2Fvc2RiLWYtcXVlcnktZm9ybS1zdWdcIj5cbiAgICAgICAge2l0ZW1zfVxuICAgICAgPC9vbD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIHZhciBjdXJzb3JfcG9zLCB3b3JkX3Bvcywgd29yZCwgb3BlbiwgdW5yZXNvbHZlZF9zdWdnZXN0aW9ucztcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgXCJvbkZvY3VzXCI6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgcmVmb2N1czogZmFsc2UsIGZvY3VzOiB0cnVlIH07XG4gICAgY2FzZSBcIm9uQmx1clwiOlxuICAgICAgaWYgKHN0YXRlLm9uQ2xpY2tWYWx1ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHZhbHVlOiBzdGF0ZS5vbkNsaWNrVmFsdWUsXG4gICAgICAgICAgY3Vyc29yUG9zOiBzdGF0ZS5vbkNsaWNrQ3Vyc29yUG9zLFxuICAgICAgICAgIG9uQ2xpY2tDdXJzb3JQb3M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBvbkNsaWNrVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICByZWZvY3VzOiB0cnVlLFxuICAgICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGZvY3VzOiBmYWxzZSB9O1xuICAgIGNhc2UgXCJvbkNoYW5nZVwiOlxuICAgICAgY3Vyc29yX3BvcyA9IGFjdGlvbi50YXJnZXQuc2VsZWN0aW9uRW5kO1xuICAgICAgd29yZF9wb3MgPSBhY3Rpb24udGFyZ2V0LnZhbHVlLnNsaWNlKDAsIGN1cnNvcl9wb3MpLmxhc3RJbmRleE9mKFwiIFwiKSArIDE7XG4gICAgICB3b3JkID0gYWN0aW9uLnRhcmdldC52YWx1ZS5zbGljZSh3b3JkX3BvcywgY3Vyc29yX3Bvcyk7XG4gICAgICBvcGVuID0gd29yZC5sZW5ndGggPiAyO1xuICAgICAgdW5yZXNvbHZlZF9zdWdnZXN0aW9ucyA9XG4gICAgICAgIG9wZW4gJiYgYWN0aW9uLmdldFN1Z2dlc3Rpb25zQ2FsbGJhY2tcbiAgICAgICAgICA/IGFjdGlvbi5nZXRTdWdnZXN0aW9uc0NhbGxiYWNrKFxuICAgICAgICAgICAgICBmSXNDcWwoYWN0aW9uLnRhcmdldC52YWx1ZSksXG4gICAgICAgICAgICAgIGFjdGlvbi50YXJnZXQudmFsdWUsXG4gICAgICAgICAgICAgIHdvcmRcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG51bGw7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBvbkNsaWNrVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgb25DbGlja0N1cnNvclBvczogdW5kZWZpbmVkLFxuICAgICAgICBoaWdobGlnaHRJbmRleDogLTEsXG4gICAgICAgIGN1cnNvclBvczogY3Vyc29yX3BvcyxcbiAgICAgICAgY3Vyc29yUG9zTm9Db21wbGV0aW9uOiBjdXJzb3JfcG9zLFxuICAgICAgICB3b3JkUG9zOiB3b3JkX3BvcyxcbiAgICAgICAgdmFsdWU6IGFjdGlvbi50YXJnZXQudmFsdWUsXG4gICAgICAgIHZhbHVlTm9Db21wbGV0aW9uOiBhY3Rpb24udGFyZ2V0LnZhbHVlLFxuICAgICAgICByZWZvY3VzOiBmYWxzZSxcbiAgICAgICAgd29yZDogd29yZCxcbiAgICAgICAgb3Blbjogb3BlbixcbiAgICAgICAgdW5yZXNvbHZlZFN1Z2dlc3Rpb25zOiB1bnJlc29sdmVkX3N1Z2dlc3Rpb25zLFxuICAgICAgfTtcbiAgICBjYXNlIFwicmVzb2x2ZVN1Z2dlc3Rpb25zXCI6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgc3VnZ2VzdGlvbnM6IGFjdGlvbi5zdWdnZXN0aW9ucyB9O1xuICAgIGNhc2UgXCJvbkFycm93RG93blwiOlxuICAgICAgaWYgKFxuICAgICAgICBzdGF0ZS5vcGVuICYmXG4gICAgICAgIHN0YXRlLnN1Z2dlc3Rpb25zICYmXG4gICAgICAgIHN0YXRlLmhpZ2hsaWdodEluZGV4IDwgc3RhdGUuc3VnZ2VzdGlvbnMubGVuZ3RoIC0gMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG5ld0hpZ2hsaWdodEluZGV4ID0gc3RhdGUuaGlnaGxpZ2h0SW5kZXggKyAxO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9XG4gICAgICAgICAgc3RhdGUudmFsdWVOb0NvbXBsZXRpb24uc2xpY2UoMCwgc3RhdGUud29yZFBvcykgK1xuICAgICAgICAgIHN0YXRlLnN1Z2dlc3Rpb25zW25ld0hpZ2hsaWdodEluZGV4XS5lc2NhcGVkICtcbiAgICAgICAgICBzdGF0ZS52YWx1ZU5vQ29tcGxldGlvbi5zbGljZShzdGF0ZS5jdXJzb3JQb3NOb0NvbXBsZXRpb24pO1xuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3MgPVxuICAgICAgICAgIHN0YXRlLndvcmRQb3MgKyBzdGF0ZS5zdWdnZXN0aW9uc1tuZXdIaWdobGlnaHRJbmRleF0uZXNjYXBlZC5sZW5ndGg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgY3Vyc29yUG9zOiBuZXdDdXJzb3JQb3MsXG4gICAgICAgICAgdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgIGhpZ2hsaWdodEluZGV4OiBuZXdIaWdobGlnaHRJbmRleCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ1bnNlbGVjdFN1Z2dlc3Rpb25zXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgb25DbGlja0N1cnNvclBvczogdW5kZWZpbmVkLFxuICAgICAgICBvbkNsaWNrVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgY2FzZSBcInNlbGVjdFN1Z2dlc3Rpb25cIjpcbiAgICAgIGlmIChhY3Rpb24uaW5kZXggPiAtMSAmJiBhY3Rpb24uaW5kZXggPCBzdGF0ZS5zdWdnZXN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPVxuICAgICAgICAgIHN0YXRlLnZhbHVlTm9Db21wbGV0aW9uLnNsaWNlKDAsIHN0YXRlLndvcmRQb3MpICtcbiAgICAgICAgICBzdGF0ZS5zdWdnZXN0aW9uc1thY3Rpb24uaW5kZXhdLmVzY2FwZWQgK1xuICAgICAgICAgIHN0YXRlLnZhbHVlTm9Db21wbGV0aW9uLnNsaWNlKHN0YXRlLmN1cnNvclBvc05vQ29tcGxldGlvbikgK1xuICAgICAgICAgIFwiIFwiO1xuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3MgPVxuICAgICAgICAgIHN0YXRlLndvcmRQb3MgKyBzdGF0ZS5zdWdnZXN0aW9uc1thY3Rpb24uaW5kZXhdLmVzY2FwZWQubGVuZ3RoICsgMTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBvbkNsaWNrVmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgICAgIG9uQ2xpY2tDdXJzb3JQb3M6IG5ld0N1cnNvclBvcyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJyZXN0b3JlXCI6XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgdmFsdWU6IGFjdGlvbi52YWx1ZSB9O1xuICAgIGNhc2UgXCJvbkFycm93VXBcIjpcbiAgICAgIGlmIChzdGF0ZS5vcGVuICYmIHN0YXRlLmhpZ2hsaWdodEluZGV4ID4gLTEpIHtcbiAgICAgICAgY29uc3QgbmV3SGlnaGxpZ2h0SW5kZXggPSBzdGF0ZS5oaWdobGlnaHRJbmRleCAtIDE7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID1cbiAgICAgICAgICBuZXdIaWdobGlnaHRJbmRleCA8IDBcbiAgICAgICAgICAgID8gc3RhdGUudmFsdWVOb0NvbXBsZXRpb25cbiAgICAgICAgICAgIDogc3RhdGUudmFsdWVOb0NvbXBsZXRpb24uc2xpY2UoMCwgc3RhdGUud29yZFBvcykgK1xuICAgICAgICAgICAgICBzdGF0ZS5zdWdnZXN0aW9uc1tuZXdIaWdobGlnaHRJbmRleF0uZXNjYXBlZCArXG4gICAgICAgICAgICAgIHN0YXRlLnZhbHVlTm9Db21wbGV0aW9uLnNsaWNlKHN0YXRlLmN1cnNvclBvc05vQ29tcGxldGlvbik7XG4gICAgICAgIGNvbnN0IG5ld0N1cnNvclBvcyA9XG4gICAgICAgICAgbmV3SGlnaGxpZ2h0SW5kZXggPCAwXG4gICAgICAgICAgICA/IHN0YXRlLmN1cnNvclBvc05vQ29tcGxldGlvblxuICAgICAgICAgICAgOiBzdGF0ZS53b3JkUG9zICtcbiAgICAgICAgICAgICAgc3RhdGUuc3VnZ2VzdGlvbnNbbmV3SGlnaGxpZ2h0SW5kZXhdLmVzY2FwZWQubGVuZ3RoO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGN1cnNvclBvczogbmV3Q3Vyc29yUG9zLFxuICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICBoaWdobGlnaHRJbmRleDogbmV3SGlnaGxpZ2h0SW5kZXgsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBRdWVyeUZvcm1UZXh0RmllbGQoeyBzZXRRdWVyeVN0cmluZywgaXNDcWwsIHJlc3RvcmVRdWVyeVN0cmluZyB9KSB7XG4gIGNvbnN0IHsgZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjaywgaXNTdWJtaXR0ZWQgfSA9IHVzZUNvbnRleHQoUXVlcnlGb3JtQ29udGV4dCk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZigpO1xuICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZVJlZHVjZXIocmVkdWNlciwge1xuICAgIHJlZm9jdXM6IGZhbHNlLFxuICAgIHZhbHVlOiBcIlwiLFxuICAgIGZvY3VzOiBmYWxzZSxcbiAgICBvcGVuOiBmYWxzZSxcbiAgICB3b3JkOiBcIlwiLFxuICAgIGhpZ2hsaWdodEluZGV4OiAtMSxcbiAgICB1bnJlc29sdmVkU3VnZ2VzdGlvbnM6IG51bGwsXG4gICAgc3VnZ2VzdGlvbnM6IG51bGwsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UXVlcnlTdHJpbmcoc3RhdGUudmFsdWUpO1xuICB9LCBbc3RhdGUudmFsdWUsIHNldFF1ZXJ5U3RyaW5nXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVzdG9yZVF1ZXJ5U3RyaW5nKSB7XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6IFwicmVzdG9yZVwiLCB2YWx1ZTogcmVzdG9yZVF1ZXJ5U3RyaW5nIH0pO1xuICAgIH1cbiAgfSwgW3Jlc3RvcmVRdWVyeVN0cmluZ10pO1xuXG4gIGNvbnN0IG9uRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcIm9uRm9jdXNcIiB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9uQmx1ciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwib25CbHVyXCIgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBvbkFycm93VXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcIm9uQXJyb3dVcFwiIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25BcnJvd0Rvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcIm9uQXJyb3dEb3duXCIgfSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IFwib25DaGFuZ2VcIixcbiAgICAgICAgdGFyZ2V0OiBlLnRhcmdldCxcbiAgICAgICAgZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjazogZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjayxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2dldFN1Z2dlc3Rpb25zQ2FsbGJhY2tdXG4gICk7XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBvbkFycm93RG93bihlKTtcbiAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIG9uQXJyb3dVcChlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkFycm93VXAsIG9uQXJyb3dEb3duXVxuICApO1xuXG4gIGNvbnN0IHVuc2VsZWN0U3VnZ2VzdGlvbnMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiBcInVuc2VsZWN0U3VnZ2VzdGlvbnNcIiB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNlbGVjdFN1Z2dlc3Rpb24gPSB1c2VDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IFwic2VsZWN0U3VnZ2VzdGlvblwiLCBpbmRleDogaW5kZXggfSk7XG4gIH0sIFtdKTtcblxuICB2YXIgY2xhc3NOYW1lID0gXCJjYW9zZGItZi1xdWVyeS1mb3JtXCI7XG4gIGlmIChzdGF0ZS5vcGVuKSB7XG4gICAgY2xhc3NOYW1lICs9IFwiIG9wZW5cIjtcbiAgfVxuICBpZiAoc3RhdGUuZm9jdXMpIHtcbiAgICBjbGFzc05hbWUgKz0gXCIgZm9jdXNcIjtcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXRlLnVucmVzb2x2ZWRTdWdnZXN0aW9ucykge1xuICAgICAgc3RhdGUudW5yZXNvbHZlZFN1Z2dlc3Rpb25zLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNvbHZlU3VnZ2VzdGlvbnNcIiwgc3VnZ2VzdGlvbnM6IHN1Z2dlc3Rpb25zIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc3RhdGUudW5yZXNvbHZlZFN1Z2dlc3Rpb25zXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnB1dFJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHN0YXRlLmN1cnNvclBvcywgc3RhdGUuY3Vyc29yUG9zKTtcbiAgfSwgW3N0YXRlLnZhbHVlLCBzdGF0ZS5jdXJzb3JQb3NdKTtcblxuICBjb25zdCBnZXRJbnB1dFJlZiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXR1cm4gaW5wdXRSZWY7XG4gIH0sIFtpbnB1dFJlZl0pO1xuXG4gIC8vIGhhbmRsZSBmb2N1cyBhZnRlciByZXNldFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdGF0ZS5yZWZvY3VzKSB7XG4gICAgICBpbnB1dFJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgfVxuICB9LCBbc3RhdGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4XCI+XG4gICAgICAgIHtpc0NxbCAmJiA8Q3FsSGludCAvPn1cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgZGlzYWJsZWQ9e2lzU3VibWl0dGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtZ3Jvdy0xXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiZW50ZXIgc2VhcmNoIHRlcm1zXCJcbiAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgIHRpdGxlPVwiRW50ZXIgc2VhcmNoIHRlcm1zXCJcbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uQmx1cj17b25CbHVyfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICB2YWx1ZT17c3RhdGUudmFsdWV9XG4gICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgPjwvaW5wdXQ+XG4gICAgICAgIDxRdWVyeVN1Ym1pdEJ1dHRvblxuICAgICAgICAgIGFjdGl2ZT17c3RhdGUudmFsdWUubGVuZ3RoID4gMH1cbiAgICAgICAgICBpc1N1Ym1pdHRlZD17aXNTdWJtaXR0ZWR9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzdGF0ZS5vcGVuICYmIHN0YXRlLnN1Z2dlc3Rpb25zICYmIChcbiAgICAgICAgPFF1ZXJ5Rm9ybVN1Z2dlc3Rpb25zXG4gICAgICAgICAgdW5zZWxlY3RTdWdnZXN0aW9ucz17dW5zZWxlY3RTdWdnZXN0aW9uc31cbiAgICAgICAgICBzZWxlY3RTdWdnZXN0aW9uPXtzZWxlY3RTdWdnZXN0aW9ufVxuICAgICAgICAgIHdvcmQ9e3N0YXRlLndvcmR9XG4gICAgICAgICAgd29yZFBvcz17c3RhdGUud29yZFBvc31cbiAgICAgICAgICBnZXRJbnB1dFJlZj17Z2V0SW5wdXRSZWZ9XG4gICAgICAgICAgc3VnZ2VzdGlvbnM9e3N0YXRlLnN1Z2dlc3Rpb25zfVxuICAgICAgICAgIGhpZ2hsaWdodEluZGV4PXtzdGF0ZS5oaWdobGlnaHRJbmRleH1cbiAgICAgICAgICB4T2Zmc2V0PXtpc0NxbCA/IDQ0IDogMH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIHN0b3JlKGFjdGl2ZVRhYiwgYWN0aXZlRmlsdGVycywgcXVlcnlTdHJpbmcpIHtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwicXVlcnkuYWN0aXZlVGFiXCIpO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJxdWVyeS5hY3RpdmVGaWx0ZXJzXCIpO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJxdWVyeS5xdWVyeVN0cmluZ1wiKTtcbiAgaWYgKGFjdGl2ZVRhYikge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbXCJxdWVyeS5hY3RpdmVUYWJcIl0gPSBKU09OLnN0cmluZ2lmeShhY3RpdmVUYWIpO1xuICB9XG4gIGlmIChhY3RpdmVGaWx0ZXJzICYmIGFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbXCJxdWVyeS5hY3RpdmVGaWx0ZXJzXCJdID0gSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycyk7XG4gIH1cbiAgaWYgKHF1ZXJ5U3RyaW5nICYmIHF1ZXJ5U3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlW1wicXVlcnkucXVlcnlTdHJpbmdcIl0gPSBxdWVyeVN0cmluZztcbiAgfVxufVxuXG5mdW5jdGlvbiByZXN0b3JlKHRhYnMpIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHJlc3RvcmVBY3RpdmVUYWI6XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlW1wicXVlcnkuYWN0aXZlVGFiXCJdICYmXG4gICAgICBKU09OLnBhcnNlKHdpbmRvdy5sb2NhbFN0b3JhZ2VbXCJxdWVyeS5hY3RpdmVUYWJcIl0pLFxuICAgIHJlc3RvcmVBY3RpdmVGaWx0ZXJzOlxuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZVtcInF1ZXJ5LmFjdGl2ZUZpbHRlcnNcIl0gJiZcbiAgICAgIEpTT04ucGFyc2Uod2luZG93LmxvY2FsU3RvcmFnZVtcInF1ZXJ5LmFjdGl2ZUZpbHRlcnNcIl0pLFxuICAgIHJlc3RvcmVRdWVyeVN0cmluZzogd2luZG93LmxvY2FsU3RvcmFnZVtcInF1ZXJ5LnF1ZXJ5U3RyaW5nXCJdIHx8IFwiXCIsXG4gIH07XG4gIGlmIChcbiAgICByZXN1bHQucmVzdG9yZUFjdGl2ZVRhYiAmJlxuICAgIHRhYnMuZmlsdGVyKCh0YWIpID0+IHRhYi5pZCA9PT0gcmVzdWx0LnJlc3RvcmVBY3RpdmVUYWIuaWQpLmxlbmd0aCA9PT0gMFxuICApIHtcbiAgICAvLyBjb25maWcgY2hhbmdlZFxuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInF1ZXJ5LmFjdGl2ZVRhYlwiKTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJxdWVyeS5hY3RpdmVGaWx0ZXJzXCIpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInF1ZXJ5LnF1ZXJ5U3RyaW5nXCIpO1xuICAgIHJldHVybiB7fTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUXVlcnlGb3JtKHtcbiAgc3VibWl0Q2FsbGJhY2ssXG4gIHRhYnMsXG4gIGRlZmF1bHRUYWIsXG4gIGdldFN1Z2dlc3Rpb25zQ2FsbGJhY2ssXG4gIHJlc3RvcmVDYWxsYmFjayxcbiAgc3RvcmVDYWxsYmFjayxcbiAgcmVzdG9yZSxcbn0pIHtcbiAgY29uc3QgeyByZXN0b3JlUXVlcnlTdHJpbmcsIHJlc3RvcmVBY3RpdmVGaWx0ZXJzLCByZXN0b3JlQWN0aXZlVGFiIH0gPSByZXN0b3JlXG4gICAgPyByZXN0b3JlQ2FsbGJhY2sodGFicylcbiAgICA6IHt9O1xuICBjb25zdCBbaXNTdWJtaXR0ZWQsIHNldElzU3VibWl0dGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3F1ZXJ5U3RyaW5nLCBzZXRRdWVyeVN0cmluZ10gPSB1c2VTdGF0ZShcIlwiKTtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlKFxuICAgIHJlc3RvcmVBY3RpdmVUYWIgfHwgdGFic1tkZWZhdWx0VGFiXVxuICApO1xuICBjb25zdCBbYWN0aXZlRmlsdGVycywgc2V0QWN0aXZlRmlsdGVyc10gPSB1c2VTdGF0ZShcbiAgICByZXN0b3JlQWN0aXZlRmlsdGVycyB8fCBbXVxuICApO1xuXG4gIGNvbnN0IG9uU3VibWl0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldElzU3VibWl0dGVkKHRydWUpO1xuICAgICAgc3RvcmVDYWxsYmFjayhhY3RpdmVUYWIsIGFjdGl2ZUZpbHRlcnMsIHF1ZXJ5U3RyaW5nKTtcbiAgICAgIGNvbnN0IGFjdGl2ZVRhYkRlZiA9IHRhYnMuZmlsdGVyKCh0KSA9PiB0LmlkID09PSBhY3RpdmVUYWIuaWQpWzBdIHx8IHt9O1xuICAgICAgY29uc3QgaXNDcWwgPSBmSXNDcWwocXVlcnlTdHJpbmcpO1xuICAgICAgY29uc3QgaXNTZWxlY3QgPSBpc0NxbCAmJiBmSXNTZWxlY3QocXVlcnlTdHJpbmcpO1xuICAgICAgY29uc3QgbWFrZVF1ZXJ5ID1cbiAgICAgICAgaXNDcWwgfHwgIWFjdGl2ZVRhYkRlZi5tYWtlUXVlcnkgPyAoeCkgPT4geCA6IGFjdGl2ZVRhYkRlZi5tYWtlUXVlcnk7XG4gICAgICBjb25zdCBwYWdlU2l6ZSA9IGlzU2VsZWN0ID8gLTEgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHJldHVybiBzdWJtaXRDYWxsYmFjayhtYWtlUXVlcnkocXVlcnlTdHJpbmcsIGFjdGl2ZUZpbHRlcnMpLCBwYWdlU2l6ZSk7XG4gICAgfSxcbiAgICBbdGFicywgYWN0aXZlVGFiLCBhY3RpdmVGaWx0ZXJzLCBxdWVyeVN0cmluZywgc3VibWl0Q2FsbGJhY2ssIHN0b3JlQ2FsbGJhY2tdXG4gICk7XG5cbiAgY29uc3QgaXNDcWwgPSBmSXNDcWwocXVlcnlTdHJpbmcpO1xuXG4gIGNvbnN0IGNvbnRleHQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNTdWJtaXR0ZWQ6IGlzU3VibWl0dGVkLFxuICAgICAgcXVlcnlTdHJpbmc6IHF1ZXJ5U3RyaW5nLFxuICAgICAgZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjazogZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjayxcbiAgICB9O1xuICB9LCBbcXVlcnlTdHJpbmcsIGdldFN1Z2dlc3Rpb25zQ2FsbGJhY2ssIGlzU3VibWl0dGVkXSk7XG5cbiAgY29uc3Qgc2V0QWN0aXZlVGFiUmVzZXRGaWx0ZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgKHRhYikgPT4ge1xuICAgICAgc2V0QWN0aXZlVGFiKHRhYik7XG4gICAgICBzZXRBY3RpdmVGaWx0ZXJzKFtdKTtcbiAgICB9LFxuICAgIFtzZXRBY3RpdmVGaWx0ZXJzLCBzZXRBY3RpdmVUYWJdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybSBvblN1Ym1pdD17b25TdWJtaXR9PlxuICAgICAgPFF1ZXJ5Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHR9PlxuICAgICAgICA8UXVlcnlGb3JtVGV4dEZpZWxkXG4gICAgICAgICAgcmVzdG9yZVF1ZXJ5U3RyaW5nPXtyZXN0b3JlUXVlcnlTdHJpbmd9XG4gICAgICAgICAgaXNDcWw9e2lzQ3FsfVxuICAgICAgICAgIHNldFF1ZXJ5U3RyaW5nPXtzZXRRdWVyeVN0cmluZ31cbiAgICAgICAgLz5cbiAgICAgICAgeyFpc0NxbCAmJiAoXG4gICAgICAgICAgPFF1ZXJ5Rm9ybVRhYnNcbiAgICAgICAgICAgIHRhYnM9e3RhYnN9XG4gICAgICAgICAgICBhY3RpdmVUYWI9e2FjdGl2ZVRhYn1cbiAgICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFiUmVzZXRGaWx0ZXJzfVxuICAgICAgICAgICAgYWN0aXZlRmlsdGVycz17YWN0aXZlRmlsdGVyc31cbiAgICAgICAgICAgIHNldEFjdGl2ZUZpbHRlcnM9e3NldEFjdGl2ZUZpbHRlcnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvUXVlcnlGb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L2Zvcm0+XG4gICk7XG59XG5cblF1ZXJ5Rm9ybS5BdXRvQ29tcGxldGlvbiA9IEF1dG9Db21wbGV0aW9uO1xuXG4vLyBEZWZhdWx0cyBhcmUgc3VpdGFibGUgZm9yIHRlc3RpbmcgYnV0IG5vdCBmb3IgcHJvZHVjdGlvbi5cblF1ZXJ5Rm9ybS5kZWZhdWx0UHJvcHMgPSB7XG4gIHN1Ym1pdENhbGxiYWNrOiAocXVlcnlTdHJpbmcsIHBhZ2VTaXplKSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJzdWJtaXQgcXVlcnk6IFwiLCBxdWVyeVN0cmluZywgcGFnZVNpemUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgYWxlcnQocXVlcnlTdHJpbmcpO1xuICAgICAgLy8gcmVsb2FkIHBhZ2VcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9LCAxMDAwKTtcbiAgfSxcbiAgdGFiczogZ2V0X3Rlc3RfdGFicygpLFxuICBkZWZhdWx0VGFiOiAwLFxuICBnZXRTdWdnZXN0aW9uc0NhbGxiYWNrOiBnZXRfdGVzdF9zdWdnZXN0aW9ucyxcbiAgcmVzdG9yZUNhbGxiYWNrOiByZXN0b3JlLFxuICBzdG9yZUNhbGxiYWNrOiBzdG9yZSxcbiAgcmVzdG9yZTogZmFsc2UsXG59O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwicmVhY3QtYm9vdHN0cmFwXCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgeyBRdWVyeUZvcm0gfSBmcm9tIFwiLi9RdWVyeUZvcm1cIjtcblxubGV0IGxhc3RRdWVyeUZvcm1IZWlnaHQgPSAwO1xubGV0IHNjcm9sbERvd25UaW1lb3V0ID0gdW5kZWZpbmVkO1xuXG5jb25zdCB0b2dnbGVRdWVyeVBhbmVsID0gKGNvbnRhaW5lcikgPT4ge1xuICBpZiAodHlwZW9mIHNjcm9sbERvd25UaW1lb3V0ID09PSBcIm51bWJlclwiKSB7XG4gICAgY2xlYXJUaW1lb3V0KHNjcm9sbERvd25UaW1lb3V0KTtcbiAgfVxuICBjb25zdCB7IHRvcCwgYm90dG9tIH0gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGlmIChsYXN0UXVlcnlGb3JtSGVpZ2h0ICE9PSBib3R0b20gLSB0b3ApIHtcbiAgICAvLyBPbmx5IHRoZSBoZWlnaHQgb2YgdGhlIGZvcm0gaGFzIGNoYW5nZWQuIFRoaXMgaXMgbm90IGFjdHVhbGx5IGEgc2Nyb2xsIGV2ZW50LlxuICAgIGxhc3RRdWVyeUZvcm1IZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2Nyb2xsRG93blRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBzY3JvbGxEb3duVGltZW91dCA9IHVuZGVmaW5lZDtcbiAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID4gbGFzdFF1ZXJ5Rm9ybUhlaWdodCkge1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJjb25kZW5zZWRcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKFwiY29uZGVuc2VkXCIpO1xuICAgIH1cbiAgfSwgMjAwKTtcbn07XG5cbmNvbnN0IFF1ZXJ5UGFuZWwgPSAocHJvcHMpID0+IHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBwcm9wcy5zY3JvbGxIYW5kbGVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgcHJvcHMuc2Nyb2xsSGFuZGxlcik7XG4gICAgfTtcbiAgfSwgW3Byb3BzLnNjcm9sbEhhbmRsZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXI+XG4gICAgICA8UXVlcnlGb3JtIHsuLi5wcm9wc30gLz5cbiAgICA8L0NvbnRhaW5lcj5cbiAgKTtcbn07XG5cblF1ZXJ5UGFuZWwucHJvcFR5cGVzID0ge1xuICBzY3JvbGxIYW5kbGVyOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCB7IFF1ZXJ5UGFuZWwsIHRvZ2dsZVF1ZXJ5UGFuZWwgfTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEJyYW5kaW5nIH0gZnJvbSBcIi4uL0JyYW5kaW5nXCI7XG5pbXBvcnQgeyBOYXZiYXIsIENvbnRhaW5lciwgTmF2LCBOYXZEcm9wZG93biB9IGZyb20gXCJyZWFjdC1ib290c3RyYXBcIjtcbmltcG9ydCB7IFVzZXJDb21wb25lbnQgfSBmcm9tIFwiLi9Vc2VyQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBRdWVyeVBhbmVsLCB0b2dnbGVRdWVyeVBhbmVsIH0gZnJvbSBcIi4vUXVlcnlQYW5lbFwiO1xuXG5jbGFzcyBOYXZpZ2F0aW9uTWFuYWdlckltcGwge1xuICBjb25zdHJ1Y3Rvcih7IGl0ZW1zLCBicmFuZCwgdXNlcl9jb21wb25lbnQgfSkge1xuICAgIHRoaXMuaXRlbXMgPSBpdGVtcyB8fCBbXTtcbiAgICB0aGlzLmJyYW5kID0gYnJhbmQgfHwgQnJhbmRpbmcubmFtZTtcbiAgICB0aGlzLnVwZGF0ZV9saXN0ZW5lcnMgPSBbXTtcbiAgICB0aGlzLnVzZXJfY29tcG9uZW50ID0gdXNlcl9jb21wb25lbnQ7XG4gIH1cbiAgcmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcihsaXN0ZW5lcikge1xuICAgIHRoaXMudXBkYXRlX2xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgfVxuICBhZGRMaW5rKGxpbmspIHtcbiAgICB0aGlzLml0ZW1zLnB1c2gobGluayk7XG4gICAgdGhpcy5ub3RpZnlVcGRhdGVMaXN0ZW5lcnMoKTtcbiAgfVxuICBub3RpZnlVcGRhdGVMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy51cGRhdGVfbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbk1hbmFnZXIgPSBuZXcgTmF2aWdhdGlvbk1hbmFnZXJJbXBsKHtcbiAgaXRlbXM6IFtcbiAgICA8TmF2Lkxpbmsga2V5PVwiMFwiIGhyZWY9XCIjYWN0aW9uMVwiPlxuICAgICAgSG9tZVxuICAgIDwvTmF2Lkxpbms+LFxuICAgIDxOYXYuTGluayBrZXk9XCIxXCIgaHJlZj1cIiNhY3Rpb24yXCI+XG4gICAgICBMaW5rXG4gICAgPC9OYXYuTGluaz4sXG4gICAgPE5hdkRyb3Bkb3duIGtleT1cIjJcIiB0aXRsZT1cIkxpbmtcIj5cbiAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9XCIjYWN0aW9uM1wiPkFjdGlvbjwvTmF2RHJvcGRvd24uSXRlbT5cbiAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9XCIjYWN0aW9uNFwiPkFub3RoZXIgYWN0aW9uPC9OYXZEcm9wZG93bi5JdGVtPlxuICAgICAgPE5hdkRyb3Bkb3duLkRpdmlkZXIgLz5cbiAgICAgIDxOYXZEcm9wZG93bi5JdGVtIGhyZWY9XCIjYWN0aW9uNVwiPlNvbWV0aGluZyBlbHNlIGhlcmU8L05hdkRyb3Bkb3duLkl0ZW0+XG4gICAgPC9OYXZEcm9wZG93bj4sXG4gICAgPE5hdi5MaW5rIGtleT1cIjNcIiBocmVmPVwiI1wiIGRpc2FibGVkPlxuICAgICAgTGlua1xuICAgIDwvTmF2Lkxpbms+LFxuICBdLFxuICB1c2VyX2NvbXBvbmVudDogPFVzZXJDb21wb25lbnQgLz4sXG59KTtcblxuZXhwb3J0IGNvbnN0IFRvcE5hdmlnYXRpb25CYXIgPSAoKSA9PiB7XG4gIGNvbnN0IHBhbmVsUmVmID0gdXNlUmVmKCk7XG4gIGNvbnN0IHNjcm9sbEhhbmRsZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdG9nZ2xlUXVlcnlQYW5lbChwYW5lbFJlZi5jdXJyZW50KTtcbiAgfSwgW3BhbmVsUmVmXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TmF2YmFyIGJnPVwibGlnaHRcIiBleHBhbmQ9XCJsZ1wiPlxuICAgICAgPENvbnRhaW5lciBmbHVpZD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZC1sZy1ub25lIGQtaW5saW5lXCI+e05hdmlnYXRpb25NYW5hZ2VyLmJyYW5kfTwvc3Bhbj5cbiAgICAgICAgPE5hdmJhci5Ub2dnbGUgYXJpYS1jb250cm9scz1cIm5hdmJhclNjcm9sbFwiIC8+XG4gICAgICAgIDxOYXZiYXIuQ29sbGFwc2UgaWQ9XCJuYXZiYXJTY3JvbGxcIj5cbiAgICAgICAgICA8TmF2YmFyLkJyYW5kIGNsYXNzTmFtZT1cImQtbm9uZSBkLWxnLWlubGluZVwiPlxuICAgICAgICAgICAge05hdmlnYXRpb25NYW5hZ2VyLmJyYW5kfVxuICAgICAgICAgIDwvTmF2YmFyLkJyYW5kPlxuICAgICAgICAgIDxOYXYgY2xhc3NOYW1lPVwibWUtYXV0byBteS0yIG15LWxnLTBcIj5cbiAgICAgICAgICAgIHtOYXZpZ2F0aW9uTWFuYWdlci5pdGVtcy5tYXAoKGl0ZW0sIGtleSkgPT4gKFxuICAgICAgICAgICAgICA8c3BhbiBrZXk9e2tleX0+e2l0ZW19PC9zcGFuPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9OYXY+XG4gICAgICAgICAgPE5hdiByZWY9e3BhbmVsUmVmfSBjbGFzc05hbWU9XCJjYW9zZGItZi1xdWVyeS1wYW5lbCBtZS1sZy0yIGZ1bGxcIj5cbiAgICAgICAgICAgIDxRdWVyeVBhbmVsIHJlc3RvcmU9e3RydWV9IHNjcm9sbEhhbmRsZXI9e3Njcm9sbEhhbmRsZXJ9IC8+XG4gICAgICAgICAgPC9OYXY+XG4gICAgICAgICAgPE5hdj57TmF2aWdhdGlvbk1hbmFnZXIudXNlcl9jb21wb25lbnR9PC9OYXY+XG4gICAgICAgIDwvTmF2YmFyLkNvbGxhcHNlPlxuICAgICAgPC9Db250YWluZXI+XG4gICAgPC9OYXZiYXI+XG4gICk7XG59O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgVG9wTmF2aWdhdGlvbkJhciB9IGZyb20gXCIuL1RvcE5hdmlnYXRpb25CYXJcIjtcblxuZXhwb3J0IGNvbnN0IEhlYWRlciA9ICgpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8aGVhZGVyIGNsYXNzTmFtZT1cInNoYWRvdy1zbSBiZy1saWdodFwiPlxuICAgICAgPFRvcE5hdmlnYXRpb25CYXI+PC9Ub3BOYXZpZ2F0aW9uQmFyPlxuICAgIDwvaGVhZGVyPlxuICApO1xufTtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuY2xhc3MgRm9vdGVyTWFuYWdlckltcGwge1xuICBjb25zdHJ1Y3Rvcih7IGl0ZW1zLCBjb3B5UmlnaHQgfSkge1xuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLmNvcHlSaWdodCA9IGNvcHlSaWdodDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRm9vdGVyTWFuYWdlciA9IG5ldyBGb290ZXJNYW5hZ2VySW1wbCh7XG4gIGl0ZW1zOiBbXG4gICAgPGFcbiAgICAgIGtleT1cIjBcIlxuICAgICAgY2xhc3NOYW1lPVwibmF2LWxpbmsgcHgtMlwiXG4gICAgICBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLTMuMC5lbi5odG1sXCJcbiAgICA+XG4gICAgICBMaWNlbnNlIChBR1BMLXYzKVxuICAgIDwvYT4sXG4gICAgPGEga2V5PVwiMVwiIGNsYXNzTmFtZT1cIm5hdi1saW5rIHB4LTJcIiBocmVmPVwiaHR0cHM6Ly9naXRsYWIuY29tL2Nhb3NkYlwiPlxuICAgICAgU291cmNlc1xuICAgIDwvYT4sXG4gICAgPGEga2V5PVwiM1wiIGNsYXNzTmFtZT1cIm5hdi1saW5rIHB4LTJcIiBocmVmPVwiaHR0cHM6Ly9kb2NzLmluZGlzY2FsZS5jb20vXCI+XG4gICAgICBEb2N1bWVudGF0aW9uXG4gICAgPC9hPixcbiAgXSxcbiAgY29weVJpZ2h0OiBcIsKpIDIwMjEgSW5kaVNjYWxlIEdtYkhcIixcbn0pO1xuXG5leHBvcnQgY29uc3QgRm9vdGVyID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxmb290ZXI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvb3Rlci1ib3JkZXJcIiAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXItYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lciBweS0zIG15LTRcIj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwibmF2IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBiLTMgbWItM1wiPlxuICAgICAgICAgICAge0Zvb3Rlck1hbmFnZXIuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzcGFjZXIgPVxuICAgICAgICAgICAgICAgIGluZGV4ID09PSAwID8gbnVsbCA6IDxsaSBjbGFzc05hbWU9XCJuYXYtaXRlbSBweC0xXCI+4oCiPC9saT47XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAge3NwYWNlcn1cbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJuYXYtaXRlbVwiPntpdGVtfTwvbGk+XG4gICAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj57Rm9vdGVyTWFuYWdlci5jb3B5UmlnaHR9PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9vdGVyPlxuICApO1xufTtcbiIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIHRoZSBDYW9zREIgUHJvamVjdC5cbiAqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGltbSBGaXRzY2hlbiA8dC5maXRzY2hlbkBpbmRpc2NhbGUuY29tPlxuICogQ29weXJpZ2h0IChDKSAyMDIzIEluZGlTY2FsZSBHbWJIIDxpbmZvQGluZGlzY2FsZS5jb20+XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGVcbiAqIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBMb2FkaW5nSW5mbyB9IGZyb20gXCIuL0xvYWRpbmdJbmZvXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogV3JhcHBlciBmb3IgaGFuZGxpbmcgUHJvbWlzZXMuIFRoZSByZXN1bHRzIG9mIHRoZSBwcm9taXNlIGFyZSBiZWluZ1xuICogcmVuZGVyZWQuIEluIHRoZSBtZWFuIHRpbWUsIGEgTG9hZGluZ0luZm8gaXMgYmVpbmcgc2hvd24uXG4gKlxuICogRXhhbXBsZTpcbiAqICAgPEF3YWl0IHByb21pc2U9e2ZldGNoRGF0YSgpfVxuICogICAgICAgICAgdGhlbj17ZGF0YSA9PiBjcmVhdGVUYWJsZShkYXRhKX1cbiAqICAgICAgICAgIGNhdGNoPXtlcnJvciA9PiBcIjxkaXY+RXJyb3I6IFwiICsgZXJyb3IubWVzc2FnZTwvZGl2Pn0vPlxuICpcbiAqIFdoZW4gZmV0Y2hEYXRhIHJlc29sdmVzLCB0aGUgZGF0YSBpcyBiZWluZyBwcmVzZW50ZWQgYXMgYSB0YWJsZS4gQW4gZXJyb3JcbiAqIGRpdiBpcyBiZWluZyBzaG93biBpZiBmZXRjaERhdGEgZmFpbHMuXG4gKlxuICogTkIuIEVxdWl2YWxlbnRseSwgeW91IGNvdWxkIGFsc28gZG86XG4gKiAgIDxBd2FpdCBwcm9taXNlPXtmZXRjaERhdGEoKVxuICogICAgICAgICAgLnRoZW4oZGF0YSA9PiBjcmVhdGVUYWJsZShkYXRhKVxuICogICAgICAgICAgLmNhdGNoPShlcnJvciA9PiBcIjxkaXY+RXJyb3I6IFwiICsgZXJyb3IubWVzc2FnZTwvZGl2PilcbiAqICAgfS8+XG4gKlxuICogQHBhcmFtIHtQcm9taXNlfSBwcm9taXNlIC0gTXVzdCByZXNvbHZlIHRvIGEgUmVhY3QuQ29tcG9uZW50IHVubGVzcyB0aGVcbiAqIHBhcmFtZXRlciBgdGhlbmAgZG9lcyB0aGUgY29udmVzaW9uLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gW3RoZW5dIC0gZnVuY3Rpb24gd2l0aCBvbmUgcGFyYW1ldGVyLiBJdCBpcyBiZWluZyBjYWxsZWRcbiAqIHdoZW4gdGhlIHByb21pc2UgcmVzb2x2ZXMuIEl0IHNob3VsZCBwcmVwcm9jZXNzIHRoZSBwcm9taXNlcycgcmVzdWx0cyBhbmRcbiAqIG11c3QgYSBjb21wb25lbnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2F0Y2hdIC0gZnVuY3Rpb24gd2l0aCBvbmUgcGFyYW1ldGVyLiBJdCBpcyBiZWluZyBjYWxsZWRcbiAqIHdoZW4gdGhlIHByb21pc2UgcmVqZWN0cy4gSXQgc2hvdWxkIHByZXByb2Nlc3MgdGhlIGVycm9yIGFuZCBtdXN0IHJldHVybiBhXG4gKiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1JlYWN0LkNvbXBvbmVudH0gW2xvYWRpbmddIC0gQSBjb21wb25lbnQgd2hpY2ggd2lsbCBzaG93IHVudGlsIHRoZVxuICogcHJvbWlzZSByZXNvbHZlcy4gSWYgdW5kZWZpbmVkLCBub3RoaW5nIHdpbGwgYmUgc2hvd24uXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIEF3YWl0KHByb3BzKSB7XG4gIGNvbnN0IGxvYWRpbmcgPSBwcm9wcy5sb2FkaW5nIHx8IDxMb2FkaW5nSW5mbyAvPjtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShsb2FkaW5nKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZhciB0aGVQcm9taXNlID0gcHJvcHMucHJvbWlzZTtcbiAgICBpZiAocHJvcHMudGhlbikge1xuICAgICAgdGhlUHJvbWlzZSA9IHRoZVByb21pc2UudGhlbihwcm9wcy50aGVuKTtcbiAgICB9XG4gICAgY29uc3QgZG9DYXRjaCA9XG4gICAgICBwcm9wcy5jYXRjaCB8fFxuICAgICAgKChlcnJvcikgPT4ge1xuICAgICAgICBlcnJvciA9IGVycm9yICYmIGVycm9yLm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogZXJyb3I7XG4gICAgICAgIHJldHVybiA8c3Bhbj5BbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJlZDoge2Vycm9yfTwvc3Bhbj47XG4gICAgICB9KTtcblxuICAgIHRoZVByb21pc2UuY2F0Y2goZG9DYXRjaCkudGhlbihzZXRTdGF0ZSk7XG4gIH0sIFtwcm9wcy5wcm9taXNlLCBwcm9wcy50aGVuLCBwcm9wcy5jYXRjaF0pO1xuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgQ2hlY2tib3ggPSAoe1xuICBuYW1lLFxuICB2YWx1ZSxcbiAgaWNvbnMsXG4gIHN0eWxlLFxuICBjb2xvcixcbiAgcmVhZE9ubHksXG4gIG9uQ2hhbmdlLFxuICBvbkJsdXIsXG4gIHNldFZhbHVlLFxuICB0aXRsZSxcbn0pID0+IHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZSh2YWx1ZSB8fCBcImZhbHNlXCIpO1xuICBzdHlsZSA9IHN0eWxlIHx8IFwiY2hlY2tcIjtcbiAgY29sb3IgPVxuICAgIGNvbG9yIHx8XG4gICAge1xuICAgICAgY2hlY2s6IHtcbiAgICAgICAgdHJ1ZTogXCIgdGV4dC1zdWNjZXNzXCIsXG4gICAgICAgIGZhbHNlOiBcIiB0ZXh0LWJvZHlcIixcbiAgICAgICAgcGFydGlhbDogXCIgY29sb3ItbGlnaHQtZ3JlZW5cIixcbiAgICAgIH0sXG4gICAgICBcImNoZWNrLWZpbGxcIjoge1xuICAgICAgICB0cnVlOiBcIiB0ZXh0LXN1Y2Nlc3NcIixcbiAgICAgICAgZmFsc2U6IFwiIHRleHQtYm9keVwiLFxuICAgICAgICBwYXJ0aWFsOiBcIiBjb2xvci1saWdodC1ncmVlblwiLFxuICAgICAgfSxcbiAgICAgIHg6IHtcbiAgICAgICAgdHJ1ZTogXCIgdGV4dC1kYW5nZXJcIixcbiAgICAgICAgZmFsc2U6IFwiIHRleHQtYm9keVwiLFxuICAgICAgICBwYXJ0aWFsOiBcIiB0ZXh0LXdhcm5pbmdcIixcbiAgICAgIH0sXG4gICAgICBcIngtZmlsbFwiOiB7XG4gICAgICAgIHRydWU6IFwiIHRleHQtZGFuZ2VyXCIsXG4gICAgICAgIGZhbHNlOiBcIiB0ZXh0LWJvZHlcIixcbiAgICAgICAgcGFydGlhbDogXCIgdGV4dC13YXJuaW5nXCIsXG4gICAgICB9LFxuICAgIH1bc3R5bGVdO1xuXG4gIGNvbnN0IGljb25DbGFzc05hbWVNYXAgPSB7XG4gICAgeDoge1xuICAgICAgdHJ1ZTogXCJiaSBiaS14LXNxdWFyZVwiICsgY29sb3JbXCJ0cnVlXCJdLFxuICAgICAgZmFsc2U6IFwiYmkgYmktc3F1YXJlXCIgKyBjb2xvcltcImZhbHNlXCJdLFxuICAgICAgcGFydGlhbDogXCJiaSBiaS1zbGFzaC1zcXVhcmVcIiArIGNvbG9yW1wicGFydGlhbFwiXSxcbiAgICB9LFxuICAgIFwieC1maWxsXCI6IHtcbiAgICAgIHRydWU6IFwiYmkgYmkteC1zcXVhcmUtZmlsbFwiICsgY29sb3JbXCJ0cnVlXCJdLFxuICAgICAgZmFsc2U6IFwiYmkgYmktc3F1YXJlXCIgKyBjb2xvcltcImZhbHNlXCJdLFxuICAgICAgcGFydGlhbDogXCJiaSBiaS1zbGFzaC1zcXVhcmUtZmlsbFwiICsgY29sb3JbXCJwYXJ0aWFsXCJdLFxuICAgIH0sXG4gICAgY2hlY2s6IHtcbiAgICAgIHRydWU6IFwiYmkgYmktY2hlY2stc3F1YXJlXCIgKyBjb2xvcltcInRydWVcIl0sXG4gICAgICBmYWxzZTogXCJiaSBiaS1zcXVhcmVcIiArIGNvbG9yW1wiZmFsc2VcIl0sXG4gICAgICBwYXJ0aWFsOiBcImJpIGJpLXNsYXNoLXNxdWFyZVwiICsgY29sb3JbXCJwYXJ0aWFsXCJdLFxuICAgIH0sXG4gICAgXCJjaGVjay1maWxsXCI6IHtcbiAgICAgIHRydWU6IFwiYmkgYmktY2hlY2stc3F1YXJlLWZpbGxcIiArIGNvbG9yW1widHJ1ZVwiXSxcbiAgICAgIGZhbHNlOiBcImJpIGJpLXNxdWFyZVwiICsgY29sb3JbXCJmYWxzZVwiXSxcbiAgICAgIHBhcnRpYWw6IFwiYmkgYmktc2xhc2gtc3F1YXJlLWZpbGxcIiArIGNvbG9yW1wicGFydGlhbFwiXSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHRyYW5zaXRpb25zID0ge1xuICAgIHBhcnRpYWw6IFwiZmFsc2VcIixcbiAgICB0cnVlOiBcImZhbHNlXCIsXG4gICAgZmFsc2U6IFwidHJ1ZVwiLFxuICB9O1xuXG4gIGNvbnN0IHByb3BzID0ge307XG5cbiAgdmFyIGlucHV0O1xuICBpZiAoIXJlYWRPbmx5KSB7XG4gICAgaW5wdXQgPSAoXG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3NOYW1lPVwiY2Fvc2RiLWNoZWNrLWJveC1pbnB1dFwiXG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YWx1ZT17c3RhdGV9XG4gICAgICAvPlxuICAgICk7XG5cbiAgICBwcm9wcy5vbkNsaWNrID0gKCkgPT4ge1xuICAgICAgc2V0VmFsdWUobmFtZSwgdHJhbnNpdGlvbnNbc3RhdGVdKTtcbiAgICAgIHNldFN0YXRlKHRyYW5zaXRpb25zW3N0YXRlXSk7XG4gICAgfTtcblxuICAgIHByb3BzLm9uS2V5RG93biA9IChlKSA9PiB7XG4gICAgICBpZiAoZS5jb2RlID09PSBcIlNwYWNlXCIpIHtcbiAgICAgICAgc2V0VmFsdWUobmFtZSwgdHJhbnNpdGlvbnNbc3RhdGVdKTtcbiAgICAgICAgc2V0U3RhdGUodHJhbnNpdGlvbnNbc3RhdGVdKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBwcm9wcy50YWJJbmRleCA9IFwiMFwiO1xuICAgIHByb3BzLm9uQmx1ciA9IG9uQmx1cjtcbiAgfVxuXG4gIGljb25zID0gaWNvbnMgfHwge307XG5cbiAgY29uc3QgaWNvbiA9IGljb25zW3N0YXRlXSB8fCAoXG4gICAgPGlcbiAgICAgIGNsYXNzTmFtZT17XCJtcy0xIGNhb3NkYi1jaGVja2JveC1pY29uIFwiICsgaWNvbkNsYXNzTmFtZU1hcFtzdHlsZV1bc3RhdGVdfVxuICAgIC8+XG4gICk7XG5cbiAgdmFyIGNsYXNzTmFtZSA9IFwiY2Fvc2RiLWNoZWNrYm94IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIjtcbiAgaWYgKHJlYWRPbmx5KSB7XG4gICAgY2xhc3NOYW1lICs9IFwiIHJlYWQtb25seVwiO1xuICB9XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgcm9sZT1cImNoZWNrYm94XCJcbiAgICAgIGFyaWEtY2hlY2tlZD17c3RhdGV9XG4gICAgPlxuICAgICAge2lucHV0fVxuICAgICAgPHNwYW4gey4uLnByb3BzfT57aWNvbn08L3NwYW4+XG4gICAgPC9zcGFuPlxuICApO1xufTtcblxuQ2hlY2tib3gucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2YoW1widHJ1ZVwiLCBcImZhbHNlXCJdKSxcbiAgaWNvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHN0eWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjb2xvcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNldFZhbHVlOiBQcm9wVHlwZXMuZnVuYyxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuXG5jb25zdCBDYXJkID0gZnVuY3Rpb24gKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiB9KSB7XG4gIGNsYXNzTmFtZSA9IGNsYXNzTmFtZSB8fCBcIlwiO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2BjYXJkIG10LTMgcm91bmRlZCBzaGFkb3cgJHtjbGFzc05hbWV9YH0+e2NoaWxkcmVufTwvZGl2PlxuICApO1xufTtcblxuQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSxcbiAgICBQcm9wVHlwZXMubm9kZSxcbiAgXSksXG59O1xuXG5DYXJkLkJvZHkgPSBmdW5jdGlvbiBDYXJkQm9keSh7IGNoaWxkcmVuIH0pIHtcbiAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+e2NoaWxkcmVufTwvZGl2Pjtcbn07XG5cbkNhcmQuQm9keS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSksXG4gICAgUHJvcFR5cGVzLm5vZGUsXG4gIF0pLFxufTtcblxuQ2FyZC5Gb290ZXIgPSBmdW5jdGlvbiBDYXJkRm9vdGVyKHsgY2hpbGRyZW4gfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1mb290ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+e2NoaWxkcmVufTwvZGl2PlxuICApO1xufTtcblxuQ2FyZC5Gb290ZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLFxuICAgIFByb3BUeXBlcy5ub2RlLFxuICBdKSxcbn07XG5cbkNhcmQuVGl0bGUgPSBmdW5jdGlvbiBDYXJkVGl0bGUoeyBjaGlsZHJlbiB9KSB7XG4gIHJldHVybiA8aDMgY2xhc3NOYW1lPVwiY2FyZC10aXRsZVwiPntjaGlsZHJlbn08L2gzPjtcbn07XG5cbkNhcmQuVGl0bGUucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLFxuICAgIFByb3BUeXBlcy5ub2RlLFxuICBdKSxcbn07XG5cbkNhcmQuSGVhZGVyID0gZnVuY3Rpb24gQ2FyZEhlYWRlcih7IHRpdGxlLCBjaGlsZHJlbiB9KSB7XG4gIHRpdGxlID0gdGl0bGUgPyA8Q2FyZC5UaXRsZT57dGl0bGV9PC9DYXJkLlRpdGxlPiA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQtaGVhZGVyXCI+XG4gICAgICB7dGl0bGV9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5DYXJkLkhlYWRlci5wcm9wVHlwZXMgPSB7XG4gIHRpdGxlOiBQcm9wVHlwZXMubm9kZSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSxcbiAgICBQcm9wVHlwZXMubm9kZSxcbiAgXSksXG59O1xuXG5leHBvcnQgeyBDYXJkIH07XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzFdLnVzZVsxXSEuLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMV0udXNlWzJdIS4vaW5kZXguc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzFdLnVzZVsxXSEuLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMV0udXNlWzJdIS4vaW5kZXguc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJyZXF1aXJlIiwiZSIsImRlZmluZSIsImFtZCIsInNlbGYiLCJfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX182MzlfXyIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzE4OV9fIiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJjbGFzc05hbWVzIiwiY2xhc3NlcyIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmciLCJhcmdUeXBlIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsImlubmVyIiwiYXBwbHkiLCJ0b1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsImluY2x1ZGVzIiwia2V5IiwiY2FsbCIsImpvaW4iLCJkZWZhdWx0IiwiX19fQ1NTX0xPQURFUl9FWFBPUlRfX18iLCJpZCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJsaXN0IiwidGhpcyIsIm1hcCIsIml0ZW0iLCJjb250ZW50IiwibmVlZExheWVyIiwiY29uY2F0IiwibW9kdWxlcyIsIm1lZGlhIiwiZGVkdXBlIiwic3VwcG9ydHMiLCJsYXllciIsInVuZGVmaW5lZCIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJrIiwiX2siLCJjc3NNYXBwaW5nIiwiYnRvYSIsImJhc2U2NCIsInVuZXNjYXBlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGEiLCJzb3VyY2VNYXBwaW5nIiwiY29uZGl0aW9uIiwiZm9ybWF0IiwiYSIsImIiLCJjIiwiZCIsImYiLCJlcnJvciIsIkVycm9yIiwiYXJncyIsImFyZ0luZGV4IiwicmVwbGFjZSIsIm5hbWUiLCJmcmFtZXNUb1BvcCIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJfbGVuIiwidmFsaWRhdG9ycyIsIl9rZXkiLCJfY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIyIiwiX2xlbjIiLCJfa2V5MiIsImZvckVhY2giLCJ2YWxpZGF0b3IiLCJyZXN1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwidmFsaWRhdGUiLCJjaGVja1R5cGUiLCJpc1JlcXVpcmVkIiwicHJvcHMiLCJwcm9wTmFtZSIsImNvbXBvbmVudE5hbWUiLCJsb2NhdGlvbiIsInByb3BGdWxsTmFtZSIsImNvbXBvbmVudE5hbWVTYWZlIiwicHJvcEZ1bGxOYW1lU2FmZSIsImNoYWluZWRDaGVja1R5cGUiLCJiaW5kIiwiUmVhY3RQcm9wVHlwZXNTZWNyZXQiLCJlbXB0eUZ1bmN0aW9uIiwiZW1wdHlGdW5jdGlvbldpdGhSZXNldCIsInJlc2V0V2FybmluZ0NhY2hlIiwic2hpbSIsInNlY3JldCIsImVyciIsImdldFNoaW0iLCJSZWFjdFByb3BUeXBlcyIsImFycmF5IiwiYmlnaW50IiwiYm9vbCIsImZ1bmMiLCJudW1iZXIiLCJvYmplY3QiLCJzdHJpbmciLCJzeW1ib2wiLCJhbnkiLCJhcnJheU9mIiwiZWxlbWVudCIsImVsZW1lbnRUeXBlIiwiaW5zdGFuY2VPZiIsIm5vZGUiLCJvYmplY3RPZiIsIm9uZU9mIiwib25lT2ZUeXBlIiwic2hhcGUiLCJleGFjdCIsImNoZWNrUHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYWEiLCJjYSIsInAiLCJkYSIsIlNldCIsImVhIiwiZmEiLCJoYSIsImFkZCIsImlhIiwid2luZG93IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiamEiLCJrYSIsImxhIiwibWEiLCJ2IiwiZyIsImFjY2VwdHNCb29sZWFucyIsImF0dHJpYnV0ZU5hbWUiLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJtdXN0VXNlUHJvcGVydHkiLCJwcm9wZXJ0eU5hbWUiLCJ0eXBlIiwic2FuaXRpemVVUkwiLCJyZW1vdmVFbXB0eVN0cmluZyIsInoiLCJzcGxpdCIsInRvTG93ZXJDYXNlIiwicmEiLCJzYSIsInRvVXBwZXJDYXNlIiwidGEiLCJzbGljZSIsInBhIiwiaXNOYU4iLCJxYSIsInRlc3QiLCJvYSIsInJlbW92ZUF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZU5TIiwieGxpbmtIcmVmIiwidWEiLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsInZhIiwiU3ltYm9sIiwiZm9yIiwid2EiLCJ5YSIsInphIiwiQWEiLCJCYSIsIkNhIiwiRGEiLCJFYSIsIkZhIiwiR2EiLCJIYSIsIklhIiwiSmEiLCJpdGVyYXRvciIsIkthIiwiTGEiLCJBIiwiYXNzaWduIiwiTWEiLCJzdGFjayIsInRyaW0iLCJtYXRjaCIsIk5hIiwiT2EiLCJwcmVwYXJlU3RhY2tUcmFjZSIsInNldCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJsIiwiaCIsImRpc3BsYXlOYW1lIiwiUGEiLCJ0YWciLCJyZW5kZXIiLCJRYSIsIiQkdHlwZW9mIiwiX2NvbnRleHQiLCJfcGF5bG9hZCIsIl9pbml0IiwiUmEiLCJTYSIsIlRhIiwibm9kZU5hbWUiLCJWYSIsIl92YWx1ZVRyYWNrZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJjb25zdHJ1Y3RvciIsImdldCIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXRWYWx1ZSIsInNldFZhbHVlIiwic3RvcFRyYWNraW5nIiwiVWEiLCJXYSIsImNoZWNrZWQiLCJYYSIsImFjdGl2ZUVsZW1lbnQiLCJib2R5IiwiWWEiLCJkZWZhdWx0Q2hlY2tlZCIsImRlZmF1bHRWYWx1ZSIsIl93cmFwcGVyU3RhdGUiLCJpbml0aWFsQ2hlY2tlZCIsIlphIiwiaW5pdGlhbFZhbHVlIiwiY29udHJvbGxlZCIsImFiIiwiYmIiLCJjYiIsImRiIiwib3duZXJEb2N1bWVudCIsImViIiwiZmIiLCJvcHRpb25zIiwic2VsZWN0ZWQiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkaXNhYmxlZCIsImdiIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZHJlbiIsImhiIiwiaWIiLCJqYiIsInRleHRDb250ZW50Iiwia2IiLCJsYiIsIm1iIiwibmIiLCJuYW1lc3BhY2VVUkkiLCJpbm5lckhUTUwiLCJ2YWx1ZU9mIiwiZmlyc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwiYXBwZW5kQ2hpbGQiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwib2IiLCJsYXN0Q2hpbGQiLCJub2RlVHlwZSIsIm5vZGVWYWx1ZSIsInBiIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJhc3BlY3RSYXRpbyIsImJvcmRlckltYWdlT3V0c2V0IiwiYm9yZGVySW1hZ2VTbGljZSIsImJvcmRlckltYWdlV2lkdGgiLCJib3hGbGV4IiwiYm94RmxleEdyb3VwIiwiYm94T3JkaW5hbEdyb3VwIiwiY29sdW1uQ291bnQiLCJjb2x1bW5zIiwiZmxleCIsImZsZXhHcm93IiwiZmxleFBvc2l0aXZlIiwiZmxleFNocmluayIsImZsZXhOZWdhdGl2ZSIsImZsZXhPcmRlciIsImdyaWRBcmVhIiwiZ3JpZFJvdyIsImdyaWRSb3dFbmQiLCJncmlkUm93U3BhbiIsImdyaWRSb3dTdGFydCIsImdyaWRDb2x1bW4iLCJncmlkQ29sdW1uRW5kIiwiZ3JpZENvbHVtblNwYW4iLCJncmlkQ29sdW1uU3RhcnQiLCJmb250V2VpZ2h0IiwibGluZUNsYW1wIiwibGluZUhlaWdodCIsIm9wYWNpdHkiLCJvcmRlciIsIm9ycGhhbnMiLCJ0YWJTaXplIiwid2lkb3dzIiwiekluZGV4Iiwiem9vbSIsImZpbGxPcGFjaXR5IiwiZmxvb2RPcGFjaXR5Iiwic3RvcE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInFiIiwicmIiLCJzYiIsInN0eWxlIiwiaW5kZXhPZiIsInNldFByb3BlcnR5Iiwia2V5cyIsImNoYXJBdCIsInN1YnN0cmluZyIsInRiIiwibWVudWl0ZW0iLCJhcmVhIiwiYmFzZSIsImJyIiwiY29sIiwiZW1iZWQiLCJociIsImltZyIsImlucHV0Iiwia2V5Z2VuIiwibGluayIsIm1ldGEiLCJwYXJhbSIsInNvdXJjZSIsInRyYWNrIiwid2JyIiwidWIiLCJ2YiIsImlzIiwid2IiLCJ4YiIsInRhcmdldCIsInNyY0VsZW1lbnQiLCJjb3JyZXNwb25kaW5nVXNlRWxlbWVudCIsInBhcmVudE5vZGUiLCJ5YiIsInpiIiwiQWIiLCJCYiIsIkNiIiwic3RhdGVOb2RlIiwiRGIiLCJFYiIsIkZiIiwiR2IiLCJIYiIsIkliIiwiSmIiLCJLYiIsIkxiIiwiTWIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIk5iIiwibSIsIm9uRXJyb3IiLCJPYiIsIlBiIiwiUWIiLCJSYiIsIlNiIiwiVGIiLCJWYiIsImFsdGVybmF0ZSIsInJldHVybiIsImZsYWdzIiwiV2IiLCJtZW1vaXplZFN0YXRlIiwiZGVoeWRyYXRlZCIsIlhiIiwiWmIiLCJjaGlsZCIsInNpYmxpbmciLCJjdXJyZW50IiwiWWIiLCIkYiIsImFjIiwidW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayIsImJjIiwidW5zdGFibGVfY2FuY2VsQ2FsbGJhY2siLCJjYyIsInVuc3RhYmxlX3Nob3VsZFlpZWxkIiwiZGMiLCJ1bnN0YWJsZV9yZXF1ZXN0UGFpbnQiLCJCIiwidW5zdGFibGVfbm93IiwiZWMiLCJ1bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCIsImZjIiwidW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHkiLCJnYyIsInVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5IiwiaGMiLCJ1bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSIsImljIiwidW5zdGFibGVfTG93UHJpb3JpdHkiLCJqYyIsInVuc3RhYmxlX0lkbGVQcmlvcml0eSIsImtjIiwibGMiLCJvYyIsIk1hdGgiLCJjbHozMiIsInBjIiwicWMiLCJsb2ciLCJMTjIiLCJyYyIsInNjIiwidGMiLCJ1YyIsInBlbmRpbmdMYW5lcyIsInN1c3BlbmRlZExhbmVzIiwicGluZ2VkTGFuZXMiLCJlbnRhbmdsZWRMYW5lcyIsImVudGFuZ2xlbWVudHMiLCJ2YyIsInhjIiwieWMiLCJ6YyIsIkFjIiwiZXZlbnRUaW1lcyIsIkNjIiwiQyIsIkRjIiwiRWMiLCJGYyIsIkdjIiwiSGMiLCJJYyIsIkpjIiwiS2MiLCJMYyIsIk1jIiwiTmMiLCJPYyIsIk1hcCIsIlBjIiwiUWMiLCJSYyIsIlNjIiwiZGVsZXRlIiwicG9pbnRlcklkIiwiVGMiLCJuYXRpdmVFdmVudCIsImJsb2NrZWRPbiIsImRvbUV2ZW50TmFtZSIsImV2ZW50U3lzdGVtRmxhZ3MiLCJ0YXJnZXRDb250YWluZXJzIiwiVmMiLCJXYyIsInByaW9yaXR5IiwiaXNEZWh5ZHJhdGVkIiwiY29udGFpbmVySW5mbyIsIlhjIiwiWWMiLCJkaXNwYXRjaEV2ZW50Iiwic2hpZnQiLCJaYyIsIiRjIiwiYWQiLCJiZCIsImNkIiwiUmVhY3RDdXJyZW50QmF0Y2hDb25maWciLCJkZCIsImVkIiwidHJhbnNpdGlvbiIsImZkIiwiZ2QiLCJoZCIsIlVjIiwic3RvcFByb3BhZ2F0aW9uIiwiamQiLCJrZCIsImxkIiwibWQiLCJuZCIsIm9kIiwia2V5Q29kZSIsImNoYXJDb2RlIiwicGQiLCJxZCIsInJkIiwiX3JlYWN0TmFtZSIsIl90YXJnZXRJbnN0IiwiY3VycmVudFRhcmdldCIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZXR1cm5WYWx1ZSIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwicHJldmVudERlZmF1bHQiLCJjYW5jZWxCdWJibGUiLCJwZXJzaXN0IiwiaXNQZXJzaXN0ZW50Iiwid2QiLCJ4ZCIsInlkIiwic2QiLCJldmVudFBoYXNlIiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJ0aW1lU3RhbXAiLCJEYXRlIiwibm93IiwiaXNUcnVzdGVkIiwidGQiLCJ1ZCIsInZpZXciLCJkZXRhaWwiLCJ2ZCIsIkFkIiwic2NyZWVuWCIsInNjcmVlblkiLCJjbGllbnRYIiwiY2xpZW50WSIsInBhZ2VYIiwicGFnZVkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsInpkIiwiYnV0dG9uIiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsInRvRWxlbWVudCIsIm1vdmVtZW50WCIsIm1vdmVtZW50WSIsIkJkIiwiRGQiLCJkYXRhVHJhbnNmZXIiLCJGZCIsIkhkIiwiYW5pbWF0aW9uTmFtZSIsImVsYXBzZWRUaW1lIiwicHNldWRvRWxlbWVudCIsIklkIiwiY2xpcGJvYXJkRGF0YSIsIkpkIiwiTGQiLCJNZCIsIkVzYyIsIlNwYWNlYmFyIiwiTGVmdCIsIlVwIiwiUmlnaHQiLCJEb3duIiwiRGVsIiwiV2luIiwiTWVudSIsIkFwcHMiLCJTY3JvbGwiLCJNb3pQcmludGFibGVLZXkiLCJOZCIsIk9kIiwiQWx0IiwiQ29udHJvbCIsIk1ldGEiLCJTaGlmdCIsIlBkIiwiUWQiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJjb2RlIiwicmVwZWF0IiwibG9jYWxlIiwid2hpY2giLCJSZCIsIlRkIiwid2lkdGgiLCJoZWlnaHQiLCJwcmVzc3VyZSIsInRhbmdlbnRpYWxQcmVzc3VyZSIsInRpbHRYIiwidGlsdFkiLCJ0d2lzdCIsInBvaW50ZXJUeXBlIiwiaXNQcmltYXJ5IiwiVmQiLCJ0b3VjaGVzIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiWGQiLCJZZCIsImRlbHRhWCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiWmQiLCIkZCIsImFlIiwiYmUiLCJkb2N1bWVudE1vZGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsImxlIiwiY29sb3IiLCJkYXRlIiwiZGF0ZXRpbWUiLCJlbWFpbCIsIm1vbnRoIiwicGFzc3dvcmQiLCJyYW5nZSIsInNlYXJjaCIsInRlbCIsInRleHQiLCJ0aW1lIiwidXJsIiwid2VlayIsIm1lIiwibmUiLCJvZSIsImV2ZW50IiwibGlzdGVuZXJzIiwicGUiLCJxZSIsInJlIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJ3ZSIsInhlIiwieWUiLCJ6ZSIsIm9uaW5wdXQiLCJBZSIsImRldGFjaEV2ZW50IiwiQmUiLCJDZSIsImF0dGFjaEV2ZW50IiwiRGUiLCJFZSIsIkZlIiwiSGUiLCJJZSIsIkplIiwiS2UiLCJvZmZzZXQiLCJuZXh0U2libGluZyIsIkxlIiwiY29udGFpbnMiLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsIk1lIiwiSFRNTElGcmFtZUVsZW1lbnQiLCJjb250ZW50V2luZG93IiwiaHJlZiIsIk5lIiwiY29udGVudEVkaXRhYmxlIiwiT2UiLCJmb2N1c2VkRWxlbSIsInNlbGVjdGlvblJhbmdlIiwiZG9jdW1lbnRFbGVtZW50Iiwic3RhcnQiLCJlbmQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsIm1pbiIsImRlZmF1bHRWaWV3IiwiZ2V0U2VsZWN0aW9uIiwiZXh0ZW5kIiwicmFuZ2VDb3VudCIsImFuY2hvck5vZGUiLCJhbmNob3JPZmZzZXQiLCJmb2N1c05vZGUiLCJmb2N1c09mZnNldCIsImNyZWF0ZVJhbmdlIiwic2V0U3RhcnQiLCJyZW1vdmVBbGxSYW5nZXMiLCJhZGRSYW5nZSIsInNldEVuZCIsImxlZnQiLCJzY3JvbGxMZWZ0IiwidG9wIiwic2Nyb2xsVG9wIiwiZm9jdXMiLCJQZSIsIlFlIiwiUmUiLCJTZSIsIlRlIiwiVWUiLCJWZSIsIldlIiwiYW5pbWF0aW9uZW5kIiwiYW5pbWF0aW9uaXRlcmF0aW9uIiwiYW5pbWF0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uZW5kIiwiWGUiLCJZZSIsIlplIiwiYW5pbWF0aW9uIiwiJGUiLCJhZiIsImJmIiwiY2YiLCJkZiIsImVmIiwiZmYiLCJnZiIsImhmIiwibGYiLCJtZiIsIm5mIiwiVWIiLCJpbnN0YW5jZSIsImxpc3RlbmVyIiwiRCIsIm9mIiwiaGFzIiwicGYiLCJxZiIsInJmIiwicmFuZG9tIiwic2YiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm4iLCJ0IiwiSiIsIngiLCJ1IiwidyIsIkYiLCJ0ZiIsInVmIiwicGFyZW50V2luZG93IiwidmYiLCJ3ZiIsIm5hIiwieGEiLCIkYSIsImJhIiwiamUiLCJjaGFyIiwia2UiLCJ1bnNoaWZ0IiwieGYiLCJ5ZiIsInpmIiwiQWYiLCJCZiIsIkNmIiwiRGYiLCJFZiIsIl9faHRtbCIsIkZmIiwic2V0VGltZW91dCIsIkdmIiwiY2xlYXJUaW1lb3V0IiwiSGYiLCJQcm9taXNlIiwiSmYiLCJxdWV1ZU1pY3JvdGFzayIsInJlc29sdmUiLCJ0aGVuIiwiY2F0Y2giLCJJZiIsIktmIiwiTGYiLCJNZiIsInByZXZpb3VzU2libGluZyIsIk5mIiwiT2YiLCJQZiIsIlFmIiwiUmYiLCJTZiIsIlRmIiwiVWYiLCJFIiwiRyIsIlZmIiwiSCIsIldmIiwiWGYiLCJZZiIsImNvbnRleHRUeXBlcyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCIsIlpmIiwiY2hpbGRDb250ZXh0VHlwZXMiLCIkZiIsImFnIiwiYmciLCJnZXRDaGlsZENvbnRleHQiLCJjZyIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IiwiZGciLCJlZyIsImZnIiwiZ2ciLCJoZyIsImpnIiwia2ciLCJsZyIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJyZyIsInNnIiwidGciLCJ1ZyIsInZnIiwid2ciLCJ4ZyIsInlnIiwiSSIsInpnIiwiQWciLCJCZyIsImRlbGV0aW9ucyIsIkNnIiwicGVuZGluZ1Byb3BzIiwib3ZlcmZsb3ciLCJ0cmVlQ29udGV4dCIsInJldHJ5TGFuZSIsIkRnIiwibW9kZSIsIkVnIiwiRmciLCJHZyIsIm1lbW9pemVkUHJvcHMiLCJIZyIsIklnIiwiSmciLCJLZyIsIkxnIiwiZGVmYXVsdFByb3BzIiwiTWciLCJOZyIsIk9nIiwiUGciLCJRZyIsIlJnIiwiX2N1cnJlbnRWYWx1ZSIsIlNnIiwiY2hpbGRMYW5lcyIsIlRnIiwiZGVwZW5kZW5jaWVzIiwiZmlyc3RDb250ZXh0IiwibGFuZXMiLCJVZyIsIlZnIiwiY29udGV4dCIsIm1lbW9pemVkVmFsdWUiLCJuZXh0IiwiV2ciLCJYZyIsIllnIiwiaW50ZXJsZWF2ZWQiLCJaZyIsIiRnIiwiYWgiLCJ1cGRhdGVRdWV1ZSIsImJhc2VTdGF0ZSIsImZpcnN0QmFzZVVwZGF0ZSIsImxhc3RCYXNlVXBkYXRlIiwic2hhcmVkIiwicGVuZGluZyIsImVmZmVjdHMiLCJiaCIsImNoIiwiZXZlbnRUaW1lIiwibGFuZSIsInBheWxvYWQiLCJjYWxsYmFjayIsImRoIiwiSyIsImVoIiwiZmgiLCJnaCIsInEiLCJyIiwieSIsImhoIiwiaWgiLCJqaCIsIkNvbXBvbmVudCIsInJlZnMiLCJraCIsIm5oIiwiaXNNb3VudGVkIiwiX3JlYWN0SW50ZXJuYWxzIiwiZW5xdWV1ZVNldFN0YXRlIiwiTCIsImxoIiwibWgiLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwib2giLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJpc1B1cmVSZWFjdENvbXBvbmVudCIsInBoIiwiY29udGV4dFR5cGUiLCJzdGF0ZSIsInVwZGF0ZXIiLCJxaCIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsInJoIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUiLCJVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJzaCIsInJlZiIsIl9vd25lciIsIl9zdHJpbmdSZWYiLCJ0aCIsInVoIiwidmgiLCJpbmRleCIsIndoIiwieGgiLCJ5aCIsImltcGxlbWVudGF0aW9uIiwiemgiLCJBaCIsImRvbmUiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwidGFnTmFtZSIsIkpoIiwiS2giLCJMaCIsIk0iLCJNaCIsInJldmVhbE9yZGVyIiwiTmgiLCJPaCIsIl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5IiwiUGgiLCJSZWFjdEN1cnJlbnREaXNwYXRjaGVyIiwiUWgiLCJSaCIsIk4iLCJPIiwiUCIsIlNoIiwiVGgiLCJVaCIsIlZoIiwiUSIsIldoIiwiWGgiLCJZaCIsIlpoIiwiJGgiLCJhaSIsImJpIiwiY2kiLCJiYXNlUXVldWUiLCJxdWV1ZSIsImRpIiwiZWkiLCJmaSIsImxhc3RSZW5kZXJlZFJlZHVjZXIiLCJhY3Rpb24iLCJoYXNFYWdlclN0YXRlIiwiZWFnZXJTdGF0ZSIsImxhc3RSZW5kZXJlZFN0YXRlIiwiZGlzcGF0Y2giLCJnaSIsImhpIiwiaWkiLCJqaSIsImtpIiwiZ2V0U25hcHNob3QiLCJsaSIsIm1pIiwiUiIsIm5pIiwibGFzdEVmZmVjdCIsInN0b3JlcyIsIm9pIiwicGkiLCJxaSIsInJpIiwiY3JlYXRlIiwiZGVzdHJveSIsImRlcHMiLCJzaSIsInRpIiwidWkiLCJ2aSIsIndpIiwieGkiLCJ5aSIsInppIiwiQWkiLCJCaSIsIkNpIiwiRGkiLCJFaSIsIkZpIiwiR2kiLCJIaSIsIklpIiwiSmkiLCJyZWFkQ29udGV4dCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVkdWNlciIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRGVidWdWYWx1ZSIsInVzZURlZmVycmVkVmFsdWUiLCJ1c2VUcmFuc2l0aW9uIiwidXNlTXV0YWJsZVNvdXJjZSIsInVzZVN5bmNFeHRlcm5hbFN0b3JlIiwidXNlSWQiLCJ1bnN0YWJsZV9pc05ld1JlY29uY2lsZXIiLCJpZGVudGlmaWVyUHJlZml4IiwiS2kiLCJtZXNzYWdlIiwiZGlnZXN0IiwiTGkiLCJNaSIsImNvbnNvbGUiLCJOaSIsIldlYWtNYXAiLCJPaSIsIlBpIiwiUWkiLCJSaSIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsImNvbXBvbmVudERpZENhdGNoIiwiU2kiLCJjb21wb25lbnRTdGFjayIsIlRpIiwicGluZ0NhY2hlIiwiVWkiLCJWaSIsIldpIiwiWGkiLCJSZWFjdEN1cnJlbnRPd25lciIsIllpIiwiWmkiLCIkaSIsImFqIiwiYmoiLCJjb21wYXJlIiwiY2oiLCJkaiIsImVqIiwiYmFzZUxhbmVzIiwiY2FjaGVQb29sIiwidHJhbnNpdGlvbnMiLCJmaiIsImdqIiwiaGoiLCJpaiIsImpqIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwia2oiLCJsaiIsInBlbmRpbmdDb250ZXh0IiwibWoiLCJBaiIsIkJqIiwiQ2oiLCJEaiIsIm5qIiwib2oiLCJwaiIsImZhbGxiYWNrIiwicWoiLCJyaiIsInRqIiwiZGF0YXNldCIsImRnc3QiLCJ1aiIsInZqIiwiX3JlYWN0UmV0cnkiLCJzaiIsInN1YnRyZWVGbGFncyIsIndqIiwieGoiLCJpc0JhY2t3YXJkcyIsInJlbmRlcmluZyIsInJlbmRlcmluZ1N0YXJ0VGltZSIsImxhc3QiLCJ0YWlsIiwidGFpbE1vZGUiLCJ5aiIsIkVqIiwiUyIsIkZqIiwiR2oiLCJ3YXNNdWx0aXBsZSIsIm11bHRpcGxlIiwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiwib25DbGljayIsIm9uY2xpY2siLCJzaXplIiwiY3JlYXRlRWxlbWVudE5TIiwiYXV0b0ZvY3VzIiwiY3JlYXRlVGV4dE5vZGUiLCJUIiwiSGoiLCJJaiIsIkpqIiwiS2oiLCJVIiwiTGoiLCJXZWFrU2V0IiwiViIsIk1qIiwiVyIsIk5qIiwiT2oiLCJRaiIsIlJqIiwiU2oiLCJUaiIsIlVqIiwiVmoiLCJXaiIsImluc2VydEJlZm9yZSIsIl9yZWFjdFJvb3RDb250YWluZXIiLCJYaiIsIlgiLCJZaiIsIlpqIiwiYWsiLCJvbkNvbW1pdEZpYmVyVW5tb3VudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiYmsiLCJjayIsImRrIiwiZWsiLCJmayIsImlzSGlkZGVuIiwiZ2siLCJoayIsImRpc3BsYXkiLCJpayIsImprIiwia2siLCJsayIsIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlIiwic3JjIiwiV2siLCJtayIsImNlaWwiLCJuayIsIm9rIiwicGsiLCJZIiwiWiIsInFrIiwicmsiLCJzayIsInRrIiwidWsiLCJJbmZpbml0eSIsInZrIiwid2siLCJ4ayIsInlrIiwiemsiLCJBayIsIkJrIiwiQ2siLCJEayIsIkVrIiwiY2FsbGJhY2tOb2RlIiwiZXhwaXJhdGlvblRpbWVzIiwiZXhwaXJlZExhbmVzIiwid2MiLCJjYWxsYmFja1ByaW9yaXR5IiwiaWciLCJGayIsIkdrIiwiSGsiLCJJayIsIkprIiwiS2siLCJMayIsIk1rIiwiTmsiLCJPayIsIlBrIiwiZmluaXNoZWRXb3JrIiwiZmluaXNoZWRMYW5lcyIsIlFrIiwidGltZW91dEhhbmRsZSIsIlJrIiwiU2siLCJUayIsIlVrIiwiVmsiLCJtdXRhYmxlUmVhZExhbmVzIiwiQmMiLCJQaiIsIm9uQ29tbWl0RmliZXJSb290IiwibWMiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJYayIsIm9uUG9zdENvbW1pdEZpYmVyUm9vdCIsIllrIiwiWmsiLCJhbCIsImlzUmVhY3RDb21wb25lbnQiLCJwZW5kaW5nQ2hpbGRyZW4iLCJibCIsIm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEiLCJjbCIsImNhY2hlIiwicGVuZGluZ1N1c3BlbnNlQm91bmRhcmllcyIsImVsIiwiZmwiLCJnbCIsImhsIiwiaWwiLCJqbCIsInpqIiwiJGsiLCJsbCIsInJlcG9ydEVycm9yIiwibWwiLCJfaW50ZXJuYWxSb290IiwibmwiLCJvbCIsInBsIiwicWwiLCJzbCIsInJsIiwidW5tb3VudCIsInVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uIiwic3BsaWNlIiwicXVlcnlTZWxlY3RvckFsbCIsImZvcm0iLCJ0bCIsInVzaW5nQ2xpZW50RW50cnlQb2ludCIsIkV2ZW50cyIsInVsIiwiZmluZEZpYmVyQnlIb3N0SW5zdGFuY2UiLCJidW5kbGVUeXBlIiwidmVyc2lvbiIsInJlbmRlcmVyUGFja2FnZU5hbWUiLCJ2bCIsInJlbmRlcmVyQ29uZmlnIiwib3ZlcnJpZGVIb29rU3RhdGUiLCJvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGgiLCJvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGgiLCJvdmVycmlkZVByb3BzIiwib3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGgiLCJvdmVycmlkZVByb3BzUmVuYW1lUGF0aCIsInNldEVycm9ySGFuZGxlciIsInNldFN1c3BlbnNlSGFuZGxlciIsInNjaGVkdWxlVXBkYXRlIiwiY3VycmVudERpc3BhdGNoZXJSZWYiLCJmaW5kSG9zdEluc3RhbmNlQnlGaWJlciIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwicmVjb25jaWxlclZlcnNpb24iLCJfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18iLCJ3bCIsImlzRGlzYWJsZWQiLCJzdXBwb3J0c0ZpYmVyIiwiaW5qZWN0IiwiY3JlYXRlUG9ydGFsIiwiZGwiLCJjcmVhdGVSb290IiwidW5zdGFibGVfc3RyaWN0TW9kZSIsImZpbmRET01Ob2RlIiwiZmx1c2hTeW5jIiwiaHlkcmF0ZSIsImh5ZHJhdGVSb290IiwiaHlkcmF0ZWRTb3VyY2VzIiwiX2dldFZlcnNpb24iLCJfc291cmNlIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwidW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJjaGVja0RDRSIsIl9fc2VsZiIsIl9fc291cmNlIiwiRnJhZ21lbnQiLCJqc3giLCJqc3hzIiwicG9wIiwic29ydEluZGV4IiwicGVyZm9ybWFuY2UiLCJzZXRJbW1lZGlhdGUiLCJzdGFydFRpbWUiLCJleHBpcmF0aW9uVGltZSIsInByaW9yaXR5TGV2ZWwiLCJuYXZpZ2F0b3IiLCJzY2hlZHVsaW5nIiwiaXNJbnB1dFBlbmRpbmciLCJNZXNzYWdlQ2hhbm5lbCIsInBvcnQyIiwicG9ydDEiLCJvbm1lc3NhZ2UiLCJwb3N0TWVzc2FnZSIsInVuc3RhYmxlX1Byb2ZpbGluZyIsInVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uIiwidW5zdGFibGVfZm9yY2VGcmFtZVJhdGUiLCJmbG9vciIsInVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlIiwidW5zdGFibGVfbmV4dCIsInVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uIiwidW5zdGFibGVfcnVuV2l0aFByaW9yaXR5IiwiZGVsYXkiLCJ1bnN0YWJsZV93cmFwQ2FsbGJhY2siLCJzdHlsZXNJbkRPTSIsImdldEluZGV4QnlJZGVudGlmaWVyIiwiaWRlbnRpZmllciIsIm1vZHVsZXNUb0RvbSIsImlkQ291bnRNYXAiLCJpZGVudGlmaWVycyIsImNvdW50IiwiaW5kZXhCeUlkZW50aWZpZXIiLCJjc3MiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwiYWRkRWxlbWVudFN0eWxlIiwiYnlJbmRleCIsImFwaSIsImRvbUFQSSIsInVwZGF0ZSIsIm5ld09iaiIsInJlbW92ZSIsImxhc3RJZGVudGlmaWVycyIsIm5ld0xpc3QiLCJuZXdMYXN0SWRlbnRpZmllcnMiLCJfaSIsIl9pbmRleCIsIm1lbW8iLCJpbnNlcnQiLCJzdHlsZVRhcmdldCIsInF1ZXJ5U2VsZWN0b3IiLCJjb250ZW50RG9jdW1lbnQiLCJoZWFkIiwiZ2V0VGFyZ2V0Iiwic2V0QXR0cmlidXRlcyIsImF0dHJpYnV0ZXMiLCJzdHlsZUVsZW1lbnQiLCJub25jZSIsImluc2VydFN0eWxlRWxlbWVudCIsInN0eWxlVGFnVHJhbnNmb3JtIiwicmVtb3ZlU3R5bGVFbGVtZW50Iiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJwcm9wZXJ0aWVzIiwiaXNCcm93c2VyIiwiaXNGaXJlZm94IiwibW96SW5uZXJTY3JlZW5YIiwiZ2V0Q2FyZXRDb29yZGluYXRlcyIsInBvc2l0aW9uIiwiZGVidWciLCJkaXYiLCJjb21wdXRlZCIsImdldENvbXB1dGVkU3R5bGUiLCJjdXJyZW50U3R5bGUiLCJpc0lucHV0Iiwid2hpdGVTcGFjZSIsIndvcmRXcmFwIiwidmlzaWJpbGl0eSIsInByb3AiLCJzY3JvbGxIZWlnaHQiLCJwYXJzZUludCIsIm92ZXJmbG93WSIsInNwYW4iLCJjb29yZGluYXRlcyIsIm9mZnNldFRvcCIsIm9mZnNldExlZnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiZ2V0dGVyIiwiZGVmaW5pdGlvbiIsIm8iLCJnbG9iYWxUaGlzIiwiRnVuY3Rpb24iLCJ0b1N0cmluZ1RhZyIsIm5jIiwiSW5mb1NlcnZpY2UiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiT3AiLCJkZXNjIiwiJFN5bWJvbCIsIml0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZ1N5bWJvbCIsIndyaXRhYmxlIiwid3JhcCIsImlubmVyRm4iLCJvdXRlckZuIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZWplY3QiLCJyZWNvcmQiLCJfdHlwZW9mIiwiX19hd2FpdCIsInVud3JhcHBlZCIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIm1ldGhvZE5hbWUiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImRvbmVSZXN1bHQiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJpdGVyIiwidmFsIiwicmV2ZXJzZSIsInNraXBUZW1wUmVzZXQiLCJwcmV2Iiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpcHRvciIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJfdG9QcmltaXRpdmUiLCJNb2NrdXBJbmZvU2VydmljZUltcGwiLCJDb25zdHJ1Y3RvciIsIl9jbGFzc0NhbGxDaGVjayIsInByb3RvUHJvcHMiLCJfbG9nb3V0IiwiX2dldFNlc3Npb25JbmZvIiwiX2xvZ2luIiwiX2NhbGxlZSIsInNsZWVwIiwibXMiLCJfY2FsbGVlMiIsInVzZXJuYW1lIiwiX2NvbnRleHQyIiwicmVhbG0iLCJyb2xlcyIsImV4cGlyZXMiLCJfeCIsIl9jYWxsZWUzIiwiX2NvbnRleHQzIiwiaGFuZGxlRXJyb3IiLCJTZXJ2ZXJWZXJzaW9uSW5mbyIsIl91c2VTdGF0ZTIiLCJzZXRWZXJzaW9uIiwiZ2V0VmVyc2lvbkluZm8iLCJzZXJ2ZXJWZXJzaW9uIiwibm9CdWlsZCIsImdldFNlcnZlclZlcnNpb25JbmZvIiwiUmVhY3QiLCJjbGFzc05hbWUiLCJleGNsdWRlZCIsInNvdXJjZUtleXMiLCJkZWZhdWx0S2V5Iiwic3Vic3RyIiwidXNlVW5jb250cm9sbGVkUHJvcCIsInByb3BWYWx1ZSIsImhhbmRsZXIiLCJ3YXNQcm9wUmVmIiwiX3VzZVN0YXRlIiwic3RhdGVWYWx1ZSIsInNldFN0YXRlIiwiaXNQcm9wIiwid2FzUHJvcCIsInVzZVVuY29udHJvbGxlZCIsImNvbmZpZyIsInJlZHVjZSIsImZpZWxkTmFtZSIsIl9leHRlbmRzMiIsIl9yZWYiLCJwcm9wc1ZhbHVlIiwicmVzdCIsImhhbmRsZXJOYW1lIiwiX3VzZVVuY29udHJvbGxlZFByb3AiLCJ1c2VFdmVudENhbGxiYWNrIiwidXNlTW91bnRlZCIsIm1vdW50ZWQiLCJ1c2VQcmV2aW91cyIsImlzUmVhY3ROYXRpdmUiLCJwcm9kdWN0IiwiX2V4Y2x1ZGVkIiwidXNlQnV0dG9uUHJvcHMiLCJyZWwiLCJyb2xlIiwidGFiSW5kZXgiLCJoYW5kbGVDbGljayIsImlzVHJpdmlhbEhyZWYiLCJvbktleURvd24iLCJCdXR0b24iLCJhcyIsImFzUHJvcCIsImJ1dHRvblByb3BzIiwiQW5jaG9yIiwiaGFuZGxlS2V5RG93biIsIlRoZW1lQ29udGV4dCIsInByZWZpeGVzIiwiYnJlYWtwb2ludHMiLCJtaW5CcmVha3BvaW50IiwiQ29uc3VtZXIiLCJQcm92aWRlciIsInVzZUJvb3RzdHJhcFByZWZpeCIsInByZWZpeCIsImRlZmF1bHRQcmVmaXgiLCJfc2V0UHJvdG90eXBlT2YiLCJVTk1PVU5URUQiLCJFWElURUQiLCJFTlRFUklORyIsIkVOVEVSRUQiLCJFWElUSU5HIiwiVHJhbnNpdGlvbiIsIl9SZWFjdCRDb21wb25lbnQiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJfdGhpcyIsImluaXRpYWxTdGF0dXMiLCJhcHBlYXIiLCJpc01vdW50aW5nIiwiZW50ZXIiLCJhcHBlYXJTdGF0dXMiLCJpbiIsInVubW91bnRPbkV4aXQiLCJtb3VudE9uRW50ZXIiLCJzdGF0dXMiLCJuZXh0Q2FsbGJhY2siLCJwcmV2U3RhdGUiLCJfcHJvdG8iLCJ1cGRhdGVTdGF0dXMiLCJwcmV2UHJvcHMiLCJuZXh0U3RhdHVzIiwiY2FuY2VsTmV4dENhbGxiYWNrIiwiZ2V0VGltZW91dHMiLCJleGl0IiwidGltZW91dCIsIm1vdW50aW5nIiwibm9kZVJlZiIsImZvcmNlUmVmbG93IiwicGVyZm9ybUVudGVyIiwicGVyZm9ybUV4aXQiLCJfdGhpczIiLCJhcHBlYXJpbmciLCJfcmVmMiIsIm1heWJlTm9kZSIsIm1heWJlQXBwZWFyaW5nIiwidGltZW91dHMiLCJlbnRlclRpbWVvdXQiLCJvbkVudGVyIiwic2FmZVNldFN0YXRlIiwib25FbnRlcmluZyIsIm9uVHJhbnNpdGlvbkVuZCIsIm9uRW50ZXJlZCIsIl90aGlzMyIsIm9uRXhpdCIsIm9uRXhpdGluZyIsIm9uRXhpdGVkIiwiY2FuY2VsIiwibmV4dFN0YXRlIiwic2V0TmV4dENhbGxiYWNrIiwiX3RoaXM0IiwiYWN0aXZlIiwiZG9lc05vdEhhdmVUaW1lb3V0T3JMaXN0ZW5lciIsImFkZEVuZExpc3RlbmVyIiwiX3JlZjMiLCJtYXliZU5leHRDYWxsYmFjayIsIl90aGlzJHByb3BzIiwiY2hpbGRQcm9wcyIsIlRyYW5zaXRpb25Hcm91cENvbnRleHQiLCJwcm9wVHlwZXMiLCJyVXBwZXIiLCJtc1BhdHRlcm4iLCJoeXBoZW5hdGVTdHlsZU5hbWUiLCJoeXBoZW5hdGUiLCJzdXBwb3J0ZWRUcmFuc2Zvcm1zIiwicHJvcGVydHkiLCJ0cmFuc2Zvcm1zIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInBzdWVkb0VsZW1lbnQiLCJkb2MiLCJvd25lcldpbmRvdyIsImlzVHJhbnNmb3JtIiwicmVtb3ZlUHJvcGVydHkiLCJvcHRpb25zU3VwcG9ydGVkIiwib25jZVN1cHBvcnRlZCIsIm9uY2UiLCJjYW5Vc2VET00iLCJldmVudE5hbWUiLCJ3cmFwcGVkSGFuZGxlciIsIl9fb25jZSIsIm9uY2VIYW5kbGVyIiwidHJhbnNpdGlvbkVuZCIsImR1cmF0aW9uIiwicGFkZGluZyIsInN0ciIsIm11bHQiLCJwYXJzZUZsb2F0IiwicmVtb3ZlRW11bGF0ZSIsImNhbGxlZCIsImNyZWF0ZUV2ZW50IiwiaW5pdEV2ZW50IiwidHJpZ2dlckV2ZW50IiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJ0cmFuc2l0aW9uRW5kTGlzdGVuZXIiLCJ0cmlnZ2VyQnJvd3NlclJlZmxvdyIsIm9mZnNldEhlaWdodCIsInRvRm5SZWYiLCJyZWZBIiwicmVmQiIsIm1lcmdlUmVmcyIsImNoaWxkUmVmIiwibWVyZ2VkUmVmIiwiYXR0YWNoUmVmIiwiY29tcG9uZW50T3JFbGVtZW50Iiwibm9ybWFsaXplIiwiaGFuZGxlRW50ZXIiLCJoYW5kbGVFbnRlcmluZyIsImhhbmRsZUVudGVyZWQiLCJoYW5kbGVFeGl0IiwiaGFuZGxlRXhpdGluZyIsImhhbmRsZUV4aXRlZCIsImhhbmRsZUFkZEVuZExpc3RlbmVyIiwiaW5uZXJQcm9wcyIsImZhZGVTdHlsZXMiLCJGYWRlIiwidHJhbnNpdGlvbkNsYXNzZXMiLCJpc0FwcGVhcmluZyIsInZhcmlhbnQiLCJDbG9zZUJ1dHRvbiIsImFyaWFMYWJlbCIsInJIeXBoZW4iLCJwYXNjYWxDYXNlIiwiXyIsImNociIsImNyZWF0ZVdpdGhCc1ByZWZpeCIsIkJzQ29tcG9uZW50IiwiYnNQcmVmaXgiLCJUYWciLCJjb21wb25lbnRQcm9wcyIsInJlc29sdmVkUHJlZml4IiwiRGl2U3R5bGVkQXNINCIsImRpdldpdGhDbGFzc05hbWUiLCJBbGVydEhlYWRpbmciLCJBbGVydExpbmsiLCJBbGVydCIsInVuY29udHJvbGxlZFByb3BzIiwic2hvdyIsImNsb3NlTGFiZWwiLCJjbG9zZVZhcmlhbnQiLCJvbkNsb3NlIiwiZGlzbWlzc2libGUiLCJoYW5kbGVDbG9zZSIsImFsZXJ0IiwiTGluayIsIkhlYWRpbmciLCJNZXNzYWdlIiwiaGVhZGluZyIsImljb24iLCJzaG93SWNvbiIsImljb25DbGFzcyIsInNldFNob3ciLCJFcnJvck1lc3NhZ2UiLCJ3YXJuIiwiTG9hZGluZ0luZm8iLCJ0aXRsZSIsIl9sb2dpbjIiLCJzZXJ2aWNlIiwibG9naW4iLCJoYW5kbGVTdWJtaXQiLCJzaG93TG9hZGluZ0luZm8iLCJzdWJtaXQiLCJsb2dpbl9wcm9taXNlIiwiX3gyIiwiVGltZW91dCIsIk51bWJlciIsImlzSW50ZWdlciIsInBhdXNlIiwiTG9naW5Gb3JtSW5wdXRzIiwic2hvd01lc3NhZ2VzIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJ3cmFwcGVkT25FcnJvciIsIl94MyIsIm9uU3VibWl0IiwicGxhY2Vob2xkZXIiLCJMb2dpbkZvcm1NZXNzYWdlIiwibWVzc2FnZVR5cGUiLCJzaG93SW5wdXRzIiwiTG9naW5Gb3JtIiwiX3JlZjQiLCJzZXRTaG93SW5wdXRzIiwidG9BcnJheSIsInFzYSIsInNlbGVjdG9yIiwidXNlRm9yY2VVcGRhdGUiLCJmaW5kIiwidGFyIiwiZGVxdWFsIiwiZm9vIiwiYmFyIiwibGVuIiwidG1wIiwiZ2V0VGltZSIsIlJlZ0V4cCIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkRhdGFWaWV3IiwiYnl0ZUxlbmd0aCIsImdldEludDgiLCJpc1ZpZXciLCJnZXRCYXNlUGxhY2VtZW50IiwicGxhY2VtZW50IiwiZ2V0V2luZG93IiwiaXNFbGVtZW50IiwiRWxlbWVudCIsImlzSFRNTEVsZW1lbnQiLCJIVE1MRWxlbWVudCIsImlzU2hhZG93Um9vdCIsIlNoYWRvd1Jvb3QiLCJtYXgiLCJyb3VuZCIsImdldFVBU3RyaW5nIiwidWFEYXRhIiwidXNlckFnZW50RGF0YSIsImJyYW5kcyIsImJyYW5kIiwidXNlckFnZW50IiwiaXNMYXlvdXRWaWV3cG9ydCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImluY2x1ZGVTY2FsZSIsImlzRml4ZWRTdHJhdGVneSIsImNsaWVudFJlY3QiLCJzY2FsZVgiLCJzY2FsZVkiLCJvZmZzZXRXaWR0aCIsInZpc3VhbFZpZXdwb3J0IiwiYWRkVmlzdWFsT2Zmc2V0cyIsInJpZ2h0IiwiYm90dG9tIiwiZ2V0TGF5b3V0UmVjdCIsImFicyIsInBhcmVudCIsInJvb3ROb2RlIiwiZ2V0Um9vdE5vZGUiLCJpc1NhbWVOb2RlIiwiaG9zdCIsImdldE5vZGVOYW1lIiwiaXNUYWJsZUVsZW1lbnQiLCJnZXREb2N1bWVudEVsZW1lbnQiLCJnZXRQYXJlbnROb2RlIiwiYXNzaWduZWRTbG90IiwiZ2V0VHJ1ZU9mZnNldFBhcmVudCIsIm9mZnNldFBhcmVudCIsImdldE9mZnNldFBhcmVudCIsImN1cnJlbnROb2RlIiwidHJhbnNmb3JtIiwicGVyc3BlY3RpdmUiLCJjb250YWluIiwid2lsbENoYW5nZSIsImZpbHRlciIsImdldENvbnRhaW5pbmdCbG9jayIsImdldE1haW5BeGlzRnJvbVBsYWNlbWVudCIsIndpdGhpbiIsIm1lcmdlUGFkZGluZ09iamVjdCIsInBhZGRpbmdPYmplY3QiLCJleHBhbmRUb0hhc2hNYXAiLCJoYXNoTWFwIiwiYXV0byIsImJhc2VQbGFjZW1lbnRzIiwidmlld3BvcnQiLCJwb3BwZXIiLCJ2YXJpYXRpb25QbGFjZW1lbnRzIiwiYWNjIiwibW9kaWZpZXJQaGFzZXMiLCJlbmFibGVkIiwicGhhc2UiLCJfc3RhdGUkbW9kaWZpZXJzRGF0YSQiLCJhcnJvd0VsZW1lbnQiLCJlbGVtZW50cyIsImFycm93IiwicG9wcGVyT2Zmc2V0cyIsIm1vZGlmaWVyc0RhdGEiLCJiYXNlUGxhY2VtZW50IiwiYXhpcyIsInJlY3RzIiwidG9QYWRkaW5nT2JqZWN0IiwiYXJyb3dSZWN0IiwibWluUHJvcCIsIm1heFByb3AiLCJlbmREaWZmIiwicmVmZXJlbmNlIiwic3RhcnREaWZmIiwiYXJyb3dPZmZzZXRQYXJlbnQiLCJjbGllbnRTaXplIiwiY2xpZW50SGVpZ2h0IiwiY2xpZW50V2lkdGgiLCJjZW50ZXJUb1JlZmVyZW5jZSIsImNlbnRlciIsImF4aXNQcm9wIiwiY2VudGVyT2Zmc2V0IiwiZWZmZWN0IiwiX29wdGlvbnMkZWxlbWVudCIsInJlcXVpcmVzIiwicmVxdWlyZXNJZkV4aXN0cyIsImdldFZhcmlhdGlvbiIsInVuc2V0U2lkZXMiLCJtYXBUb1N0eWxlcyIsIl9PYmplY3QkYXNzaWduMiIsInBvcHBlclJlY3QiLCJ2YXJpYXRpb24iLCJvZmZzZXRzIiwiZ3B1QWNjZWxlcmF0aW9uIiwiYWRhcHRpdmUiLCJyb3VuZE9mZnNldHMiLCJpc0ZpeGVkIiwiX29mZnNldHMkeCIsIl9vZmZzZXRzJHkiLCJoYXNYIiwiaGFzWSIsInNpZGVYIiwic2lkZVkiLCJ3aW4iLCJoZWlnaHRQcm9wIiwid2lkdGhQcm9wIiwiX09iamVjdCRhc3NpZ24iLCJjb21tb25TdHlsZXMiLCJkcHIiLCJkZXZpY2VQaXhlbFJhdGlvIiwicm91bmRPZmZzZXRzQnlEUFIiLCJfcmVmNSIsIl9vcHRpb25zJGdwdUFjY2VsZXJhdCIsIl9vcHRpb25zJGFkYXB0aXZlIiwiX29wdGlvbnMkcm91bmRPZmZzZXRzIiwic3RyYXRlZ3kiLCJzdHlsZXMiLCJfb3B0aW9ucyRzY3JvbGwiLCJzY3JvbGwiLCJfb3B0aW9ucyRyZXNpemUiLCJyZXNpemUiLCJzY3JvbGxQYXJlbnRzIiwic2Nyb2xsUGFyZW50IiwiaGFzaCIsImdldE9wcG9zaXRlUGxhY2VtZW50IiwibWF0Y2hlZCIsImdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50IiwiZ2V0V2luZG93U2Nyb2xsIiwicGFnZVhPZmZzZXQiLCJwYWdlWU9mZnNldCIsImdldFdpbmRvd1Njcm9sbEJhclgiLCJpc1Njcm9sbFBhcmVudCIsIl9nZXRDb21wdXRlZFN0eWxlIiwib3ZlcmZsb3dYIiwiZ2V0U2Nyb2xsUGFyZW50IiwibGlzdFNjcm9sbFBhcmVudHMiLCJfZWxlbWVudCRvd25lckRvY3VtZW4iLCJpc0JvZHkiLCJ1cGRhdGVkTGlzdCIsInJlY3RUb0NsaWVudFJlY3QiLCJyZWN0IiwiZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUiLCJjbGlwcGluZ1BhcmVudCIsImh0bWwiLCJsYXlvdXRWaWV3cG9ydCIsImdldFZpZXdwb3J0UmVjdCIsImNsaWVudFRvcCIsImNsaWVudExlZnQiLCJnZXRJbm5lckJvdW5kaW5nQ2xpZW50UmVjdCIsIndpblNjcm9sbCIsInNjcm9sbFdpZHRoIiwiZGlyZWN0aW9uIiwiZ2V0RG9jdW1lbnRSZWN0IiwiY29tcHV0ZU9mZnNldHMiLCJjb21tb25YIiwiY29tbW9uWSIsIm1haW5BeGlzIiwiZGV0ZWN0T3ZlcmZsb3ciLCJfb3B0aW9ucyIsIl9vcHRpb25zJHBsYWNlbWVudCIsIl9vcHRpb25zJHN0cmF0ZWd5IiwiX29wdGlvbnMkYm91bmRhcnkiLCJib3VuZGFyeSIsIl9vcHRpb25zJHJvb3RCb3VuZGFyeSIsInJvb3RCb3VuZGFyeSIsIl9vcHRpb25zJGVsZW1lbnRDb250ZSIsImVsZW1lbnRDb250ZXh0IiwiX29wdGlvbnMkYWx0Qm91bmRhcnkiLCJhbHRCb3VuZGFyeSIsIl9vcHRpb25zJHBhZGRpbmciLCJhbHRDb250ZXh0IiwiY2xpcHBpbmdDbGllbnRSZWN0IiwibWFpbkNsaXBwaW5nUGFyZW50cyIsImNsaXBwaW5nUGFyZW50cyIsImNsaXBwZXJFbGVtZW50IiwiZ2V0Q2xpcHBpbmdQYXJlbnRzIiwiZmlyc3RDbGlwcGluZ1BhcmVudCIsImNsaXBwaW5nUmVjdCIsImFjY1JlY3QiLCJnZXRDbGlwcGluZ1JlY3QiLCJjb250ZXh0RWxlbWVudCIsInJlZmVyZW5jZUNsaWVudFJlY3QiLCJwb3BwZXJDbGllbnRSZWN0IiwiZWxlbWVudENsaWVudFJlY3QiLCJvdmVyZmxvd09mZnNldHMiLCJvZmZzZXREYXRhIiwibXVsdGlwbHkiLCJfc2tpcCIsIl9vcHRpb25zJG1haW5BeGlzIiwiY2hlY2tNYWluQXhpcyIsIl9vcHRpb25zJGFsdEF4aXMiLCJhbHRBeGlzIiwiY2hlY2tBbHRBeGlzIiwic3BlY2lmaWVkRmFsbGJhY2tQbGFjZW1lbnRzIiwiZmFsbGJhY2tQbGFjZW1lbnRzIiwiX29wdGlvbnMkZmxpcFZhcmlhdGlvIiwiZmxpcFZhcmlhdGlvbnMiLCJhbGxvd2VkQXV0b1BsYWNlbWVudHMiLCJwcmVmZXJyZWRQbGFjZW1lbnQiLCJvcHBvc2l0ZVBsYWNlbWVudCIsImdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzIiwicGxhY2VtZW50cyIsIl9vcHRpb25zJGFsbG93ZWRBdXRvUCIsImFsbG93ZWRQbGFjZW1lbnRzIiwib3ZlcmZsb3dzIiwic29ydCIsImNvbXB1dGVBdXRvUGxhY2VtZW50IiwicmVmZXJlbmNlUmVjdCIsImNoZWNrc01hcCIsIm1ha2VGYWxsYmFja0NoZWNrcyIsImZpcnN0Rml0dGluZ1BsYWNlbWVudCIsIl9iYXNlUGxhY2VtZW50IiwiaXNTdGFydFZhcmlhdGlvbiIsImlzVmVydGljYWwiLCJtYWluVmFyaWF0aW9uU2lkZSIsImFsdFZhcmlhdGlvblNpZGUiLCJjaGVja3MiLCJldmVyeSIsImNoZWNrIiwiX2xvb3AiLCJmaXR0aW5nUGxhY2VtZW50IiwiZ2V0U2lkZU9mZnNldHMiLCJwcmV2ZW50ZWRPZmZzZXRzIiwiaXNBbnlTaWRlRnVsbHlDbGlwcGVkIiwic29tZSIsInNpZGUiLCJfb3B0aW9ucyRvZmZzZXQiLCJpbnZlcnREaXN0YW5jZSIsInNraWRkaW5nIiwiZGlzdGFuY2UiLCJkaXN0YW5jZUFuZFNraWRkaW5nVG9YWSIsIl9kYXRhJHN0YXRlJHBsYWNlbWVudCIsIl9vcHRpb25zJHRldGhlciIsInRldGhlciIsIl9vcHRpb25zJHRldGhlck9mZnNldCIsInRldGhlck9mZnNldCIsImlzQmFzZVBsYWNlbWVudCIsInRldGhlck9mZnNldFZhbHVlIiwibm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlIiwib2Zmc2V0TW9kaWZpZXJTdGF0ZSIsIl9vZmZzZXRNb2RpZmllclN0YXRlJCIsIm1haW5TaWRlIiwiYWx0U2lkZSIsImFkZGl0aXZlIiwibWluTGVuIiwibWF4TGVuIiwiYXJyb3dQYWRkaW5nT2JqZWN0IiwiYXJyb3dQYWRkaW5nTWluIiwiYXJyb3dQYWRkaW5nTWF4IiwiYXJyb3dMZW4iLCJtaW5PZmZzZXQiLCJtYXhPZmZzZXQiLCJjbGllbnRPZmZzZXQiLCJvZmZzZXRNb2RpZmllclZhbHVlIiwidGV0aGVyTWF4IiwicHJldmVudGVkT2Zmc2V0IiwiX29mZnNldE1vZGlmaWVyU3RhdGUkMiIsIl9tYWluU2lkZSIsIl9hbHRTaWRlIiwiX29mZnNldCIsIl9taW4iLCJfbWF4IiwiaXNPcmlnaW5TaWRlIiwiX29mZnNldE1vZGlmaWVyVmFsdWUiLCJfdGV0aGVyTWluIiwiX3RldGhlck1heCIsIl9wcmV2ZW50ZWRPZmZzZXQiLCJ3aXRoaW5NYXhDbGFtcCIsImdldENvbXBvc2l0ZVJlY3QiLCJlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCIsImlzT2Zmc2V0UGFyZW50QW5FbGVtZW50Iiwib2Zmc2V0UGFyZW50SXNTY2FsZWQiLCJpc0VsZW1lbnRTY2FsZWQiLCJtb2RpZmllcnMiLCJ2aXNpdGVkIiwibW9kaWZpZXIiLCJkZXAiLCJkZXBNb2RpZmllciIsIkRFRkFVTFRfT1BUSU9OUyIsImFyZVZhbGlkRWxlbWVudHMiLCJnZW5lcmF0b3JPcHRpb25zIiwiX2dlbmVyYXRvck9wdGlvbnMiLCJfZ2VuZXJhdG9yT3B0aW9ucyRkZWYiLCJkZWZhdWx0TW9kaWZpZXJzIiwiX2dlbmVyYXRvck9wdGlvbnMkZGVmMiIsImRlZmF1bHRPcHRpb25zIiwib3JkZXJlZE1vZGlmaWVycyIsImVmZmVjdENsZWFudXBGbnMiLCJpc0Rlc3Ryb3llZCIsInNldE9wdGlvbnMiLCJzZXRPcHRpb25zQWN0aW9uIiwiY2xlYW51cE1vZGlmaWVyRWZmZWN0cyIsIm1lcmdlZCIsIm9yZGVyTW9kaWZpZXJzIiwiZXhpc3RpbmciLCJfcmVmMyRvcHRpb25zIiwiY2xlYW51cEZuIiwiZm9yY2VVcGRhdGUiLCJfc3RhdGUkZWxlbWVudHMiLCJfc3RhdGUkb3JkZXJlZE1vZGlmaWUiLCJfc3RhdGUkb3JkZXJlZE1vZGlmaWUyIiwib25GaXJzdFVwZGF0ZSIsInBvcHBlckdlbmVyYXRvciIsInByZXZlbnRPdmVyZmxvdyIsInJlZmVyZW5jZU92ZXJmbG93IiwicG9wcGVyQWx0T3ZlcmZsb3ciLCJyZWZlcmVuY2VDbGlwcGluZ09mZnNldHMiLCJwb3BwZXJFc2NhcGVPZmZzZXRzIiwiaXNSZWZlcmVuY2VIaWRkZW4iLCJoYXNQb3BwZXJFc2NhcGVkIiwiZXZlbnRMaXN0ZW5lcnMiLCJkaXNhYmxlZEFwcGx5U3R5bGVzTW9kaWZpZXIiLCJhcmlhRGVzY3JpYmVkQnlNb2RpZmllciIsImlkcyIsImdldEF0dHJpYnV0ZSIsIl9wb3BwZXIkZ2V0QXR0cmlidXRlIiwiRU1QVFlfTU9ESUZJRVJTIiwicmVmZXJlbmNlRWxlbWVudCIsInBvcHBlckVsZW1lbnQiLCJwcmV2TW9kaWZpZXJzIiwicG9wcGVySW5zdGFuY2VSZWYiLCJfcG9wcGVySW5zdGFuY2VSZWYkY3UiLCJfcG9wcGVySW5zdGFuY2VSZWYkY3UyIiwicG9wcGVyU3RhdGUiLCJ1cGRhdGVNb2RpZmllciIsIm5leHRNb2RpZmllcnMiLCJzIiwiZ2V0UmVmVGFyZ2V0IiwiSW5pdGlhbFRyaWdnZXJFdmVudHMiLCJjbGljayIsIm1vdXNldXAiLCJwb2ludGVydXAiLCJvbkNsaWNrT3V0c2lkZSIsImNsaWNrVHJpZ2dlciIsInByZXZlbnRNb3VzZUNsaWNrT3V0c2lkZVJlZiIsIndhaXRpbmdGb3JUcmlnZ2VyIiwiaGFuZGxlTW91c2VDYXB0dXJlIiwiaXNMZWZ0Q2xpY2tFdmVudCIsImhhbmRsZUluaXRpYWxNb3VzZSIsImhhbmRsZU1vdXNlIiwiY3VycmVudEV2ZW50IiwicmVtb3ZlSW5pdGlhbFRyaWdnZXJMaXN0ZW5lciIsInJlbW92ZU1vdXNlQ2FwdHVyZUxpc3RlbmVyIiwicmVtb3ZlTW91c2VMaXN0ZW5lciIsIm1vYmlsZVNhZmFyaUhhY2tMaXN0ZW5lcnMiLCJ0b01vZGlmaWVyQXJyYXkiLCJ1c2VEcm9wZG93bk1lbnUiLCJhdHRhY2hBcnJvd1JlZiIsImhhc1Nob3duUmVmIiwiZmxpcCIsInJvb3RDbG9zZUV2ZW50IiwiZml4ZWQiLCJwbGFjZW1lbnRPdmVycmlkZSIsInBvcHBlckNvbmZpZyIsImVuYWJsZUV2ZW50TGlzdGVuZXJzIiwidXNlUG9wcGVyIiwic2hvdWxkVXNlUG9wcGVyIiwic2V0TWVudSIsIm1lbnVFbGVtZW50IiwidG9nZ2xlRWxlbWVudCIsImVuYWJsZUV2ZW50cyIsImNvbnRhaW5lclBhZGRpbmciLCJfbW9kaWZpZXJzJGV2ZW50TGlzdGUiLCJfbW9kaWZpZXJzJHByZXZlbnRPdmUiLCJfbW9kaWZpZXJzJHByZXZlbnRPdmUyIiwiX21vZGlmaWVycyRvZmZzZXQiLCJfbW9kaWZpZXJzJGFycm93IiwidG9Nb2RpZmllck1hcCIsIm1lcmdlT3B0aW9uc1dpdGhQb3BwZXJDb25maWciLCJtZW51UHJvcHMiLCJtZXRhZGF0YSIsImhhc1Nob3duIiwidG9nZ2xlIiwiYXJyb3dQcm9wcyIsIkRyb3Bkb3duTWVudSIsIiQ3MDRjZjFkM2I2ODRjYzVjJHZhciRkZWZhdWx0Q29udGV4dCIsImlzU1NSIiwiJDcwNGNmMWQzYjY4NGNjNWMkdmFyJFNTUkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiJDcwNGNmMWQzYjY4NGNjNWMkdmFyJGNhblVzZURPTSIsIkJvb2xlYW4iLCIkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkY29tcG9uZW50SWRzIiwiaXNSb2xlTWVudSIsIl9lbCRnZXRBdHRyaWJ1dGUiLCJ1c2VEcm9wZG93blRvZ2dsZSIsImRlZmF1bHRJZCIsImN0eCIsImNvdW50ZXIiLCJfUmVhY3RfX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQiLCJfUmVhY3RfX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRURfUmVhY3RDdXJyZW50T3duZXIiLCJjdXJyZW50T3duZXIiLCJwcmV2Q29tcG9uZW50VmFsdWUiLCIkNzA0Y2YxZDNiNjg0Y2M1YyR2YXIkdXNlQ291bnRlciIsInNldFRvZ2dsZSIsIkRyb3Bkb3duVG9nZ2xlIiwibWFrZUV2ZW50S2V5IiwiZXZlbnRLZXkiLCJOYXZDb250ZXh0IiwiQVRUUklCVVRFX1BSRUZJWCIsImRhdGFBdHRyIiwidXNlRHJvcGRvd25JdGVtIiwib25TZWxlY3RDdHgiLCJuYXZDb250ZXh0IiwiYWN0aXZlS2V5IiwiaXNBY3RpdmUiLCJEcm9wZG93bkl0ZW0iLCJkcm9wZG93bkl0ZW1Qcm9wcyIsInVzZVdpbmRvdyIsInVzZVJlZldpdGhVcGRhdGUiLCJEcm9wZG93biIsImRlZmF1bHRTaG93IiwicmF3U2hvdyIsIm9uU2VsZWN0Iiwib25Ub2dnbGUiLCJyYXdPblRvZ2dsZSIsIml0ZW1TZWxlY3RvciIsImZvY3VzRmlyc3RJdGVtT25TaG93IiwibWVudVJlZiIsInRvZ2dsZVJlZiIsImxhc3RTaG93IiwibGFzdFNvdXJjZUV2ZW50IiwiZm9jdXNJbkRyb3Bkb3duIiwibmV4dFNob3ciLCJvcmlnaW5hbEV2ZW50IiwiaGFuZGxlU2VsZWN0IiwiZm9jdXNUb2dnbGUiLCJtYXliZUZvY3VzRmlyc3QiLCJmb2N1c1R5cGUiLCJmaXJzdCIsImdldE5leHRGb2N1c2VkQ2hpbGQiLCJpdGVtcyIsImV2ZW50VGFyZ2V0IiwiX21lbnVSZWYkY3VycmVudCIsIl90b2dnbGVSZWYkY3VycmVudCIsImZyb21NZW51IiwiZnJvbVRvZ2dsZSIsIl9tZW51UmVmJGN1cnJlbnQyIiwiVG9nZ2xlIiwiSXRlbSIsInVzZVdyYXBwZWRSZWZXaXRoV2FybmluZyIsImdldERyb3Bkb3duTWVudVBsYWNlbWVudCIsImFsaWduRW5kIiwiZHJvcERpcmVjdGlvbiIsImlzUlRMIiwiYWxpZ24iLCJzaG93UHJvcHMiLCJyZW5kZXJPbk1vdW50IiwiaXNOYXZiYXIiLCJOYXZiYXJDb250ZXh0IiwiY29udGV4dEFsaWduIiwiZHJvcCIsImlzSW5wdXRHcm91cCIsIklucHV0R3JvdXBDb250ZXh0IiwiYWxpZ25DbGFzc2VzIiwiYnJrUG9pbnQiLCJ1c2VJc29tb3JwaGljRWZmZWN0IiwiY2xvc2UiLCJjaGlsZEJzUHJlZml4IiwiZHJvcGRvd25Db250ZXh0IiwidG9nZ2xlUHJvcHMiLCJEcm9wZG93bkhlYWRlciIsIkRyb3Bkb3duRGl2aWRlciIsIkRyb3Bkb3duSXRlbVRleHQiLCJwUHJvcHMiLCJuYXZiYXIiLCJfNCIsImF1dG9DbG9zZSIsImRpciIsInVzZUlzUlRMIiwiaGFuZGxlVG9nZ2xlIiwiY29udGV4dFZhbHVlIiwiZGlyZWN0aW9uQ2xhc3NlcyIsImRvd24iLCJ1cCIsIkl0ZW1UZXh0IiwiRGl2aWRlciIsIkhlYWRlciIsInVzZU5hdkl0ZW0iLCJwYXJlbnRPblNlbGVjdCIsInRhYkNvbnRleHQiLCJjb250ZXh0Q29udHJvbGxlcklkIiwiZ2V0Q29udHJvbGxlcklkIiwiY29udGV4dENvbnRyb2xsZWRJZCIsImdldENvbnRyb2xsZWRJZCIsIk5hdkl0ZW0iLCJOYXZMaW5rIiwibmF2SXRlbVByb3BzIiwiTmF2RHJvcGRvd24iLCJtZW51Um9sZSIsInJlbmRlck1lbnVPbk1vdW50IiwibWVudVZhcmlhbnQiLCJuYXZJdGVtUHJlZml4IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJhcnIiLCJhcnIyIiwiVXNlckNvbXBvbmVudCIsIm9uTG9naW4iLCJvbkxvZ291dCIsIl9hcnJheVdpdGhIb2xlcyIsIl9zIiwiX2UiLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiZnJvbSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJjb21wb25lbnQiLCJzZXRDb21wb25lbnQiLCJzaG93X2NvbXBvbmVudCIsInNob3dfbG9naW5fZm9ybSIsImxvZ291dF9jYWxsYmFjayIsIl9zZXJ2aWNlIiwibG9nb3V0IiwidDAiLCJzaG93X3Nlc3Npb25faW5mbyIsInNlc3Npb25faW5mbyIsIl9Vc2VyQ29tcG9uZW50IiwibG9naW5fZmFpbCIsImxvZ2luX3N1Y2Nlc3MiLCJnZXRTZXNzaW9uSW5mbyIsIkJyYW5kaW5nIiwiRVZFTlRfS0VZX0FUVFIiLCJOYXYiLCJuZWVkc1JlZm9jdXNSZWYiLCJsaXN0Tm9kZSIsImdldE5leHRBY3RpdmVUYWIiLCJjdXJyZW50TGlzdE5vZGUiLCJhY3RpdmVDaGlsZCIsIm5leHRJbmRleCIsIm5leHRBY3RpdmVDaGlsZCIsImluaXRpYWxCc1ByZWZpeCIsImZpbGwiLCJqdXN0aWZ5IiwibmF2YmFyU2Nyb2xsIiwibmF2YmFyQnNQcmVmaXgiLCJjYXJkSGVhZGVyQnNQcmVmaXgiLCJuYXZiYXJDb250ZXh0IiwiY2FyZEhlYWRlckNvbnRleHQiLCJDYXJkSGVhZGVyQ29udGV4dCIsIk5hdmJhckJyYW5kIiwiZnVuY3MiLCJNQVJHSU5TIiwiZ2V0RGVmYXVsdERpbWVuc2lvblZhbHVlIiwiZGltZW5zaW9uIiwiZWxlbSIsIm1hcmdpbnMiLCJjb2xsYXBzZVN0eWxlcyIsImluUHJvcCIsImdldERpbWVuc2lvblZhbHVlIiwiY29tcHV0ZWREaW1lbnNpb24iLCJOYXZiYXJDb2xsYXBzZSIsImV4cGFuZGVkIiwiTmF2YmFyVG9nZ2xlIiwibGFiZWwiLCJtYXRjaGVyc0J5V2luZG93IiwiZ2V0TWF0Y2hlciIsInF1ZXJ5IiwidGFyZ2V0V2luZG93IiwibWF0Y2hlcnMiLCJtcWwiLCJtYXRjaE1lZGlhIiwicmVmQ291bnQiLCJ1c2VNZWRpYVF1ZXJ5IiwibWF0Y2hlcyIsInNldE1hdGNoZXMiLCJoYW5kbGVDaGFuZ2UiLCJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIiwiYnJlYWtwb2ludFZhbHVlcyIsIm5hbWVzIiwiYW5kIiwiYnJlYWtwb2ludE9yTWFwIiwiYnJlYWtwb2ludE1hcCIsIl9icmVha3BvaW50TWFwIiwiZW50cmllcyIsImJyZWFrcG9pbnQiLCJnZXROZXh0IiwiZ2V0TWF4UXVlcnkiLCJjcmVhdGVCcmVha3BvaW50SG9vayIsInhzIiwic20iLCJ4bCIsInh4bCIsIk9QRU5fREFUQV9BVFRSSUJVVEUiLCJoYW5kbGVDb250YWluZXJPdmVyZmxvdyIsIm1vZGFscyIsImdldFNjcm9sbGJhcldpZHRoIiwiaW5uZXJXaWR0aCIsImdldEJvZHlTY3JvbGxiYXJXaWR0aCIsImdldEVsZW1lbnQiLCJzZXRNb2RhbEF0dHJpYnV0ZXMiLCJfbW9kYWwiLCJyZW1vdmVNb2RhbEF0dHJpYnV0ZXMiLCJzZXRDb250YWluZXJTdHlsZSIsImNvbnRhaW5lclN0YXRlIiwicGFkZGluZ1Byb3AiLCJjb250YWluZXIiLCJzY3JvbGxCYXJXaWR0aCIsInJlbW92ZUNvbnRhaW5lclN0eWxlIiwibW9kYWwiLCJtb2RhbElkeCIsImlzVG9wTW9kYWwiLCJyZXNvbHZlQ29udGFpbmVyUmVmIiwiaGFzRW50ZXJlZFJlZiIsImNvbWJpbmVkUmVmIiwiY2xvbmVFbGVtZW50IiwiSW1wZXJhdGl2ZVRyYW5zaXRpb24iLCJleGl0ZWQiLCJzZXRFeGl0ZWQiLCJvblRyYW5zaXRpb24iLCJpc0luaXRpYWxSZWYiLCJoYW5kbGVUcmFuc2l0aW9uIiwic3RhbGUiLCJpbml0aWFsIiwiaXNTdGFsZSIsInJlbmRlclRyYW5zaXRpb24iLCJydW5UcmFuc2l0aW9uIiwibWFuYWdlciIsIk1vZGFsIiwiZm9yd2FyZFJlZiIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJvbkJhY2tkcm9wQ2xpY2siLCJvbkVzY2FwZUtleURvd24iLCJiYWNrZHJvcFRyYW5zaXRpb24iLCJydW5CYWNrZHJvcFRyYW5zaXRpb24iLCJlbmZvcmNlRm9jdXMiLCJyZXN0b3JlRm9jdXMiLCJyZXN0b3JlRm9jdXNPcHRpb25zIiwicmVuZGVyRGlhbG9nIiwicmVuZGVyQmFja2Ryb3AiLCJwcm92aWRlZE1hbmFnZXIiLCJjb250YWluZXJSZWYiLCJvblNob3ciLCJvbkhpZGUiLCJvblJlc29sdmVkIiwicmVzb2x2ZWRSZWYiLCJzZXRSZWYiLCJlYXJseVJlZiIsIm5leHRSZWYiLCJ1c2VXYWl0Rm9yRE9NUmVmIiwicHJvdmlkZWQiLCJtb2RhbE1hbmFnZXIiLCJnZXRNYW5hZ2VyIiwiZGlhbG9nIiwic2V0RGlhbG9nUmVmIiwic2V0QmFja2Ryb3BSZWYiLCJ1c2VNb2RhbE1hbmFnZXIiLCJwcmV2U2hvdyIsImxhc3RGb2N1c1JlZiIsImhhbmRsZVNob3ciLCJyZW1vdmVLZXlkb3duTGlzdGVuZXJSZWYiLCJoYW5kbGVEb2N1bWVudEtleURvd24iLCJyZW1vdmVGb2N1c0xpc3RlbmVyUmVmIiwiaGFuZGxlRW5mb3JjZUZvY3VzIiwiY3VycmVudEFjdGl2ZUVsZW1lbnQiLCJoYW5kbGVIaWRlIiwiX2xhc3RGb2N1c1JlZiRjdXJyZW50IiwidmFsdWVSZWYiLCJvblVubW91bnQiLCJoYW5kbGVCYWNrZHJvcENsaWNrIiwiaXNFc2NLZXkiLCJkaWFsb2dQcm9wcyIsImJhY2tkcm9wRWxlbWVudCIsIk1hbmFnZXIiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiT2ZmY2FudmFzVG9nZ2xpbmciLCJBYnN0cmFjdE1vZGFsSGVhZGVyIiwiY2xvc2VCdXR0b24iLCJPZmZjYW52YXNIZWFkZXIiLCJyZXBsYWNlQ2xhc3NOYW1lIiwib3JpZ0NsYXNzIiwiY2xhc3NUb1JlbW92ZSIsIlNlbGVjdG9yIiwiQm9vdHN0cmFwTW9kYWxNYW5hZ2VyIiwiYWRqdXN0QW5kU3RvcmUiLCJhZGp1c3QiLCJhY3R1YWwiLCJyZXN0b3JlIiwic3VwZXIiLCJjbGFzc0xpc3QiLCJiYXNlVmFsIiwiaGFzQ2xhc3MiLCJtYXJnaW5Qcm9wIiwic2hhcmVkTWFuYWdlciIsIkRpYWxvZ1RyYW5zaXRpb24iLCJCYWNrZHJvcFRyYW5zaXRpb24iLCJPZmZjYW52YXMiLCJhcmlhTGFiZWxsZWRieSIsInJlc3BvbnNpdmUiLCJiYWNrZHJvcENsYXNzTmFtZSIsInByb3BzTWFuYWdlciIsInJlbmRlclN0YXRpY05vZGUiLCJzaG93T2ZmY2FudmFzIiwic2V0U2hvd09mZmNhbnZhcyIsImhpZGVSZXNwb25zaXZlT2ZmY2FudmFzIiwibW9kYWxDb250ZXh0IiwiYmFja2Ryb3BQcm9wcyIsImdldFNoYXJlZE1hbmFnZXIiLCJCb2R5IiwiT2ZmY2FudmFzQm9keSIsIlRpdGxlIiwiT2ZmY2FudmFzVGl0bGUiLCJOYXZiYXJPZmZjYW52YXMiLCJOYXZiYXJUZXh0IiwiTmF2YmFyIiwiZXhwYW5kIiwic3RpY2t5IiwiY29sbGFwc2VPblNlbGVjdCIsImNvbnRyb2xsZWRQcm9wcyIsImhhbmRsZUNvbGxhcHNlIiwiZXhwYW5kQ2xhc3MiLCJCcmFuZCIsIkNvbGxhcHNlIiwiVGV4dCIsIkNvbnRhaW5lciIsImZsdWlkIiwic3VmZml4IiwiQ1FMX1dPUkRTIiwicHJlcGFyZVRlcm1zIiwidGVybXMiLCJ0ZXJtIiwidGVybV9lc2NhcGVkIiwib3JpZ2luYWwiLCJub3JtYWxpemVkIiwiZXNjYXBlZCIsInByZXBhcmVDcWxXb3JkcyIsIndvcmRzIiwid29yZCIsIkF1dG9Db21wbGV0aW9uIiwiY3FsX3dvcmRzIiwiX2NxbF93b3JkcyIsIl90ZXJtcyIsIl9yZXNvbHZlZF90ZXJtcyIsIl9nZXRDcWxTdWdnZXN0aW9ucyIsIl9nZXRTZWFyY2hUZXJtU3VnZ2VzdGlvbnMiLCJfZ2V0VGVybXMyIiwiX2RvX3Jlc29sdmVfdGVybXMyIiwiX2dldFN1Z2dlc3Rpb25zIiwiaXNDcWwiLCJmdWxsUXVlcnkiLCJnZXRDcWxTdWdnZXN0aW9ucyIsImdldFNlYXJjaFRlcm1TdWdnZXN0aW9ucyIsInJlc29sdmVkX3Rlcm1zIiwiX3g0IiwiX2RvX3Jlc29sdmVfdGVybXMiLCJfY2FsbGVlNCIsIndvcmROb3JtYWxpemVkIiwiX2NvbnRleHQ0IiwiX2dldFRlcm1zIiwic3RhcnRzV2l0aCIsIl94NSIsIl94NiIsIl9jYWxsZWU1IiwiX2NvbnRleHQ1IiwidDEiLCJfeDciLCJfeDgiLCJpc1NlbGVjdCIsInRyYW5zbGF0b3IiLCJlcXVhbHMiLCJhbGxvd2VkX29wZXJhdG9ycyIsImJvb2xlYW4iLCJpbnRlZ2VyIiwiZG91YmxlIiwibWFrZV9xdWVyeV9maWx0ZXIiLCJvcGVyYXRvciIsInVuaXQiLCJfZGVmYXVsdCIsInF1b3RlcyIsIm1ha2VRdWVyeVRlbXBsYXRlIiwicmVjb3JkX3R5cGUiLCJzZWFyY2hfdGVybXMiLCJhY3RpdmVGaWx0ZXJzIiwiZmlsdGVyX2Nvbm5lY3RvciIsInNwbGl0dGVkX3NlYXJjaF90ZXJtcyIsInNwbGl0U2VhcmNoVGVybXMiLCJyZXBsYWNlQWxsIiwiZmlsdGVycyIsImRhdGF0eXBlIiwibWFrZVF1ZXJ5RmlsdGVyIiwiX3NwbGl0U2VhcmNoVGVybXNQYXR0ZXJuIiwiX3dyYXBSZWdFeHAiLCJkcSIsInNxIiwibnEiLCJtYXRjaEFsbCIsImNyZWF0ZVRhYiIsInJlY29yZFR5cGUiLCJkZXNjcmlwdGlvbiIsIm1ha2VRdWVyeUNhbGxiYWNrIiwiZmlsdGVyRGVmaW5pdGlvbnMiLCJtYWtlUXVlcnkiLCJnZXRfdGVzdF9zdWdnZXN0aW9ucyIsIl9jYWxsZWU2IiwiZnVsbCIsIl9jb250ZXh0NiIsImdldFN1Z2dlc3Rpb25zIiwiX3g5IiwiX3gxMCIsIl94MTEiLCJtYWtlRmlsdGVyRGVmaW5pdGlvbnMiLCJRdWVyeUZvcm1Db250ZXh0IiwiUmFuZ2VGaWx0ZXJJbnB1dCIsIm9uQ2hhbmdlTWluIiwibmV3RSIsIm9uQ2hhbmdlTWF4IiwiX2V4dGVuZHMiLCJ1bml0RWxlbWVudCIsIkZpbHRlcklucHV0Iiwic3RlcCIsImlucHV0dHlwZSIsImlucHV0RWxlbWVudCIsIkNxbEhpbnQiLCJRdWVyeUZvcm1TaW5nbGVUYWIiLCJ0YWIiLCJzZXRBY3RpdmVUYWIiLCJpc0FjdGl2ZVRhYiIsImFjdGl2YXRlVGFiIiwiQWRkVGFiRmlsdGVyT3BlcmF0b3IiLCJmaWx0ZXJJZHgiLCJ1cGRhdGVGaWx0ZXIiLCJyZXN0b3JlT3BlcmF0b3IiLCJyZXN0b3JlVmFsdWUiLCJfc2xpY2VkVG9BcnJheSIsInNldE9wZXJhdG9yIiwiX3VzZVN0YXRlNCIsIm9wIiwiaWR4IiwiRmlsdGVyU2VsZWN0IiwiZmlsIiwiQWRkRmlsdGVyIiwiYWRkRmlsdGVyIiwiRmlsdGVyIiwiX3JlZjYiLCJyZW1vdmVGaWx0ZXIiLCJhY3RpdmVGaWx0ZXIiLCJyZW1vdmVUaGlzIiwiUXVlcnlGb3JtVGFiRmlsdGVyc0lubmVyIiwiX3JlZjciLCJzZXRBY3RpdmVGaWx0ZXJzIiwibmV3QWN0aXZlRmlsdGVycyIsIl9vYmplY3RTcHJlYWQiLCJwcm9wZXJ0eUZpbHRlciIsIlF1ZXJ5Rm9ybVRhYkZpbHRlcnMiLCJfcmVmOCIsIl91c2VTdGF0ZTYiLCJzaG93RmlsdGVycyIsInNldFNob3dGaWx0ZXJzIiwiUXVlcnlGb3JtVGFicyIsIl9yZWY5IiwidGFicyIsImFjdGl2ZVRhYiIsImhhc0ZpbHRlcnMiLCJRdWVyeVN1Ym1pdEJ1dHRvbiIsIl9yZWYxMCIsImlzU3VibWl0dGVkIiwiU2luZ2xlUXVlcnlGb3JtU3VnZ2VzdGlvbnNJdGVtIiwiX3JlZjExIiwic3VnZ2VzdGlvbiIsImlzSGlnaGxpZ2h0ZWQiLCJvbk1vdXNlRW50ZXIiLCJRdWVyeUZvcm1TdWdnZXN0aW9uc0l0ZW1zIiwiX3JlZjEyIiwic3VnZ2VzdGlvbnMiLCJoaWdobGlnaHRJbmRleCIsInNlbGVjdFN1Z2dlc3Rpb24iLCJzdWciLCJRdWVyeUZvcm1TdWdnZXN0aW9ucyIsIl9yZWYxMyIsInVuc2VsZWN0U3VnZ2VzdGlvbnMiLCJnZXRJbnB1dFJlZiIsIndvcmRQb3MiLCJ4T2Zmc2V0IiwiaW5wdXRSZWYiLCJjb29yZHMiLCJpbnB1dFdpZHRoIiwicmlnaHRPZmZzZXQiLCJtYXJnaW5MZWZ0Iiwib25Nb3VzZUxlYXZlIiwicGFkZGluZ0xlZnQiLCJyZWR1Y2VyIiwiY3Vyc29yX3BvcyIsIndvcmRfcG9zIiwib3BlbiIsInVucmVzb2x2ZWRfc3VnZ2VzdGlvbnMiLCJyZWZvY3VzIiwib25DbGlja1ZhbHVlIiwiY3Vyc29yUG9zIiwib25DbGlja0N1cnNvclBvcyIsImxhc3RJbmRleE9mIiwiZ2V0U3VnZ2VzdGlvbnNDYWxsYmFjayIsImZJc0NxbCIsImN1cnNvclBvc05vQ29tcGxldGlvbiIsInZhbHVlTm9Db21wbGV0aW9uIiwidW5yZXNvbHZlZFN1Z2dlc3Rpb25zIiwibmV3SGlnaGxpZ2h0SW5kZXgiLCJuZXdWYWx1ZSIsIm5ld0N1cnNvclBvcyIsIlF1ZXJ5Rm9ybVRleHRGaWVsZCIsIl9yZWYxNCIsInNldFF1ZXJ5U3RyaW5nIiwicmVzdG9yZVF1ZXJ5U3RyaW5nIiwiX3VzZUNvbnRleHQiLCJfdXNlUmVkdWNlcjIiLCJvbkZvY3VzIiwib25BcnJvd1VwIiwib25BcnJvd0Rvd24iLCJzZXRTZWxlY3Rpb25SYW5nZSIsIlF1ZXJ5Rm9ybSIsIl9yZWYxNSIsInN1Ym1pdENhbGxiYWNrIiwiZGVmYXVsdFRhYiIsInJlc3RvcmVDYWxsYmFjayIsInN0b3JlQ2FsbGJhY2siLCJfcmVmMTYiLCJyZXN0b3JlQWN0aXZlRmlsdGVycyIsInJlc3RvcmVBY3RpdmVUYWIiLCJfdXNlU3RhdGU4Iiwic2V0SXNTdWJtaXR0ZWQiLCJfdXNlU3RhdGUxMCIsInF1ZXJ5U3RyaW5nIiwiX3VzZVN0YXRlMTIiLCJfdXNlU3RhdGUxNCIsImFjdGl2ZVRhYkRlZiIsImZJc1NlbGVjdCIsInBhZ2VTaXplIiwic2V0QWN0aXZlVGFiUmVzZXRGaWx0ZXJzIiwibG9jYWxTdG9yYWdlIiwicGFyc2UiLCJyZW1vdmVJdGVtIiwibGFzdFF1ZXJ5Rm9ybUhlaWdodCIsInNjcm9sbERvd25UaW1lb3V0IiwidG9nZ2xlUXVlcnlQYW5lbCIsIl9jb250YWluZXIkZ2V0Qm91bmRpbiIsIlF1ZXJ5UGFuZWwiLCJzY3JvbGxIYW5kbGVyIiwiTmF2aWdhdGlvbk1hbmFnZXIiLCJOYXZpZ2F0aW9uTWFuYWdlckltcGwiLCJ1c2VyX2NvbXBvbmVudCIsInVwZGF0ZV9saXN0ZW5lcnMiLCJub3RpZnlVcGRhdGVMaXN0ZW5lcnMiLCJUb3BOYXZpZ2F0aW9uQmFyIiwicGFuZWxSZWYiLCJGb290ZXJNYW5hZ2VyIiwiX2NyZWF0ZUNsYXNzIiwiRm9vdGVyTWFuYWdlckltcGwiLCJjb3B5UmlnaHQiLCJGb290ZXIiLCJzcGFjZXIiLCJBd2FpdCIsImxvYWRpbmciLCJ0aGVQcm9taXNlIiwicHJvbWlzZSIsImRvQ2F0Y2giLCJDaGVja2JveCIsImljb25zIiwicmVhZE9ubHkiLCJpY29uQ2xhc3NOYW1lTWFwIiwidHJ1ZSIsImZhbHNlIiwicGFydGlhbCIsIkNhcmQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///787\n')},818:module=>{eval('!function(e,t){ true?module.exports=t():0}(self,(function(){return(()=>{var __webpack_modules__={661:(e,t,o)=>{var r={};r.v1=o(958),t.h=r},958:(e,t,o)=>{var r={};r.web=o(40);var n={caosdb:{}};n.caosdb.info={},n.caosdb.info.v1=o(988),n.caosdb.info.v1.GeneralInfoServiceClient=function(e,t,o){o||(o={}),o.format="text",this.client_=new r.web.GrpcWebClientBase(o),this.hostname_=e},n.caosdb.info.v1.GeneralInfoServicePromiseClient=function(e,t,o){o||(o={}),o.format="text",this.client_=new r.web.GrpcWebClientBase(o),this.hostname_=e};var s=new r.web.MethodDescriptor("/caosdb.info.v1.GeneralInfoService/GetVersionInfo",r.web.MethodType.UNARY,n.caosdb.info.v1.GetVersionInfoRequest,n.caosdb.info.v1.GetVersionInfoResponse,(function(e){return e.serializeBinary()}),n.caosdb.info.v1.GetVersionInfoResponse.deserializeBinary);n.caosdb.info.v1.GeneralInfoServiceClient.prototype.getVersionInfo=function(e,t,o){return this.client_.rpcCall(this.hostname_+"/caosdb.info.v1.GeneralInfoService/GetVersionInfo",e,t||{},s,o)},n.caosdb.info.v1.GeneralInfoServicePromiseClient.prototype.getVersionInfo=function(e,t){return this.client_.unaryCall(this.hostname_+"/caosdb.info.v1.GeneralInfoService/GetVersionInfo",e,t||{},s)};var i=new r.web.MethodDescriptor("/caosdb.info.v1.GeneralInfoService/GetSessionInfo",r.web.MethodType.UNARY,n.caosdb.info.v1.GetSessionInfoRequest,n.caosdb.info.v1.GetSessionInfoResponse,(function(e){return e.serializeBinary()}),n.caosdb.info.v1.GetSessionInfoResponse.deserializeBinary);n.caosdb.info.v1.GeneralInfoServiceClient.prototype.getSessionInfo=function(e,t,o){return this.client_.rpcCall(this.hostname_+"/caosdb.info.v1.GeneralInfoService/GetSessionInfo",e,t||{},i,o)},n.caosdb.info.v1.GeneralInfoServicePromiseClient.prototype.getSessionInfo=function(e,t){return this.client_.unaryCall(this.hostname_+"/caosdb.info.v1.GeneralInfoService/GetSessionInfo",e,t||{},i)},e.exports=n.caosdb.info.v1},988:(e,t,o)=>{var r=o(19),n=r,s=Function("return this")();n.exportSymbol("proto.caosdb.info.v1.GetSessionInfoRequest",null,s),n.exportSymbol("proto.caosdb.info.v1.GetSessionInfoResponse",null,s),n.exportSymbol("proto.caosdb.info.v1.GetVersionInfoRequest",null,s),n.exportSymbol("proto.caosdb.info.v1.GetVersionInfoResponse",null,s),n.exportSymbol("proto.caosdb.info.v1.VersionInfo",null,s),proto.caosdb.info.v1.VersionInfo=function(e){r.Message.initialize(this,e,0,-1,null,null)},n.inherits(proto.caosdb.info.v1.VersionInfo,r.Message),n.DEBUG&&!COMPILED&&(proto.caosdb.info.v1.VersionInfo.displayName="proto.caosdb.info.v1.VersionInfo"),proto.caosdb.info.v1.GetVersionInfoRequest=function(e){r.Message.initialize(this,e,0,-1,null,null)},n.inherits(proto.caosdb.info.v1.GetVersionInfoRequest,r.Message),n.DEBUG&&!COMPILED&&(proto.caosdb.info.v1.GetVersionInfoRequest.displayName="proto.caosdb.info.v1.GetVersionInfoRequest"),proto.caosdb.info.v1.GetVersionInfoResponse=function(e){r.Message.initialize(this,e,0,-1,null,null)},n.inherits(proto.caosdb.info.v1.GetVersionInfoResponse,r.Message),n.DEBUG&&!COMPILED&&(proto.caosdb.info.v1.GetVersionInfoResponse.displayName="proto.caosdb.info.v1.GetVersionInfoResponse"),proto.caosdb.info.v1.GetSessionInfoRequest=function(e){r.Message.initialize(this,e,0,-1,null,null)},n.inherits(proto.caosdb.info.v1.GetSessionInfoRequest,r.Message),n.DEBUG&&!COMPILED&&(proto.caosdb.info.v1.GetSessionInfoRequest.displayName="proto.caosdb.info.v1.GetSessionInfoRequest"),proto.caosdb.info.v1.GetSessionInfoResponse=function(e){r.Message.initialize(this,e,0,-1,proto.caosdb.info.v1.GetSessionInfoResponse.repeatedFields_,null)},n.inherits(proto.caosdb.info.v1.GetSessionInfoResponse,r.Message),n.DEBUG&&!COMPILED&&(proto.caosdb.info.v1.GetSessionInfoResponse.displayName="proto.caosdb.info.v1.GetSessionInfoResponse"),r.Message.GENERATE_TO_OBJECT&&(proto.caosdb.info.v1.VersionInfo.prototype.toObject=function(e){return proto.caosdb.info.v1.VersionInfo.toObject(e,this)},proto.caosdb.info.v1.VersionInfo.toObject=function(e,t){var o={major:r.Message.getFieldWithDefault(t,1,0),minor:r.Message.getFieldWithDefault(t,2,0),patch:r.Message.getFieldWithDefault(t,3,0),preRelease:r.Message.getFieldWithDefault(t,4,""),build:r.Message.getFieldWithDefault(t,5,"")};return e&&(o.$jspbMessageInstance=t),o}),proto.caosdb.info.v1.VersionInfo.deserializeBinary=function(e){var t=new r.BinaryReader(e),o=new proto.caosdb.info.v1.VersionInfo;return proto.caosdb.info.v1.VersionInfo.deserializeBinaryFromReader(o,t)},proto.caosdb.info.v1.VersionInfo.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var o=t.readInt32();e.setMajor(o);break;case 2:o=t.readInt32(),e.setMinor(o);break;case 3:o=t.readInt32(),e.setPatch(o);break;case 4:o=t.readString(),e.setPreRelease(o);break;case 5:o=t.readString(),e.setBuild(o);break;default:t.skipField()}return e},proto.caosdb.info.v1.VersionInfo.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.caosdb.info.v1.VersionInfo.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.caosdb.info.v1.VersionInfo.serializeBinaryToWriter=function(e,t){var o=void 0;0!==(o=e.getMajor())&&t.writeInt32(1,o),0!==(o=e.getMinor())&&t.writeInt32(2,o),0!==(o=e.getPatch())&&t.writeInt32(3,o),(o=e.getPreRelease()).length>0&&t.writeString(4,o),(o=e.getBuild()).length>0&&t.writeString(5,o)},proto.caosdb.info.v1.VersionInfo.prototype.getMajor=function(){return r.Message.getFieldWithDefault(this,1,0)},proto.caosdb.info.v1.VersionInfo.prototype.setMajor=function(e){return r.Message.setProto3IntField(this,1,e)},proto.caosdb.info.v1.VersionInfo.prototype.getMinor=function(){return r.Message.getFieldWithDefault(this,2,0)},proto.caosdb.info.v1.VersionInfo.prototype.setMinor=function(e){return r.Message.setProto3IntField(this,2,e)},proto.caosdb.info.v1.VersionInfo.prototype.getPatch=function(){return r.Message.getFieldWithDefault(this,3,0)},proto.caosdb.info.v1.VersionInfo.prototype.setPatch=function(e){return r.Message.setProto3IntField(this,3,e)},proto.caosdb.info.v1.VersionInfo.prototype.getPreRelease=function(){return r.Message.getFieldWithDefault(this,4,"")},proto.caosdb.info.v1.VersionInfo.prototype.setPreRelease=function(e){return r.Message.setProto3StringField(this,4,e)},proto.caosdb.info.v1.VersionInfo.prototype.getBuild=function(){return r.Message.getFieldWithDefault(this,5,"")},proto.caosdb.info.v1.VersionInfo.prototype.setBuild=function(e){return r.Message.setProto3StringField(this,5,e)},r.Message.GENERATE_TO_OBJECT&&(proto.caosdb.info.v1.GetVersionInfoRequest.prototype.toObject=function(e){return proto.caosdb.info.v1.GetVersionInfoRequest.toObject(e,this)},proto.caosdb.info.v1.GetVersionInfoRequest.toObject=function(e,t){var o={};return e&&(o.$jspbMessageInstance=t),o}),proto.caosdb.info.v1.GetVersionInfoRequest.deserializeBinary=function(e){var t=new r.BinaryReader(e),o=new proto.caosdb.info.v1.GetVersionInfoRequest;return proto.caosdb.info.v1.GetVersionInfoRequest.deserializeBinaryFromReader(o,t)},proto.caosdb.info.v1.GetVersionInfoRequest.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)t.getFieldNumber(),t.skipField();return e},proto.caosdb.info.v1.GetVersionInfoRequest.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.caosdb.info.v1.GetVersionInfoRequest.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.caosdb.info.v1.GetVersionInfoRequest.serializeBinaryToWriter=function(e,t){},r.Message.GENERATE_TO_OBJECT&&(proto.caosdb.info.v1.GetVersionInfoResponse.prototype.toObject=function(e){return proto.caosdb.info.v1.GetVersionInfoResponse.toObject(e,this)},proto.caosdb.info.v1.GetVersionInfoResponse.toObject=function(e,t){var o,r={versionInfo:(o=t.getVersionInfo())&&proto.caosdb.info.v1.VersionInfo.toObject(e,o)};return e&&(r.$jspbMessageInstance=t),r}),proto.caosdb.info.v1.GetVersionInfoResponse.deserializeBinary=function(e){var t=new r.BinaryReader(e),o=new proto.caosdb.info.v1.GetVersionInfoResponse;return proto.caosdb.info.v1.GetVersionInfoResponse.deserializeBinaryFromReader(o,t)},proto.caosdb.info.v1.GetVersionInfoResponse.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var o=new proto.caosdb.info.v1.VersionInfo;t.readMessage(o,proto.caosdb.info.v1.VersionInfo.deserializeBinaryFromReader),e.setVersionInfo(o)}else t.skipField();return e},proto.caosdb.info.v1.GetVersionInfoResponse.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.caosdb.info.v1.GetVersionInfoResponse.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.caosdb.info.v1.GetVersionInfoResponse.serializeBinaryToWriter=function(e,t){var o;null!=(o=e.getVersionInfo())&&t.writeMessage(1,o,proto.caosdb.info.v1.VersionInfo.serializeBinaryToWriter)},proto.caosdb.info.v1.GetVersionInfoResponse.prototype.getVersionInfo=function(){return r.Message.getWrapperField(this,proto.caosdb.info.v1.VersionInfo,1)},proto.caosdb.info.v1.GetVersionInfoResponse.prototype.setVersionInfo=function(e){return r.Message.setWrapperField(this,1,e)},proto.caosdb.info.v1.GetVersionInfoResponse.prototype.clearVersionInfo=function(){return this.setVersionInfo(void 0)},proto.caosdb.info.v1.GetVersionInfoResponse.prototype.hasVersionInfo=function(){return null!=r.Message.getField(this,1)},r.Message.GENERATE_TO_OBJECT&&(proto.caosdb.info.v1.GetSessionInfoRequest.prototype.toObject=function(e){return proto.caosdb.info.v1.GetSessionInfoRequest.toObject(e,this)},proto.caosdb.info.v1.GetSessionInfoRequest.toObject=function(e,t){var o={};return e&&(o.$jspbMessageInstance=t),o}),proto.caosdb.info.v1.GetSessionInfoRequest.deserializeBinary=function(e){var t=new r.BinaryReader(e),o=new proto.caosdb.info.v1.GetSessionInfoRequest;return proto.caosdb.info.v1.GetSessionInfoRequest.deserializeBinaryFromReader(o,t)},proto.caosdb.info.v1.GetSessionInfoRequest.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)t.getFieldNumber(),t.skipField();return e},proto.caosdb.info.v1.GetSessionInfoRequest.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.caosdb.info.v1.GetSessionInfoRequest.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.caosdb.info.v1.GetSessionInfoRequest.serializeBinaryToWriter=function(e,t){},proto.caosdb.info.v1.GetSessionInfoResponse.repeatedFields_=[3,5],r.Message.GENERATE_TO_OBJECT&&(proto.caosdb.info.v1.GetSessionInfoResponse.prototype.toObject=function(e){return proto.caosdb.info.v1.GetSessionInfoResponse.toObject(e,this)},proto.caosdb.info.v1.GetSessionInfoResponse.toObject=function(e,t){var o,n={realm:r.Message.getFieldWithDefault(t,1,""),username:r.Message.getFieldWithDefault(t,2,""),rolesList:null==(o=r.Message.getRepeatedField(t,3))?void 0:o,expires:r.Message.getFieldWithDefault(t,4,0),permissionsList:null==(o=r.Message.getRepeatedField(t,5))?void 0:o};return e&&(n.$jspbMessageInstance=t),n}),proto.caosdb.info.v1.GetSessionInfoResponse.deserializeBinary=function(e){var t=new r.BinaryReader(e),o=new proto.caosdb.info.v1.GetSessionInfoResponse;return proto.caosdb.info.v1.GetSessionInfoResponse.deserializeBinaryFromReader(o,t)},proto.caosdb.info.v1.GetSessionInfoResponse.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var o=t.readString();e.setRealm(o);break;case 2:o=t.readString(),e.setUsername(o);break;case 3:o=t.readString(),e.addRoles(o);break;case 4:o=t.readInt64(),e.setExpires(o);break;case 5:o=t.readString(),e.addPermissions(o);break;default:t.skipField()}return e},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.serializeBinary=function(){var e=new r.BinaryWriter;return proto.caosdb.info.v1.GetSessionInfoResponse.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.caosdb.info.v1.GetSessionInfoResponse.serializeBinaryToWriter=function(e,t){var o=void 0;(o=e.getRealm()).length>0&&t.writeString(1,o),(o=e.getUsername()).length>0&&t.writeString(2,o),(o=e.getRolesList()).length>0&&t.writeRepeatedString(3,o),0!==(o=e.getExpires())&&t.writeInt64(4,o),(o=e.getPermissionsList()).length>0&&t.writeRepeatedString(5,o)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.getRealm=function(){return r.Message.getFieldWithDefault(this,1,"")},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.setRealm=function(e){return r.Message.setProto3StringField(this,1,e)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.getUsername=function(){return r.Message.getFieldWithDefault(this,2,"")},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.setUsername=function(e){return r.Message.setProto3StringField(this,2,e)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.getRolesList=function(){return r.Message.getRepeatedField(this,3)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.setRolesList=function(e){return r.Message.setField(this,3,e||[])},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.addRoles=function(e,t){return r.Message.addToRepeatedField(this,3,e,t)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.clearRolesList=function(){return this.setRolesList([])},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.getExpires=function(){return r.Message.getFieldWithDefault(this,4,0)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.setExpires=function(e){return r.Message.setProto3IntField(this,4,e)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.getPermissionsList=function(){return r.Message.getRepeatedField(this,5)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.setPermissionsList=function(e){return r.Message.setField(this,5,e||[])},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.addPermissions=function(e,t){return r.Message.addToRepeatedField(this,5,e,t)},proto.caosdb.info.v1.GetSessionInfoResponse.prototype.clearPermissionsList=function(){return this.setPermissionsList([])},n.object.extend(t,proto.caosdb.info.v1)},19:function(__unused_webpack_module,exports,__nested_webpack_require_14101__){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(e,t,o){e instanceof String&&(e=String(e));for(var r=e.length,n=0;n<r;n++){var s=e[n];if(t.call(o,s,n,e))return{i:n,v:s}}return{i:-1,v:void 0}},$jscomp.ASSUME_ES5=!1,$jscomp.ASSUME_NO_NATIVE_MAP=!1,$jscomp.ASSUME_NO_NATIVE_SET=!1,$jscomp.SIMPLE_FROUND_POLYFILL=!1,$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,o){e!=Array.prototype&&e!=Object.prototype&&(e[t]=o.value)},$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:void 0!==__nested_webpack_require_14101__.g&&null!=__nested_webpack_require_14101__.g?__nested_webpack_require_14101__.g:e},$jscomp.global=$jscomp.getGlobal(this),$jscomp.polyfill=function(e,t,o,r){if(t){for(o=$jscomp.global,e=e.split("."),r=0;r<e.length-1;r++){var n=e[r];n in o||(o[n]={}),o=o[n]}(t=t(r=o[e=e[e.length-1]]))!=r&&null!=t&&$jscomp.defineProperty(o,e,{configurable:!0,writable:!0,value:t})}},$jscomp.polyfill("Array.prototype.findIndex",(function(e){return e||function(e,t){return $jscomp.findInternal(this,e,t).i}}),"es6","es3"),$jscomp.checkStringArgs=function(e,t,o){if(null==e)throw new TypeError("The \'this\' value for String.prototype."+o+" must not be null or undefined");if(t instanceof RegExp)throw new TypeError("First argument to String.prototype."+o+" must not be a regular expression");return e+""},$jscomp.polyfill("String.prototype.endsWith",(function(e){return e||function(e,t){var o=$jscomp.checkStringArgs(this,e,"endsWith");e+="",void 0===t&&(t=o.length),t=Math.max(0,Math.min(0|t,o.length));for(var r=e.length;0<r&&0<t;)if(o[--t]!=e[--r])return!1;return 0>=r}}),"es6","es3"),$jscomp.polyfill("Array.prototype.find",(function(e){return e||function(e,t){return $jscomp.findInternal(this,e,t).v}}),"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",(function(e){return e||function(e,t){var o=$jscomp.checkStringArgs(this,e,"startsWith");e+="";var r=o.length,n=e.length;t=Math.max(0,Math.min(0|t,o.length));for(var s=0;s<n&&t<r;)if(o[t++]!=e[s++])return!1;return s>=n}}),"es6","es3"),$jscomp.polyfill("String.prototype.repeat",(function(e){return e||function(e){var t=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279<e)throw new RangeError("Invalid count value");e|=0;for(var o="";e;)1&e&&(o+=t),(e>>>=1)&&(t+=t);return o}}),"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=this||self,goog.isDef=function(e){return void 0!==e},goog.isString=function(e){return"string"==typeof e},goog.isBoolean=function(e){return"boolean"==typeof e},goog.isNumber=function(e){return"number"==typeof e},goog.exportPath_=function(e,t,o){e=e.split("."),o=o||goog.global,e[0]in o||void 0===o.execScript||o.execScript("var "+e[0]);for(var r;e.length&&(r=e.shift());)!e.length&&goog.isDef(t)?o[r]=t:o=o[r]&&o[r]!==Object.prototype[r]?o[r]:o[r]={}},goog.define=function(e,t){if(!COMPILED){var o=goog.global.CLOSURE_UNCOMPILED_DEFINES,r=goog.global.CLOSURE_DEFINES;o&&void 0===o.nodeType&&Object.prototype.hasOwnProperty.call(o,e)?t=o[e]:r&&void 0===r.nodeType&&Object.prototype.hasOwnProperty.call(r,e)&&(t=r[e])}return t},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(e))throw Error(\'Namespace "\'+e+\'" already declared.\');goog.constructNamespace_(e)},goog.constructNamespace_=function(e,t){if(!COMPILED){delete goog.implicitNamespaces_[e];for(var o=e;(o=o.substring(0,o.lastIndexOf(".")))&&!goog.getObjectByName(o);)goog.implicitNamespaces_[o]=!0}goog.exportPath_(e,t)},goog.getScriptNonce=function(e){return e&&e!=goog.global?goog.getScriptNonce_(e.document):(null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(e){return(e=e.querySelector&&e.querySelector("script[nonce]"))&&(e=e.nonce||e.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(e)?e:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if(!goog.isString(e)||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You\'re likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");if(goog.moduleLoaderState_.moduleName=e,!COMPILED){if(goog.isProvided_(e))throw Error(\'Namespace "\'+e+\'" already declared.\');delete goog.implicitNamespaces_[e]}},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){if(!COMPILED){if(e in goog.loadedModules_)return goog.loadedModules_[e].exports;if(!goog.implicitNamespaces_[e])return null!=(e=goog.getObjectByName(e))?e:null}return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var e=goog.global.$jscomp;return!!e&&"function"==typeof e.getCurrentModulePath&&!!e.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(e){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(e in goog.loadedModules_)throw Error(\'Module with namespace "\'+e+\'" already exists.\')}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=e;else{var t=goog.global.$jscomp;if(!t||"function"!=typeof t.getCurrentModulePath)throw Error(\'Module with namespace "\'+e+\'" has been loaded incorrectly.\');t=t.require(t.getCurrentModulePath()),goog.loadedModules_[e]={exports:t,type:goog.ModuleType.ES6,moduleId:e}}},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},COMPILED||(goog.isProvided_=function(e){return e in goog.loadedModules_||!goog.implicitNamespaces_[e]&&goog.isDefAndNotNull(goog.getObjectByName(e))},goog.implicitNamespaces_={"goog.module":!0}),goog.getObjectByName=function(e,t){e=e.split("."),t=t||goog.global;for(var o=0;o<e.length;o++)if(t=t[e[o]],!goog.isDefAndNotNull(t))return null;return t},goog.globalize=function(e,t){for(var o in t=t||goog.global,e)t[o]=e[o]},goog.addDependency=function(e,t,o,r){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(e,t,o,r)},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){if(!COMPILED){if(goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(e),goog.isProvided_(e)){if(goog.isInModuleLoader_())return goog.module.getInternal_(e)}else if(goog.ENABLE_DEBUG_LOADER){var t=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(e)}finally{goog.moduleLoaderState_=t}}return null}},goog.requireType=function(e){return{}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.instance_=void 0,e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER,goog.TRANSPILE="detect",goog.ASSUME_ES_MODULES_TRANSPILED=!1,goog.TRANSPILE_TO_LANGUAGE="",goog.TRANSPILER="transpile.js",goog.hasBadLetScoping=null,goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval(\'"use strict";let x = 1; function f() { return typeof x; };f() == "number";\')}catch(e){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping},goog.workaroundSafari10EvalBug=function(e){return"(function(){"+e+"\\n;})();\\n"},goog.loadModule=function(e){var t=goog.moduleLoaderState_;try{if(goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG},goog.isFunction(e))var o=e.call(void 0,{});else{if(!goog.isString(e))throw Error("Invalid module definition");goog.useSafari10Workaround()&&(e=goog.workaroundSafari10EvalBug(e)),o=goog.loadModuleFromSource_.call(void 0,e)}var r=goog.moduleLoaderState_.moduleName;if(!goog.isString(r)||!r)throw Error(\'Invalid module name "\'+r+\'"\');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(r,o):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof o&&null!=o&&Object.seal(o),goog.loadedModules_[r]={exports:o,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName}}finally{goog.moduleLoaderState_=t}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.normalizePath_=function(e){e=e.split("/");for(var t=0;t<e.length;)"."==e[t]?e.splice(t,1):t&&".."==e[t]&&e[t-1]&&".."!=e[t-1]?e.splice(--t,2):t++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);try{var t=new goog.global.XMLHttpRequest;return t.open("get",e,!1),t.send(),0==t.status||200==t.status?t.responseText:null}catch(e){return null}},goog.transpile_=function(e,t,o){var r=goog.global.$jscomp;r||(goog.global.$jscomp=r={});var n=r.transpile;if(!n){var s=goog.basePath+goog.TRANSPILER,i=goog.loadFileSync_(s);if(i){if(function(){(0,eval)(i+"\\n//# sourceURL="+s)}.call(goog.global),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error(\'The transpiler did not properly export the "transpile" method. $gwtExport: \'+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,n=(r=goog.global.$jscomp).transpile}}return n||(n=r.transpile=function(e,t){return goog.logToConsole_(t+" requires transpilation but no transpiler was found."),e}),n(e,t,o)},goog.typeOf=function(e){var t=typeof e;if("object"==t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var o=Object.prototype.toString.call(e);if("[object Window]"==o)return"object";if("[object Array]"==o||"number"==typeof e.length&&void 0!==e.splice&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==o||void 0!==e.call&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==t&&void 0===e.call)return"object";return t},goog.isNull=function(e){return null===e},goog.isDefAndNotNull=function(e){return null!=e},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var t=goog.typeOf(e);return"array"==t||"object"==t&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var t=typeof e;return"object"==t&&null!=e||"function"==t},goog.getUid=function(e){return e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(e){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if("function"==typeof e.clone)return e.clone();for(var o in t="array"==t?[]:{},e)t[o]=goog.cloneObject(e[o]);return t}return e},goog.bindNative_=function(e,t,o){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,o){if(!e)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var o=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(o,r),e.apply(t,o)}}return function(){return e.apply(t,arguments)}},goog.bind=function(e,t,o){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,t){var o=Array.prototype.slice.call(arguments,1);return function(){var t=o.slice();return t.push.apply(t,arguments),e.apply(this,t)}},goog.mixin=function(e,t){for(var o in t)e[o]=t[o]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ = 1;")}catch(e){}if(void 0!==goog.global._evalTest_){try{delete goog.global._evalTest_}catch(e){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,o=t.createElement("SCRIPT");o.type="text/javascript",o.defer=!1,o.appendChild(t.createTextNode(e)),t.head.appendChild(o),t.head.removeChild(o)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,t){if("."==String(e).charAt(0))throw Error(\'className passed in goog.getCssName must not start with ".". You passed: \'+e);var o=function(e){return goog.cssNameMapping_[e]||e},r=function(e){e=e.split("-");for(var t=[],r=0;r<e.length;r++)t.push(o(e[r]));return t.join("-")};return r=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?o:r:function(e){return e},e=t?e+"-"+r(t):r(e),goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(e):e},goog.setCssNameMapping=function(e,t){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=t},!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING),goog.getMsg=function(e,t,o){return o&&o.html&&(e=e.replace(/</g,"<")),t&&(e=e.replace(/\\{\\$([^}]+)}/g,(function(e,o){return null!=t&&o in t?t[o]:e}))),e},goog.getMsgWithFallback=function(e,t){return e},goog.exportSymbol=function(e,t,o){goog.exportPath_(e,t,o)},goog.exportProperty=function(e,t,o){e[t]=o},goog.inherits=function(e,t){function o(){}o.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new o,e.prototype.constructor=e,e.base=function(e,o,r){for(var n=Array(arguments.length-2),s=2;s<arguments.length;s++)n[s-2]=arguments[s];return t.prototype[o].apply(e,n)}},goog.base=function(e,t,o){var r=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!r)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(void 0!==r.superClass_){for(var n=Array(arguments.length-1),s=1;s<arguments.length;s++)n[s-1]=arguments[s];return r.superClass_.constructor.apply(e,n)}if("string"!=typeof t&&"symbol"!=typeof t)throw Error("method names provided to goog.base must be a string or a symbol");for(n=Array(arguments.length-2),s=2;s<arguments.length;s++)n[s-2]=arguments[s];s=!1;for(var i=e.constructor.prototype;i;i=Object.getPrototypeOf(i))if(i[t]===r)s=!0;else if(s)return i[t].apply(e,n);if(e[t]===r)return e.constructor.prototype[t].apply(e,n);throw Error("goog.base called from a method of one name to a method of a different name")},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");e.call(goog.global)},COMPILED||(goog.global.COMPILED=COMPILED),goog.defineClass=function(e,t){var o=t.constructor,r=t.statics;return o&&o!=Object.prototype.constructor||(o=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),o=goog.defineClass.createSealingConstructor_(o,e),e&&goog.inherits(o,e),delete t.constructor,delete t.statics,goog.defineClass.applyProperties_(o.prototype,t),null!=r&&(r instanceof Function?r(o):goog.defineClass.applyProperties_(o,r)),o},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,t){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var o=!goog.defineClass.isUnsealable_(t),r=function(){var t=e.apply(this,arguments)||this;return t[goog.UID_PROPERTY_]=t[goog.UID_PROPERTY_],this.constructor===r&&o&&Object.seal instanceof Function&&Object.seal(t),t};return r},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);for(var r=0;r<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;r++)o=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[r],Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},goog.tagUnsealableClass=function(e){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var e=goog.global.document;return null!=e&&"write"in e},goog.isDocumentLoading_=function(){var e=goog.global.document;return e.attachEvent?"complete"!=e.readyState:"loading"==e.readyState},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH)&&goog.isString(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var e=goog.global.document,t=e.currentScript;for(t=(e=t?[t]:e.getElementsByTagName("SCRIPT")).length-1;0<=t;--t){var o=e[t].src,r=o.lastIndexOf("?");if(r=-1==r?o.length:r,"base.js"==o.substr(r-7,7)){goog.basePath=o.substr(0,r-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null,this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(t,o){e?d[t]=!0:o()?(c=t,d[t]=!1):e=d[t]=!0}function b(a){try{return!!eval(a)}catch(e){return!1}}var c="es3",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"";return a("es5",(function(){return b("[1,].length==1")})),a("es6",(function(){return!f.match(/Edge\\/(\\d+)(\\.\\d)*/i)&&b(\'(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()\')})),a("es7",(function(){return b("2 ** 2 == 4")})),a("es8",(function(){return b("async () => 1, true")})),a("es9",(function(){return b("({...rest} = {}), true")})),a("es_next",(function(){return!1})),{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(e,t){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var o=this.createRequiresTranspilation_();this.requiresTranspilation_=o.map,this.transpilationTarget_=this.transpilationTarget_||o.target}if(e in this.requiresTranspilation_)return!!this.requiresTranspilation_[e]||!(!goog.inHtmlDocument_()||"es6"!=t||"noModule"in goog.global.document.createElement("script"));throw Error("Unknown language mode: "+e)},goog.Transpiler.prototype.transpile=function(e,t){return goog.transpile_(e,t,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(e){return e.replace(/<\\/(SCRIPT)/gi,"\\\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={},this.idToPath_={},this.written_={},this.loadingDeps_=[],this.depsToLoad_=[],this.paused_=!1,this.factory_=new goog.DependencyFactory(goog.transpiler_),this.deferredCallbacks_={},this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(e,t){function o(){r&&(goog.global.setTimeout(r,0),r=null)}var r=t;if(e.length){t=[];for(var n=0;n<e.length;n++){var s=this.getPathFromDeps_(e[n]);if(!s)throw Error("Unregonized namespace: "+e[n]);t.push(this.dependencies_[s])}s=goog.require;var i=0;for(n=0;n<e.length;n++)s(e[n]),t[n].onLoad((function(){++i==e.length&&o()}))}else o()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+"deps.js"),"deps.js",[],[],{},!1)),this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(e,t){(e=this.getPathFromDeps_(e))&&(t||this.areDepsLoaded_(this.dependencies_[e].requires))&&(t=this.deferredCallbacks_[e])&&(delete this.deferredCallbacks_[e],t())},goog.DebugLoader_.prototype.setDependencyFactory=function(e){this.factory_=e},goog.DebugLoader_.prototype.load_=function(e){if(!this.getPathFromDeps_(e))throw e="goog.require could not find: "+e,goog.logToConsole_(e),Error(e);var t=this,o=[],r=function(e){var n=t.getPathFromDeps_(e);if(!n)throw Error("Bad dependency path or symbol: "+e);if(!t.written_[n]){for(t.written_[n]=!0,e=t.dependencies_[n],n=0;n<e.requires.length;n++)goog.isProvided_(e.requires[n])||r(e.requires[n]);o.push(e)}};r(e),e=!!this.depsToLoad_.length,this.depsToLoad_=this.depsToLoad_.concat(o),this.paused_||e||this.loadDeps_()},goog.DebugLoader_.prototype.loadDeps_=function(){for(var e=this,t=this.paused_;this.depsToLoad_.length&&!t;)!function(){var o=!1,r=e.depsToLoad_.shift(),n=!1;e.loading_(r);var s={pause:function(){if(o)throw Error("Cannot call pause after the call to load.");t=!0},resume:function(){o?e.resume_():t=!1},loaded:function(){if(n)throw Error("Double call to loaded.");n=!0,e.loaded_(r)},pending:function(){for(var t=[],o=0;o<e.loadingDeps_.length;o++)t.push(e.loadingDeps_[o]);return t},setModuleState:function(e){goog.moduleLoaderState_={type:e,moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(e,t,o){o&&(goog.loadedModules_[o]={exports:t,type:goog.ModuleType.ES6,moduleId:o||""})},registerGoogModuleExports:function(e,t){goog.loadedModules_[e]={exports:t,type:goog.ModuleType.GOOG,moduleId:e}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(t){if(o)throw Error("Cannot register with defer after the call to load.");e.defer_(r,t)},areDepsLoaded:function(){return e.areDepsLoaded_(r.requires)}};try{r.load(s)}finally{o=!0}}();t&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(e){this.loadingDeps_.push(e)},goog.DebugLoader_.prototype.loaded_=function(e){for(var t=0;t<this.loadingDeps_.length;t++)if(this.loadingDeps_[t]==e){this.loadingDeps_.splice(t,1);break}for(t=0;t<this.deferredQueue_.length;t++)if(this.deferredQueue_[t]==e.path){this.deferredQueue_.splice(t,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);e.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(e){for(var t=0;t<e.length;t++){var o=this.getPathFromDeps_(e[t]);if(!o||!(o in this.deferredCallbacks_)&&!goog.isProvided_(e[t]))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=function(e){return e in this.idToPath_?this.idToPath_[e]:e in this.dependencies_?e:null},goog.DebugLoader_.prototype.defer_=function(e,t){this.deferredCallbacks_[e.path]=t,this.deferredQueue_.push(e.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(e,t,o){},goog.LoadController.prototype.setModuleState=function(e){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(e){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(e,t,o,r,n){this.path=e,this.relativePath=t,this.provides=o,this.requires=r,this.loadFlags=n,this.loaded_=!1,this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var e=this.path,t=e.indexOf("://");return 0<=t&&0<=(t=(e=e.substring(t+3)).indexOf("/"))&&(e=e.substring(t+1)),e},goog.Dependency.prototype.onLoad=function(e){this.loaded_?e():this.loadCallbacks_.push(e)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var e=this.loadCallbacks_;this.loadCallbacks_=[];for(var t=0;t<e.length;t++)e[t]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(e){var t=Math.random().toString(32);return goog.Dependency.callbackMap_[t]=e,t},goog.Dependency.unregisterCallback_=function(e){delete goog.Dependency.callbackMap_[e]},goog.Dependency.callback_=function(e,t){if(!(e in goog.Dependency.callbackMap_))throw Error("Callback key "+e+" does not exist (was base.js loaded more than once?).");for(var o=goog.Dependency.callbackMap_[e],r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);o.apply(void 0,r)},goog.Dependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document;if("complete"==t.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\\bdeps.js$/.test(this.path))return void e.loaded();throw Error(\'Cannot write "\'+this.path+\'" after document load\')}if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var o=goog.Dependency.registerCallback_((function(t){goog.DebugLoader_.IS_OLD_IE_&&"complete"!=t.readyState||(goog.Dependency.unregisterCallback_(o),e.loaded())})),r=!goog.DebugLoader_.IS_OLD_IE_&&goog.getScriptNonce()?\' nonce="\'+goog.getScriptNonce()+\'"\':"";r=\'<script src="\'+this.path+\'" \'+(goog.DebugLoader_.IS_OLD_IE_?"onreadystatechange":"onload")+"=\\"goog.Dependency.callback_(\'"+o+\'\\\', this)" type="text/javascript" \'+(goog.Dependency.defer_?"defer":"")+r+"><\\/script>",t.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(r):r)}else{var n=t.createElement("script");n.defer=goog.Dependency.defer_,n.async=!1,n.type="text/javascript",(r=goog.getScriptNonce())&&n.setAttribute("nonce",r),goog.DebugLoader_.IS_OLD_IE_?(e.pause(),n.onreadystatechange=function(){"loaded"!=n.readyState&&"complete"!=n.readyState||(e.loaded(),e.resume())}):n.onload=function(){n.onload=null,e.loaded()},n.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path,t.head.appendChild(n)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),e.loaded()):e.pause()},goog.Es6ModuleDependency=function(e,t,o,r,n){goog.Dependency.call(this,e,t,o,r,n)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(e){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?e.loaded():e.pause();else if(goog.inHtmlDocument_()){var t=goog.global.document,o=this;if(goog.isDocumentLoading_()){var r=function(e,o){e=o?\'<script type="module" crossorigin>\'+o+"<\\/script>":\'<script type="module" crossorigin src="\'+e+\'"><\\/script>\',t.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(e):e)};goog.Dependency.defer_=!0}else r=function(e,o){var r=t.createElement("script");r.defer=!0,r.async=!1,r.type="module",r.setAttribute("crossorigin",!0);var n=goog.getScriptNonce();n&&r.setAttribute("nonce",n),o?r.textContent=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(o):o:r.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(e):e,t.head.appendChild(r)};var n=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(n),e.setModuleState(goog.ModuleType.ES6)}));r(void 0,\'goog.Dependency.callback_("\'+n+\'")\'),r(this.path,void 0);var s=goog.Dependency.registerCallback_((function(t){goog.Dependency.unregisterCallback_(s),e.registerEs6ModuleExports(o.path,t,goog.moduleLoaderState_.moduleName)}));r(void 0,\'import * as m from "\'+this.path+\'"; goog.Dependency.callback_("\'+s+\'", m)\');var i=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(i),e.clearModuleState(),e.loaded()}));r(void 0,\'goog.Dependency.callback_("\'+i+\'")\')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),e.pause()},goog.TransformedDependency=function(e,t,o,r,n){goog.Dependency.call(this,e,t,o,r,n),this.contents_=null,this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(e){function t(){r.contents_=goog.loadFileSync_(r.path),r.contents_&&(r.contents_=r.transform(r.contents_),r.contents_&&(r.contents_+="\\n//# sourceURL="+r.path))}function o(){if(r.lazyFetch_&&t(),r.contents_){n&&e.setModuleState(goog.ModuleType.ES6);try{var o=r.contents_;if(r.contents_=null,goog.globalEval(o),n)var s=goog.moduleLoaderState_.moduleName}finally{n&&e.clearModuleState()}n&&goog.global.$jscomp.require.ensure([r.getPathName()],(function(){e.registerEs6ModuleExports(r.path,goog.global.$jscomp.require(r.getPathName()),s)})),e.loaded()}}var r=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)t(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,e.loaded()):e.pause();else{var n=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||t();var s=1<e.pending().length,i=s&&goog.DebugLoader_.IS_OLD_IE_;if(s=goog.Dependency.defer_&&(s||goog.isDocumentLoading_()),i||s)e.defer((function(){o()}));else{var a=goog.global.document;if(i=goog.inHtmlDocument_()&&"ActiveXObject"in goog.global,n&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!i){goog.Dependency.defer_=!0,e.pause();var g=a.onreadystatechange;a.onreadystatechange=function(){"interactive"==a.readyState&&(a.onreadystatechange=g,o(),e.resume()),goog.isFunction(g)&&g.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?function(){var e=goog.global.document,t=goog.Dependency.registerCallback_((function(){goog.Dependency.unregisterCallback_(t),o()})),r=\'<script type="text/javascript">\'+goog.protectScriptTag_(\'goog.Dependency.callback_("\'+t+\'");\')+"<\\/script>";e.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(r):r)}():o()}}},goog.TransformedDependency.prototype.transform=function(e){},goog.TranspiledDependency=function(e,t,o,r,n,s){goog.TransformedDependency.call(this,e,t,o,r,n),this.transpiler=s},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),goog.TranspiledDependency.prototype.transform=function(e){return this.transpiler.transpile(e,this.getPathName())},goog.PreTranspiledEs6ModuleDependency=function(e,t,o,r,n){goog.TransformedDependency.call(this,e,t,o,r,n)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(e){return e},goog.GoogModuleDependency=function(e,t,o,r,n,s,i){goog.TransformedDependency.call(this,e,t,o,r,n),this.needsTranspile_=s,this.transpiler_=i},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=function(e){return this.needsTranspile_&&(e=this.transpiler_.transpile(e,this.getPathName())),goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?"goog.loadModule("+goog.global.JSON.stringify(e+"\\n//# sourceURL="+this.path+"\\n")+");":\'goog.loadModule(function(exports) {"use strict";\'+e+"\\n;return exports});\\n//# sourceURL="+this.path+"\\n"},goog.DebugLoader_.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(e,t,o,r){t=t||[],e=e.replace(/\\\\/g,"/");var n=goog.normalizePath_(goog.basePath+e);for(r&&"boolean"!=typeof r||(r=r?{module:goog.ModuleType.GOOG}:{}),o=this.factory_.createDependency(n,e,t,o,r,goog.transpiler_.needsTranspile(r.lang||"es3",r.module)),this.dependencies_[n]=o,o=0;o<t.length;o++)this.idToPath_[t[o]]=n;this.idToPath_[e]=n},goog.DependencyFactory=function(e){this.transpiler=e},goog.DependencyFactory.prototype.createDependency=function(e,t,o,r,n,s){return n.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(e,t,o,r,n,s,this.transpiler):s?new goog.TranspiledDependency(e,t,o,r,n,this.transpiler):n.module==goog.ModuleType.ES6?"never"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(e,t,o,r,n):new goog.Es6ModuleDependency(e,t,o,r,n):new goog.Dependency(e,t,o,r,n)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(e){goog.debugLoader_.setDependencyFactory(e)},goog.global.CLOSURE_NO_DEPS||goog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(e,t){goog.debugLoader_.bootstrap(e,t)}),goog.TRUSTED_TYPES_POLICY_NAME="",goog.identity_=function(e){return e},goog.createTrustedTypesPolicy=function(e){var t=null;if("undefined"==typeof TrustedTypes||!TrustedTypes.createPolicy)return t;try{t=TrustedTypes.createPolicy(e,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(e){goog.logToConsole_(e.message)}return t},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.object={},goog.object.is=function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},goog.object.forEach=function(e,t,o){for(var r in e)t.call(o,e[r],r,e)},goog.object.filter=function(e,t,o){var r,n={};for(r in e)t.call(o,e[r],r,e)&&(n[r]=e[r]);return n},goog.object.map=function(e,t,o){var r,n={};for(r in e)n[r]=t.call(o,e[r],r,e);return n},goog.object.some=function(e,t,o){for(var r in e)if(t.call(o,e[r],r,e))return!0;return!1},goog.object.every=function(e,t,o){for(var r in e)if(!t.call(o,e[r],r,e))return!1;return!0},goog.object.getCount=function(e){var t,o=0;for(t in e)o++;return o},goog.object.getAnyKey=function(e){for(var t in e)return t},goog.object.getAnyValue=function(e){for(var t in e)return e[t]},goog.object.contains=function(e,t){return goog.object.containsValue(e,t)},goog.object.getValues=function(e){var t,o=[],r=0;for(t in e)o[r++]=e[t];return o},goog.object.getKeys=function(e){var t,o=[],r=0;for(t in e)o[r++]=t;return o},goog.object.getValueByKeys=function(e,t){var o=goog.isArrayLike(t),r=o?t:arguments;for(o=o?0:1;o<r.length;o++){if(null==e)return;e=e[r[o]]}return e},goog.object.containsKey=function(e,t){return null!==e&&t in e},goog.object.containsValue=function(e,t){for(var o in e)if(e[o]==t)return!0;return!1},goog.object.findKey=function(e,t,o){for(var r in e)if(t.call(o,e[r],r,e))return r},goog.object.findValue=function(e,t,o){return(t=goog.object.findKey(e,t,o))&&e[t]},goog.object.isEmpty=function(e){for(var t in e)return!1;return!0},goog.object.clear=function(e){for(var t in e)delete e[t]},goog.object.remove=function(e,t){var o;return(o=t in e)&&delete e[t],o},goog.object.add=function(e,t,o){if(null!==e&&t in e)throw Error(\'The object already contains the key "\'+t+\'"\');goog.object.set(e,t,o)},goog.object.get=function(e,t,o){return null!==e&&t in e?e[t]:o},goog.object.set=function(e,t,o){e[t]=o},goog.object.setIfUndefined=function(e,t,o){return t in e?e[t]:e[t]=o},goog.object.setWithReturnValueIfNotSet=function(e,t,o){return t in e?e[t]:(o=o(),e[t]=o)},goog.object.equals=function(e,t){for(var o in e)if(!(o in t)||e[o]!==t[o])return!1;for(var r in t)if(!(r in e))return!1;return!0},goog.object.clone=function(e){var t,o={};for(t in e)o[t]=e[t];return o},goog.object.unsafeClone=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if(goog.isFunction(e.clone))return e.clone();for(var o in t="array"==t?[]:{},e)t[o]=goog.object.unsafeClone(e[o]);return t}return e},goog.object.transpose=function(e){var t,o={};for(t in e)o[e[t]]=t;return o},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,t){for(var o,r,n=1;n<arguments.length;n++){for(o in r=arguments[n])e[o]=r[o];for(var s=0;s<goog.object.PROTOTYPE_FIELDS_.length;s++)o=goog.object.PROTOTYPE_FIELDS_[s],Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}},goog.object.create=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(t%2)throw Error("Uneven number of arguments");for(var o={},r=0;r<t;r+=2)o[arguments[r]]=arguments[r+1];return o},goog.object.createSet=function(e){var t=arguments.length;if(1==t&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var o={},r=0;r<t;r++)o[arguments[r]]=!0;return o},goog.object.createImmutableView=function(e){var t=e;return Object.isFrozen&&!Object.isFrozen(e)&&(t=Object.create(e),Object.freeze(t)),t},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.object.getAllPropertyNames=function(e,t,o){if(!e)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(e);for(var r={};e&&(e!==Object.prototype||t)&&(e!==Function.prototype||o);){for(var n=Object.getOwnPropertyNames(e),s=0;s<n.length;s++)r[n[s]]=!0;e=Object.getPrototypeOf(e)}return goog.object.getKeys(r)},goog.object.getSuperClass=function(e){return(e=Object.getPrototypeOf(e.prototype))&&e.constructor},goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,t){goog.debug.Error.call(this,goog.asserts.subs_(e,t)),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(e,t){for(var o="",r=(e=e.split("%s")).length-1,n=0;n<r;n++)o+=e[n]+(n<t.length?t[n]:"%s");return o+e[r]},goog.asserts.doAssertFailure_=function(e,t,o,r){var n="Assertion failed";if(o){n+=": "+o;var s=r}else e&&(n+=": "+e,s=t);e=new goog.asserts.AssertionError(""+n,s||[]),goog.asserts.errorHandler_(e)},goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertExists=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&null==e&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,t){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(e)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isString(e)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,t,o){return goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(e)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,t,o){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,t,o,r){return!goog.asserts.ENABLE_ASSERTS||e instanceof t||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(t),goog.asserts.getType_(e)],o,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertFinite=function(e,t,o){return!goog.asserts.ENABLE_ASSERTS||"number"==typeof e&&isFinite(e)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e};var jspb={BinaryConstants:{},ConstBinaryMessage:function(){},BinaryMessage:function(){}};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(e){var t=jspb.BinaryConstants.FieldType,o=jspb.BinaryConstants.WireType;switch(e){case t.INT32:case t.INT64:case t.UINT32:case t.UINT64:case t.SINT32:case t.SINT64:case t.BOOL:case t.ENUM:case t.VHASH64:return o.VARINT;case t.DOUBLE:case t.FIXED64:case t.SFIXED64:case t.FHASH64:return o.FIXED64;case t.STRING:case t.MESSAGE:case t.BYTES:return o.DELIMITED;case t.FLOAT:case t.FIXED32:case t.SFIXED32:return o.FIXED32;default:return o.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=0x8000000000000000,jspb.BinaryConstants.TWO_TO_64=0x10000000000000000,jspb.BinaryConstants.ZERO_HASH="\\0\\0\\0\\0\\0\\0\\0\\0",goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.indexOf.call(e,t,o)}:function(e,t,o){if(o=null==o?0:0>o?Math.max(0,e.length+o):o,goog.isString(e))return goog.isString(t)&&1==t.length?e.indexOf(t,o):-1;for(;o<e.length;o++)if(o in e&&e[o]===t)return o;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.lastIndexOf.call(e,t,null==o?e.length-1:o)}:function(e,t,o){if(0>(o=null==o?e.length-1:o)&&(o=Math.max(0,e.length+o)),goog.isString(e))return goog.isString(t)&&1==t.length?e.lastIndexOf(t,o):-1;for(;0<=o;o--)if(o in e&&e[o]===t)return o;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,t,o){goog.asserts.assert(null!=e.length),Array.prototype.forEach.call(e,t,o)}:function(e,t,o){for(var r=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<r;s++)s in n&&t.call(o,n[s],s,e)},goog.array.forEachRight=function(e,t,o){var r=e.length,n=goog.isString(e)?e.split(""):e;for(--r;0<=r;--r)r in n&&t.call(o,n[r],r,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.filter.call(e,t,o)}:function(e,t,o){for(var r=e.length,n=[],s=0,i=goog.isString(e)?e.split(""):e,a=0;a<r;a++)if(a in i){var g=i[a];t.call(o,g,a,e)&&(n[s++]=g)}return n},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.map.call(e,t,o)}:function(e,t,o){for(var r=e.length,n=Array(r),s=goog.isString(e)?e.split(""):e,i=0;i<r;i++)i in s&&(n[i]=t.call(o,s[i],i,e));return n},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,t,o,r){return goog.asserts.assert(null!=e.length),r&&(t=goog.bind(t,r)),Array.prototype.reduce.call(e,t,o)}:function(e,t,o,r){var n=o;return goog.array.forEach(e,(function(o,s){n=t.call(r,n,o,s,e)})),n},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,t,o,r){return goog.asserts.assert(null!=e.length),goog.asserts.assert(null!=t),r&&(t=goog.bind(t,r)),Array.prototype.reduceRight.call(e,t,o)}:function(e,t,o,r){var n=o;return goog.array.forEachRight(e,(function(o,s){n=t.call(r,n,o,s,e)})),n},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.some.call(e,t,o)}:function(e,t,o){for(var r=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<r;s++)if(s in n&&t.call(o,n[s],s,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,t,o){return goog.asserts.assert(null!=e.length),Array.prototype.every.call(e,t,o)}:function(e,t,o){for(var r=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<r;s++)if(s in n&&!t.call(o,n[s],s,e))return!1;return!0},goog.array.count=function(e,t,o){var r=0;return goog.array.forEach(e,(function(e,n,s){t.call(o,e,n,s)&&++r}),o),r},goog.array.find=function(e,t,o){return 0>(t=goog.array.findIndex(e,t,o))?null:goog.isString(e)?e.charAt(t):e[t]},goog.array.findIndex=function(e,t,o){for(var r=e.length,n=goog.isString(e)?e.split(""):e,s=0;s<r;s++)if(s in n&&t.call(o,n[s],s,e))return s;return-1},goog.array.findRight=function(e,t,o){return 0>(t=goog.array.findIndexRight(e,t,o))?null:goog.isString(e)?e.charAt(t):e[t]},goog.array.findIndexRight=function(e,t,o){var r=e.length,n=goog.isString(e)?e.split(""):e;for(--r;0<=r;r--)if(r in n&&t.call(o,n[r],r,e))return r;return-1},goog.array.contains=function(e,t){return 0<=goog.array.indexOf(e,t)},goog.array.isEmpty=function(e){return 0==e.length},goog.array.clear=function(e){if(!goog.isArray(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0},goog.array.insert=function(e,t){goog.array.contains(e,t)||e.push(t)},goog.array.insertAt=function(e,t,o){goog.array.splice(e,o,0,t)},goog.array.insertArrayAt=function(e,t,o){goog.partial(goog.array.splice,e,o,0).apply(null,t)},goog.array.insertBefore=function(e,t,o){var r;2==arguments.length||0>(r=goog.array.indexOf(e,o))?e.push(t):goog.array.insertAt(e,t,r)},goog.array.remove=function(e,t){var o;return(o=0<=(t=goog.array.indexOf(e,t)))&&goog.array.removeAt(e,t),o},goog.array.removeLast=function(e,t){return 0<=(t=goog.array.lastIndexOf(e,t))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAt=function(e,t){return goog.asserts.assert(null!=e.length),1==Array.prototype.splice.call(e,t,1).length},goog.array.removeIf=function(e,t,o){return 0<=(t=goog.array.findIndex(e,t,o))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAllIf=function(e,t,o){var r=0;return goog.array.forEachRight(e,(function(n,s){t.call(o,n,s,e)&&goog.array.removeAt(e,s)&&r++})),r},goog.array.concat=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(e){var t=e.length;if(0<t){for(var o=Array(t),r=0;r<t;r++)o[r]=e[r];return o}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,t){for(var o=1;o<arguments.length;o++){var r=arguments[o];if(goog.isArrayLike(r)){var n=e.length||0,s=r.length||0;e.length=n+s;for(var i=0;i<s;i++)e[n+i]=r[i]}else e.push(r)}},goog.array.splice=function(e,t,o,r){return goog.asserts.assert(null!=e.length),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,t,o){return goog.asserts.assert(null!=e.length),2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,o)},goog.array.removeDuplicates=function(e,t,o){t=t||e;var r=function(e){return goog.isObject(e)?"o"+goog.getUid(e):(typeof e).charAt(0)+e};o=o||r,r={};for(var n=0,s=0;s<e.length;){var i=e[s++],a=o(i);Object.prototype.hasOwnProperty.call(r,a)||(r[a]=!0,t[n++]=i)}t.length=n},goog.array.binarySearch=function(e,t,o){return goog.array.binarySearch_(e,o||goog.array.defaultCompare,!1,t)},goog.array.binarySelect=function(e,t,o){return goog.array.binarySearch_(e,t,!0,void 0,o)},goog.array.binarySearch_=function(e,t,o,r,n){for(var s,i=0,a=e.length;i<a;){var g=i+a>>1,l=o?t.call(n,e[g],g,e):t(r,e[g]);0<l?i=g+1:(a=g,s=!l)}return s?i:~i},goog.array.sort=function(e,t){e.sort(t||goog.array.defaultCompare)},goog.array.stableSort=function(e,t){for(var o=Array(e.length),r=0;r<e.length;r++)o[r]={index:r,value:e[r]};var n=t||goog.array.defaultCompare;for(goog.array.sort(o,(function(e,t){return n(e.value,t.value)||e.index-t.index})),r=0;r<e.length;r++)e[r]=o[r].value},goog.array.sortByKey=function(e,t,o){var r=o||goog.array.defaultCompare;goog.array.sort(e,(function(e,o){return r(t(e),t(o))}))},goog.array.sortObjectsByKey=function(e,t,o){goog.array.sortByKey(e,(function(e){return e[t]}),o)},goog.array.isSorted=function(e,t,o){t=t||goog.array.defaultCompare;for(var r=1;r<e.length;r++){var n=t(e[r-1],e[r]);if(0<n||0==n&&o)return!1}return!0},goog.array.equals=function(e,t,o){if(!goog.isArrayLike(e)||!goog.isArrayLike(t)||e.length!=t.length)return!1;var r=e.length;o=o||goog.array.defaultCompareEquality;for(var n=0;n<r;n++)if(!o(e[n],t[n]))return!1;return!0},goog.array.compare3=function(e,t,o){o=o||goog.array.defaultCompare;for(var r=Math.min(e.length,t.length),n=0;n<r;n++){var s=o(e[n],t[n]);if(0!=s)return s}return goog.array.defaultCompare(e.length,t.length)},goog.array.defaultCompare=function(e,t){return e>t?1:e<t?-1:0},goog.array.inverseDefaultCompare=function(e,t){return-goog.array.defaultCompare(e,t)},goog.array.defaultCompareEquality=function(e,t){return e===t},goog.array.binaryInsert=function(e,t,o){return 0>(o=goog.array.binarySearch(e,t,o))&&(goog.array.insertAt(e,t,-(o+1)),!0)},goog.array.binaryRemove=function(e,t,o){return 0<=(t=goog.array.binarySearch(e,t,o))&&goog.array.removeAt(e,t)},goog.array.bucket=function(e,t,o){for(var r={},n=0;n<e.length;n++){var s=e[n],i=t.call(o,s,n,e);goog.isDef(i)&&(r[i]||(r[i]=[])).push(s)}return r},goog.array.toObject=function(e,t,o){var r={};return goog.array.forEach(e,(function(n,s){r[t.call(o,n,s,e)]=n})),r},goog.array.range=function(e,t,o){var r=[],n=0,s=e;if(void 0!==t&&(n=e,s=t),0>(o=o||1)*(s-n))return[];if(0<o)for(e=n;e<s;e+=o)r.push(e);else for(e=n;e>s;e+=o)r.push(e);return r},goog.array.repeat=function(e,t){for(var o=[],r=0;r<t;r++)o[r]=e;return o},goog.array.flatten=function(e){for(var t=[],o=0;o<arguments.length;o++){var r=arguments[o];if(goog.isArray(r))for(var n=0;n<r.length;n+=8192){var s=goog.array.slice(r,n,n+8192);s=goog.array.flatten.apply(null,s);for(var i=0;i<s.length;i++)t.push(s[i])}else t.push(r)}return t},goog.array.rotate=function(e,t){return goog.asserts.assert(null!=e.length),e.length&&(0<(t%=e.length)?Array.prototype.unshift.apply(e,e.splice(-t,t)):0>t&&Array.prototype.push.apply(e,e.splice(0,-t))),e},goog.array.moveItem=function(e,t,o){goog.asserts.assert(0<=t&&t<e.length),goog.asserts.assert(0<=o&&o<e.length),t=Array.prototype.splice.call(e,t,1),Array.prototype.splice.call(e,o,0,t[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var t=[],o=arguments[0].length,r=1;r<arguments.length;r++)arguments[r].length<o&&(o=arguments[r].length);for(r=0;r<o;r++){for(var n=[],s=0;s<arguments.length;s++)n.push(arguments[s][r]);t.push(n)}return t},goog.array.shuffle=function(e,t){t=t||Math.random;for(var o=e.length-1;0<o;o--){var r=Math.floor(t()*(o+1)),n=e[o];e[o]=e[r],e[r]=n}},goog.array.copyByIndex=function(e,t){var o=[];return goog.array.forEach(t,(function(t){o.push(e[t])})),o},goog.array.concatMap=function(e,t,o){return goog.array.concat.apply([],goog.array.map(e,t,o))},goog.crypt={},goog.crypt.stringToByteArray=function(e){for(var t=[],o=0,r=0;r<e.length;r++){var n=e.charCodeAt(r);255<n&&(t[o++]=255&n,n>>=8),t[o++]=n}return t},goog.crypt.byteArrayToString=function(e){if(8192>=e.length)return String.fromCharCode.apply(null,e);for(var t="",o=0;o<e.length;o+=8192){var r=goog.array.slice(e,o,o+8192);t+=String.fromCharCode.apply(null,r)}return t},goog.crypt.byteArrayToHex=function(e,t){return goog.array.map(e,(function(e){return 1<(e=e.toString(16)).length?e:"0"+e})).join(t||"")},goog.crypt.hexToByteArray=function(e){goog.asserts.assert(0==e.length%2,"Key string length must be multiple of 2");for(var t=[],o=0;o<e.length;o+=2)t.push(parseInt(e.substring(o,o+2),16));return t},goog.crypt.stringToUtf8ByteArray=function(e){for(var t=[],o=0,r=0;r<e.length;r++){var n=e.charCodeAt(r);128>n?t[o++]=n:(2048>n?t[o++]=n>>6|192:(55296==(64512&n)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(n=65536+((1023&n)<<10)+(1023&e.charCodeAt(++r)),t[o++]=n>>18|240,t[o++]=n>>12&63|128):t[o++]=n>>12|224,t[o++]=n>>6&63|128),t[o++]=63&n|128)}return t},goog.crypt.utf8ByteArrayToString=function(e){for(var t=[],o=0,r=0;o<e.length;){var n=e[o++];if(128>n)t[r++]=String.fromCharCode(n);else if(191<n&&224>n){var s=e[o++];t[r++]=String.fromCharCode((31&n)<<6|63&s)}else if(239<n&&365>n){s=e[o++];var i=e[o++];n=((7&n)<<18|(63&s)<<12|(63&i)<<6|63&e[o++])-65536,t[r++]=String.fromCharCode(55296+(n>>10)),t[r++]=String.fromCharCode(56320+(1023&n))}else s=e[o++],i=e[o++],t[r++]=String.fromCharCode((15&n)<<12|(63&s)<<6|63&i)}return t.join("")},goog.crypt.xorByteArray=function(e,t){goog.asserts.assert(e.length==t.length,"XOR array lengths must match");for(var o=[],r=0;r<e.length;r++)o.push(e[r]^t[r]);return o},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(e){if(goog.asserts.ENABLE_ASSERTS){var t=goog.dom.asserts.getWindow_(e);t&&(!e||!(e instanceof t.Location)&&e instanceof t.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(e))}return e},goog.dom.asserts.assertIsElementType_=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var o=goog.dom.asserts.getWindow_(e);o&&void 0!==o[t]&&(e&&(e instanceof o[t]||!(e instanceof o.Location||e instanceof o.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",t,goog.dom.asserts.debugStringForType_(e)))}return e},goog.dom.asserts.assertIsHTMLAnchorElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(e){if(!goog.isObject(e))return void 0===e?"undefined":null===e?"null":typeof e;try{return e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e)}catch(e){return"<object could not be stringified>"}},goog.dom.asserts.getWindow_=function(e){try{var t=e&&e.ownerDocument,o=t&&(t.defaultView||t.parentWindow);if((o=o||goog.global).Element&&o.Location)return o}catch(e){}return null},goog.functions={},goog.functions.constant=function(e){return function(){return e}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(e,t){return e},goog.functions.error=function(e){return function(){throw Error(e)}},goog.functions.fail=function(e){return function(){throw e}},goog.functions.lock=function(e,t){return t=t||0,function(){return e.apply(this,Array.prototype.slice.call(arguments,0,t))}},goog.functions.nth=function(e){return function(){return arguments[e]}},goog.functions.partialRight=function(e,t){var o=Array.prototype.slice.call(arguments,1);return function(){var t=Array.prototype.slice.call(arguments);return t.push.apply(t,o),e.apply(this,t)}},goog.functions.withReturnValue=function(e,t){return goog.functions.sequence(e,goog.functions.constant(t))},goog.functions.equalTo=function(e,t){return function(o){return t?e==o:e===o}},goog.functions.compose=function(e,t){var o=arguments,r=o.length;return function(){var e;r&&(e=o[r-1].apply(this,arguments));for(var t=r-2;0<=t;t--)e=o[t].call(this,e);return e}},goog.functions.sequence=function(e){var t=arguments,o=t.length;return function(){for(var e,r=0;r<o;r++)e=t[r].apply(this,arguments);return e}},goog.functions.and=function(e){var t=arguments,o=t.length;return function(){for(var e=0;e<o;e++)if(!t[e].apply(this,arguments))return!1;return!0}},goog.functions.or=function(e){var t=arguments,o=t.length;return function(){for(var e=0;e<o;e++)if(t[e].apply(this,arguments))return!0;return!1}},goog.functions.not=function(e){return function(){return!e.apply(this,arguments)}},goog.functions.create=function(e,t){var o=function(){};return o.prototype=e.prototype,o=new o,e.apply(o,Array.prototype.slice.call(arguments,1)),o},goog.functions.CACHE_RETURN_VALUE=!0,goog.functions.cacheReturnValue=function(e){var t,o=!1;return function(){return goog.functions.CACHE_RETURN_VALUE?(o||(t=e(),o=!0),t):e()}},goog.functions.once=function(e){var t=e;return function(){if(t){var e=t;t=null,e()}}},goog.functions.debounce=function(e,t,o){var r=0;return function(n){goog.global.clearTimeout(r);var s=arguments;r=goog.global.setTimeout((function(){e.apply(o,s)}),t)}},goog.functions.throttle=function(e,t,o){var r=0,n=!1,s=[],i=function(){r=0,n&&(n=!1,a())},a=function(){r=goog.global.setTimeout(i,t),e.apply(o,s)};return function(e){s=arguments,r?n=!0:a()}},goog.functions.rateLimit=function(e,t,o){var r=0,n=function(){r=0};return function(s){r||(r=goog.global.setTimeout(n,t),e.apply(o,arguments))}},goog.dom.HtmlElement=function(){},goog.dom.TagName=function(e){this.tagName_=e},goog.dom.TagName.prototype.toString=function(){return this.tagName_},goog.dom.TagName.A=new goog.dom.TagName("A"),goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR"),goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM"),goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS"),goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET"),goog.dom.TagName.AREA=new goog.dom.TagName("AREA"),goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE"),goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE"),goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO"),goog.dom.TagName.B=new goog.dom.TagName("B"),goog.dom.TagName.BASE=new goog.dom.TagName("BASE"),goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT"),goog.dom.TagName.BDI=new goog.dom.TagName("BDI"),goog.dom.TagName.BDO=new goog.dom.TagName("BDO"),goog.dom.TagName.BIG=new goog.dom.TagName("BIG"),goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE"),goog.dom.TagName.BODY=new goog.dom.TagName("BODY"),goog.dom.TagName.BR=new goog.dom.TagName("BR"),goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON"),goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS"),goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION"),goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER"),goog.dom.TagName.CITE=new goog.dom.TagName("CITE"),goog.dom.TagName.CODE=new goog.dom.TagName("CODE"),goog.dom.TagName.COL=new goog.dom.TagName("COL"),goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP"),goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND"),goog.dom.TagName.DATA=new goog.dom.TagName("DATA"),goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST"),goog.dom.TagName.DD=new goog.dom.TagName("DD"),goog.dom.TagName.DEL=new goog.dom.TagName("DEL"),goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS"),goog.dom.TagName.DFN=new goog.dom.TagName("DFN"),goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG"),goog.dom.TagName.DIR=new goog.dom.TagName("DIR"),goog.dom.TagName.DIV=new goog.dom.TagName("DIV"),goog.dom.TagName.DL=new goog.dom.TagName("DL"),goog.dom.TagName.DT=new goog.dom.TagName("DT"),goog.dom.TagName.EM=new goog.dom.TagName("EM"),goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED"),goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET"),goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION"),goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE"),goog.dom.TagName.FONT=new goog.dom.TagName("FONT"),goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER"),goog.dom.TagName.FORM=new goog.dom.TagName("FORM"),goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME"),goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET"),goog.dom.TagName.H1=new goog.dom.TagName("H1"),goog.dom.TagName.H2=new goog.dom.TagName("H2"),goog.dom.TagName.H3=new goog.dom.TagName("H3"),goog.dom.TagName.H4=new goog.dom.TagName("H4"),goog.dom.TagName.H5=new goog.dom.TagName("H5"),goog.dom.TagName.H6=new goog.dom.TagName("H6"),goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD"),goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER"),goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP"),goog.dom.TagName.HR=new goog.dom.TagName("HR"),goog.dom.TagName.HTML=new goog.dom.TagName("HTML"),goog.dom.TagName.I=new goog.dom.TagName("I"),goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME"),goog.dom.TagName.IMG=new goog.dom.TagName("IMG"),goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT"),goog.dom.TagName.INS=new goog.dom.TagName("INS"),goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX"),goog.dom.TagName.KBD=new goog.dom.TagName("KBD"),goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN"),goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL"),goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND"),goog.dom.TagName.LI=new goog.dom.TagName("LI"),goog.dom.TagName.LINK=new goog.dom.TagName("LINK"),goog.dom.TagName.MAIN=new goog.dom.TagName("MAIN"),goog.dom.TagName.MAP=new goog.dom.TagName("MAP"),goog.dom.TagName.MARK=new goog.dom.TagName("MARK"),goog.dom.TagName.MATH=new goog.dom.TagName("MATH"),goog.dom.TagName.MENU=new goog.dom.TagName("MENU"),goog.dom.TagName.MENUITEM=new goog.dom.TagName("MENUITEM"),goog.dom.TagName.META=new goog.dom.TagName("META"),goog.dom.TagName.METER=new goog.dom.TagName("METER"),goog.dom.TagName.NAV=new goog.dom.TagName("NAV"),goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES"),goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT"),goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT"),goog.dom.TagName.OL=new goog.dom.TagName("OL"),goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP"),goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION"),goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT"),goog.dom.TagName.P=new goog.dom.TagName("P"),goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM"),goog.dom.TagName.PICTURE=new goog.dom.TagName("PICTURE"),goog.dom.TagName.PRE=new goog.dom.TagName("PRE"),goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS"),goog.dom.TagName.Q=new goog.dom.TagName("Q"),goog.dom.TagName.RP=new goog.dom.TagName("RP"),goog.dom.TagName.RT=new goog.dom.TagName("RT"),goog.dom.TagName.RTC=new goog.dom.TagName("RTC"),goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY"),goog.dom.TagName.S=new goog.dom.TagName("S"),goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP"),goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT"),goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION"),goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT"),goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL"),goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE"),goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN"),goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE"),goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG"),goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE"),goog.dom.TagName.SUB=new goog.dom.TagName("SUB"),goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY"),goog.dom.TagName.SUP=new goog.dom.TagName("SUP"),goog.dom.TagName.SVG=new goog.dom.TagName("SVG"),goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE"),goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY"),goog.dom.TagName.TD=new goog.dom.TagName("TD"),goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE"),goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA"),goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT"),goog.dom.TagName.TH=new goog.dom.TagName("TH"),goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD"),goog.dom.TagName.TIME=new goog.dom.TagName("TIME"),goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE"),goog.dom.TagName.TR=new goog.dom.TagName("TR"),goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK"),goog.dom.TagName.TT=new goog.dom.TagName("TT"),goog.dom.TagName.U=new goog.dom.TagName("U"),goog.dom.TagName.UL=new goog.dom.TagName("UL"),goog.dom.TagName.VAR=new goog.dom.TagName("VAR"),goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO"),goog.dom.TagName.WBR=new goog.dom.TagName("WBR"),goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(e){return!0===goog.dom.tags.VOID_TAGS_[e]},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.string={},goog.string.TypedString=function(){},goog.string.Const=function(e,t){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=e===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"},goog.string.Const.unwrap=function(e){return e instanceof goog.string.Const&&e.constructor===goog.string.Const&&e.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?e.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got \'"+e+"\'"),"type_error:Const")},goog.string.Const.from=function(e){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="",this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0,goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeScript.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeScript.fromConstantAndArgs=function(e,t){for(var o=[],r=1;r<arguments.length;r++)o.push(goog.html.SafeScript.stringify_(arguments[r]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(e)+")("+o.join(", ")+");")},goog.html.SafeScript.fromJson=function(e){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(e))},goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),goog.html.SafeScript.unwrap=function(e){return goog.html.SafeScript.unwrapTrustedScript(e).toString()},goog.html.SafeScript.unwrapTrustedScript=function(e){return e instanceof goog.html.SafeScript&&e.constructor===goog.html.SafeScript&&e.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeScriptWrappedValue_:(goog.asserts.fail("expected object of type SafeScript, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:SafeScript")},goog.html.SafeScript.stringify_=function(e){return JSON.stringify(e).replace(/</g,"\\\\x3c")},goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(e):e,this},goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(null!=e)return e;throw Error("This browser doesn\'t seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))&&("adlm"==goog.LOCALE.substring(3,7).toLowerCase()||"arab"==goog.LOCALE.substring(3,7).toLowerCase()||"hebr"==goog.LOCALE.substring(3,7).toLowerCase()||"nkoo"==goog.LOCALE.substring(3,7).toLowerCase()||"rohg"==goog.LOCALE.substring(3,7).toLowerCase()||"thaa"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))&&("adlm"==goog.LOCALE.substring(4,8).toLowerCase()||"arab"==goog.LOCALE.substring(4,8).toLowerCase()||"hebr"==goog.LOCALE.substring(4,8).toLowerCase()||"nkoo"==goog.LOCALE.substring(4,8).toLowerCase()||"rohg"==goog.LOCALE.substring(4,8).toLowerCase()||"thaa"==goog.LOCALE.substring(4,8).toLowerCase()),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"â€"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,t){return"number"==typeof e?0<e?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:t?null:goog.i18n.bidi.Dir.NEUTRAL:null==e?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-Öऀ-῿‎Ⰰ-\\ud801\\ud804-\\ud839\\ud83c-\\udbff豈-﬜︀-﹯﻽-ï¿¿",goog.i18n.bidi.rtlChars_="Ö‘-Û¯Ûº-ࣿâ€\\ud802-\\ud803\\ud83a-\\ud83bï¬-ï·¿ï¹°-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,t){return t?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,t){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,t){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,t){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,t){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\\/\\/.*/,goog.i18n.bidi.isNeutralText=function(e,t){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,t){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,t){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\\(.*?\\)+)|(\\[.*?\\]+)|(\\{.*?\\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,t){return t=(void 0===t?goog.i18n.bidi.hasAnyRtl(e):t)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,e.replace(goog.i18n.bidi.bracketGuardTextRe_,t+"$&"+t)},goog.i18n.bidi.enforceRtlInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\\w+/,"$& dir=rtl"):"\\n<span dir=rtl>"+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\\w+/,"$& dir=ltr"):"\\n<span dir=ltr>"+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\\s*([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\\u0591-\\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\\u0591-\\u05f2])\'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1×´").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\\d\\u06f0-\\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,t){var o=0,r=0,n=!1;for(e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t).split(goog.i18n.bidi.wordSeparatorRe_),t=0;t<e.length;t++){var s=e[t];goog.i18n.bidi.startsWithRtl(s)?(o++,r++):goog.i18n.bidi.isRequiredLtrRe_.test(s)?n=!0:goog.i18n.bidi.hasAnyLtr(s)?r++:goog.i18n.bidi.hasNumeralsRe_.test(s)&&(n=!0)}return 0==r?n?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:o/r>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,t){return goog.i18n.bidi.estimateDirection(e,t)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,t){e&&(t=goog.i18n.bidi.toDir(t))&&(e.style.textAlign=t==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=t==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,t){switch(goog.i18n.bidi.estimateDirection(t)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="",this.trustedURL_=null,this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(e,t){var o=goog.html.TrustedResourceUrl.unwrap(this),r=(o=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(o))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(o[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",o[2]||"",e)+goog.html.TrustedResourceUrl.stringifyParams_("#",r,t))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.unwrapTrustedURL=function(e){return e.trustedURL_?e.trustedURL_:goog.html.TrustedResourceUrl.unwrap(e)},goog.html.TrustedResourceUrl.format=function(e,t){var o=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(o))throw Error("Invalid TrustedResourceUrl format: "+o);return e=o.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,(function(e,r){if(!Object.prototype.hasOwnProperty.call(t,r))throw Error(\'Found marker, "\'+r+\'", in format string, "\'+o+\'", but no valid label mapping found in args: \'+JSON.stringify(t));return(e=t[r])instanceof goog.string.Const?goog.string.Const.unwrap(e):encodeURIComponent(String(e))})),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\\/\\/[0-9a-z.:[\\]-]+\\/|\\/[^/\\\\]|[^:/\\\\%]+\\/|[^:/\\\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(e,t,o,r){return goog.html.TrustedResourceUrl.format(e,t).cloneWithParams(o,r)},goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var t="",o=0;o<e.length;o++)t+=goog.string.Const.unwrap(e[o]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){var t=new goog.html.TrustedResourceUrl;return t.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(e):e,goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY&&(t.trustedURL_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(e)),t},goog.html.TrustedResourceUrl.stringifyParams_=function(e,t,o){if(null==o)return t;if(goog.isString(o))return o?e+encodeURIComponent(o):"";for(var r in o){var n=o[r];n=goog.isArray(n)?n:[n];for(var s=0;s<n.length;s++){var i=n[s];null!=i&&(t||(t=e),t+=(t.length>e.length?"&":"")+encodeURIComponent(r)+"="+encodeURIComponent(String(i)))}}return t},goog.string.internal={},goog.string.internal.startsWith=function(e,t){return 0==e.lastIndexOf(t,0)},goog.string.internal.endsWith=function(e,t){var o=e.length-t.length;return 0<=o&&e.indexOf(t,o)==o},goog.string.internal.caseInsensitiveStartsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(0,t.length))},goog.string.internal.caseInsensitiveEndsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(e.length-t.length,t.length))},goog.string.internal.caseInsensitiveEquals=function(e,t){return e.toLowerCase()==t.toLowerCase()},goog.string.internal.isEmptyOrWhitespace=function(e){return/^[\\s\\xa0]*$/.test(e)},goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(e)[1]},goog.string.internal.caseInsensitiveCompare=function(e,t){return(e=String(e).toLowerCase())<(t=String(t).toLowerCase())?-1:e==t?0:1},goog.string.internal.newLineToBr=function(e,t){return e.replace(/(\\r\\n|\\r|\\n)/g,t?"<br />":"<br>")},goog.string.internal.htmlEscape=function(e,t){if(t)e=e.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.internal.AMP_RE_,"&")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.internal.LT_RE_,"<")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.internal.GT_RE_,">")),-1!=e.indexOf(\'"\')&&(e=e.replace(goog.string.internal.QUOT_RE_,""")),-1!=e.indexOf("\'")&&(e=e.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),-1!=e.indexOf("\\0")&&(e=e.replace(goog.string.internal.NULL_RE_,"�"))}return e},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=/</g,goog.string.internal.GT_RE_=/>/g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/\'/g,goog.string.internal.NULL_RE_=/\\x00/g,goog.string.internal.ALL_RE_=/[\\x00&<>"\']/,goog.string.internal.whitespaceEscape=function(e,t){return goog.string.internal.newLineToBr(e.replace(/ /g,"  "),t)},goog.string.internal.contains=function(e,t){return-1!=e.indexOf(t)},goog.string.internal.caseInsensitiveContains=function(e,t){return goog.string.internal.contains(e.toLowerCase(),t.toLowerCase())},goog.string.internal.compareVersions=function(e,t){var o=0;e=goog.string.internal.trim(String(e)).split("."),t=goog.string.internal.trim(String(t)).split(".");for(var r=Math.max(e.length,t.length),n=0;0==o&&n<r;n++){var s=e[n]||"",i=t[n]||"";do{if(s=/(\\d*)(\\D*)(.*)/.exec(s)||["","","",""],i=/(\\d*)(\\D*)(.*)/.exec(i)||["","","",""],0==s[0].length&&0==i[0].length)break;o=0==s[1].length?0:parseInt(s[1],10);var a=0==i[1].length?0:parseInt(i[1],10);o=goog.string.internal.compareElements_(o,a)||goog.string.internal.compareElements_(0==s[2].length,0==i[2].length)||goog.string.internal.compareElements_(s[2],i[2]),s=s[3],i=i[3]}while(0==o)}return o},goog.string.internal.compareElements_=function(e,t){return e<t?-1:e>t?1:0},goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeUrlWrappedValue_="",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return goog.html.SafeUrl.unwrapTrustedURL(e).toString()},goog.html.SafeUrl.unwrapTrustedURL=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\\/csv|video\\/(?:mpeg|mp4|ogg|webm|quicktime))(?:;\\w+=(?:\\w+|"[\\w;=]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(e){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(e)},goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SAFE_MIME_TYPE_PATTERN_.test(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:([^,]*);base64,[a-z0-9+\\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){var t=(e=e.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return t=t&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(t[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&\'*\\/=^`{|}~-]+@([a-z0-9-]+\\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(e){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(e))||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"fb-messenger://share")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromWhatsAppUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"whatsapp://send")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromSmsUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(e){var t=e.indexOf("#");if(0<t&&(e=e.substring(0,t)),!(t=e.match(/[?&]body=/gi)))return!0;if(1<t.length)return!1;if(!(e=e.match(/[?&]body=([^&]*)/)[1]))return!0;try{decodeURIComponent(e)}catch(e){return!1}return/^(?:[a-z0-9\\-_.~]|%[0-9a-f]{2})+$/i.test(e)},goog.html.SafeUrl.fromSshUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"ssh://")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\\/\\/([^\\/]+)\\//,e,t)},goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\\/\\/([^\\/]+)\\//,e,t)},goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\\/\\/([^\\/]+)\\//,e,t)},goog.html.SafeUrl.sanitizeExtensionUrl_=function(e,t,o){return(e=e.exec(t))?(e=e[1],-1==(o instanceof goog.string.Const?[goog.string.Const.unwrap(o)]:o.map((function(e){return goog.string.Const.unwrap(e)}))).indexOf(e)&&(t=goog.html.SafeUrl.INNOCUOUS_STRING)):t=goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromTrustedResourceUrl=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(e))},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.sanitizeAssertUnchanged=function(e,t){return e instanceof goog.html.SafeUrl?e:(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),t&&/^data:/i.test(e)&&(t=goog.html.SafeUrl.fromDataUrl(e)).getTypedStringValue()==e?t:(goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(e),"%s does not match the safe URL pattern",e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)))},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){var t=new goog.html.SafeUrl;return t.privateDoNotAccessOrElseSafeUrlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createURL(e):e,t},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="",this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyle.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyle.EMPTY:(goog.asserts.assert(goog.string.internal.endsWith(e,";"),"Last character of style string is not \';\': "+e),goog.asserts.assert(goog.string.internal.contains(e,":"),"Style string must contain at least one \':\', to specify a \\"name: value\\" pair: "+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var t,o="";for(t in e){if(!/^[-_a-zA-Z0-9]+$/.test(t))throw Error("Name allows only [-_a-zA-Z0-9], got: "+t);var r=e[t];null!=r&&(o+=t+":"+(r=goog.isArray(r)?goog.array.map(r,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(r))+";")}return o?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(o):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.sanitizePropertyValue_=function(e){if(e instanceof goog.html.SafeUrl)return\'url("\'+goog.html.SafeUrl.unwrap(e).replace(/</g,"%3c").replace(/[\\\\"]/g,"\\\\$&")+\'")\';if(e=e instanceof goog.string.Const?goog.string.Const.unwrap(e):goog.html.SafeStyle.sanitizePropertyValueString_(String(e)),/[{;}]/.test(e))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[e]);return e},goog.html.SafeStyle.sanitizePropertyValueString_=function(e){var t=e.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");return goog.html.SafeStyle.VALUE_RE_.test(t)?goog.html.SafeStyle.COMMENT_RE_.test(e)?(goog.asserts.fail("String value disallows comments, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):goog.html.SafeStyle.hasBalancedQuotes_(e)?goog.html.SafeStyle.hasBalancedSquareBrackets_(e)?goog.html.SafeStyle.sanitizeUrl_(e):(goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value requires balanced quotes, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING)},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var t=!0,o=!0,r=0;r<e.length;r++){var n=e.charAt(r);"\'"==n&&o?t=!t:\'"\'==n&&t&&(o=!o)}return t&&o},goog.html.SafeStyle.hasBalancedSquareBrackets_=function(e){for(var t=!0,o=/^[-_a-zA-Z0-9]$/,r=0;r<e.length;r++){var n=e.charAt(r);if("]"==n){if(t)return!1;t=!0}else if("["==n){if(!t)return!1;t=!1}else if(!t&&!o.test(n))return!1}return t},goog.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\\"\'%_!# a-zA-Z0-9\\\\[\\\\]]",goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$"),goog.html.SafeStyle.URL_RE_=/\\b(url\\([ \\t\\n]*)(\'[ -&(-\\[\\]-~]*\'|"[ !#-\\[\\]-~]*"|[!#-&*-\\[\\]-~]*)([ \\t\\n]*\\))/g,goog.html.SafeStyle.FUNCTIONS_RE_=/\\b(hsl|hsla|rgb|rgba|matrix|calc|minmax|fit-content|repeat|(rotate|scale|translate)(X|Y|Z|3d)?)\\([-+*/0-9a-z.%\\[\\], ]+\\)/g,goog.html.SafeStyle.COMMENT_RE_=/\\/\\*/,goog.html.SafeStyle.sanitizeUrl_=function(e){return e.replace(goog.html.SafeStyle.URL_RE_,(function(e,t,o,r){var n="";return o=o.replace(/^([\'"])(.*)\\1$/,(function(e,t,o){return n=t,o})),e=goog.html.SafeUrl.sanitize(o).getTypedStringValue(),t+n+e+n+r}))},goog.html.SafeStyle.concat=function(e){var t="",o=function(e){goog.isArray(e)?goog.array.forEach(e,o):t+=goog.html.SafeStyle.unwrap(e)};return goog.array.forEach(arguments,o),t?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.createRule=function(e,t){if(goog.string.internal.contains(e,"<"))throw Error("Selector does not allow \'<\', got: "+e);var o=e.replace(/(\'|")((?!\\1)[^\\r\\n\\f\\\\]|\\\\[\\s\\S])*\\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|]+$/.test(o))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\\\]()=^$|] and strings, got: "+e);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(o))throw Error("() and [] in selector must be balanced, got: "+e);return t instanceof goog.html.SafeStyle||(t=goog.html.SafeStyle.create(t)),e=e+"{"+goog.html.SafeStyle.unwrap(t).replace(/</g,"\\\\3C ")+"}",goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeStyleSheet.hasBalancedBrackets_=function(e){for(var t={"(":")","[":"]"},o=[],r=0;r<e.length;r++){var n=e[r];if(t[n])o.push(t[n]);else if(goog.object.contains(t,n)&&o.pop()!=n)return!1}return 0==o.length},goog.html.SafeStyleSheet.concat=function(e){var t="",o=function(e){goog.isArray(e)?goog.array.forEach(e,o):t+=goog.html.SafeStyleSheet.unwrap(e)};return goog.array.forEach(arguments,o),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeStyleSheet.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.internal.contains(e,"<"),"Forbidden \'<\' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(t,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(t,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var t,o=/(\\w[\\w ]+)\\/([^\\s]+)\\s*(?:\\((.*?)\\))?/g,r=[];t=o.exec(e);)r.push([t[1],t[2],t[3]||void 0]);return r},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")},goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_,goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_,goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(e){return e=goog.array.find(e,r),o[e]||""}var t=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(t);t=goog.labs.userAgent.util.extractVersionTuples(t);var o={};goog.array.forEach(t,(function(e){o[e[0]]=e[1]}));var r=goog.partial(goog.object.containsKey,o);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isEdgeChromium()?e(["Edg"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS"]):(t=t[2])&&t[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){var t=/rv: *([\\d\\.]*)/.exec(e);if(t&&t[1])return t[1];t="";var o=/MSIE +([\\d\\.]+)/.exec(e);if(o&&o[1])if(e=/Trident\\/(\\d.\\d)/.exec(e),"7.0"==o[1])if(e&&e[1])switch(e[1]){case"4.0":t="8.0";break;case"5.0":t="9.0";break;case"6.0":t="10.0";break;case"7.0":t="11.0"}else t="7.0";else t=o[1];return t},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return goog.html.SafeHtml.unwrapTrustedHTML(e).toString()},goog.html.SafeHtml.unwrapTrustedHTML=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got \'"+e+"\' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var t="object"==typeof e,o=null;return t&&e.implementsGoogI18nBidiDirectionalString&&(o=e.getDirection()),e=t&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(e),o)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,t,o){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),t,o)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error("Invalid tag name <"+e+">.");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+e+"> is not allowed for SafeHtml.")},goog.html.SafeHtml.createIframe=function(e,t,o,r){e&&goog.html.TrustedResourceUrl.unwrap(e);var n={};return n.src=e||null,n.srcdoc=t&&goog.html.SafeHtml.unwrap(t),e=goog.html.SafeHtml.combineAttributes(n,{sandbox:""},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,r)},goog.html.SafeHtml.createSandboxIframe=function(e,t,o,r){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var n={};return n.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,n.srcdoc=t||null,n.sandbox="",e=goog.html.SafeHtml.combineAttributes(n,{},o),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,r)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,t){return goog.html.TrustedResourceUrl.unwrap(e),e=goog.html.SafeHtml.combineAttributes({src:e},{},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",e)},goog.html.SafeHtml.createScript=function(e,t){for(var o in t){var r=o.toLowerCase();if("language"==r||"src"==r||"text"==r||"type"==r)throw Error(\'Cannot set "\'+r+\'" attribute\')}for(o="",e=goog.array.concat(e),r=0;r<e.length;r++)o+=goog.html.SafeScript.unwrap(e[r]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t,e)},goog.html.SafeHtml.createStyle=function(e,t){t=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},t);var o="";e=goog.array.concat(e);for(var r=0;r<e.length;r++)o+=goog.html.SafeStyleSheet.unwrap(e[r]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",t,e)},goog.html.SafeHtml.createMetaRefresh=function(e,t){return e=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)),(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(e,";")&&(e="\'"+e.replace(/\'/g,"%27")+"\'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(t||0)+"; url="+e})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,t,o){if(o instanceof goog.string.Const)o=goog.string.Const.unwrap(o);else if("style"==t.toLowerCase())o=goog.html.SafeHtml.getStyleValue_(o);else{if(/^on/i.test(t))throw Error(\'Attribute "\'+t+\'" requires goog.string.Const value, "\'+o+\'" given.\');if(t.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(o instanceof goog.html.TrustedResourceUrl)o=goog.html.TrustedResourceUrl.unwrap(o);else if(o instanceof goog.html.SafeUrl)o=goog.html.SafeUrl.unwrap(o);else{if(!goog.isString(o))throw Error(\'Attribute "\'+t+\'" on tag "\'+e+\'" requires goog.html.SafeUrl, goog.string.Const, or string, value "\'+o+\'" given.\');o=goog.html.SafeUrl.sanitize(o).getTypedStringValue()}}return o.implementsGoogStringTypedString&&(o=o.getTypedStringValue()),goog.asserts.assert(goog.isString(o)||goog.isNumber(o),"String or number value expected, got "+typeof o+" with value: "+o),t+\'="\'+goog.string.internal.htmlEscape(String(o))+\'"\'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error(\'The "style" attribute requires goog.html.SafeStyle or map of style properties, \'+typeof e+" given: "+e);return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,t,o,r){return(t=goog.html.SafeHtml.create(t,o,r)).dir_=e,t},goog.html.SafeHtml.join=function(e,t){var o=(e=goog.html.SafeHtml.htmlEscape(e)).getDirection(),r=[],n=function(e){goog.isArray(e)?goog.array.forEach(e,n):(e=goog.html.SafeHtml.htmlEscape(e),r.push(goog.html.SafeHtml.unwrap(e)),e=e.getDirection(),o==goog.i18n.bidi.Dir.NEUTRAL?o=e:e!=goog.i18n.bidi.Dir.NEUTRAL&&o!=e&&(o=null))};return goog.array.forEach(t,n),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r.join(goog.html.SafeHtml.unwrap(e)),o)},goog.html.SafeHtml.concat=function(e){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))},goog.html.SafeHtml.concatWithDir=function(e,t){var o=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return o.dir_=e,o},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,t){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(e,t)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,t){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(e):e,this.dir_=t,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,t,o){var r=null,n="<"+e+goog.html.SafeHtml.stringifyAttributes(e,t);return goog.isDefAndNotNull(o)?goog.isArray(o)||(o=[o]):o=[],goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!o.length,"Void tag <"+e+"> does not allow content."),n+=">"):(r=goog.html.SafeHtml.concat(o),n+=">"+goog.html.SafeHtml.unwrap(r)+"</"+e+">",r=r.getDirection()),(e=t&&t.dir)&&(r=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,r)},goog.html.SafeHtml.stringifyAttributes=function(e,t){var o="";if(t)for(var r in t){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(r))throw Error(\'Invalid attribute name "\'+r+\'".\');var n=t[r];goog.isDefAndNotNull(n)&&(o+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,r,n))}return o},goog.html.SafeHtml.combineAttributes=function(e,t,o){var r,n={};for(r in e)goog.asserts.assert(r.toLowerCase()==r,"Must be lower case"),n[r]=e[r];for(r in t)goog.asserts.assert(r.toLowerCase()==r,"Must be lower case"),n[r]=t[r];for(r in o){var s=r.toLowerCase();if(s in e)throw Error(\'Cannot override "\'+s+\'" attribute, got "\'+r+\'" with value "\'+o[r]+\'"\');s in t&&delete n[s],n[r]=o[r]}return n},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(e,t,o){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,o||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,t,o){e.insertAdjacentHTML(t,goog.html.SafeHtml.unwrapTrustedHTML(o))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue((function(){if(goog.DEBUG&&"undefined"==typeof document)return!1;var e=document.createElement("div"),t=document.createElement("div");return t.appendChild(document.createElement("div")),e.appendChild(t),!(goog.DEBUG&&!e.firstChild||(t=e.firstChild.firstChild,e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),t.parentElement))})),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(e,t){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;e.lastChild;)e.removeChild(e.lastChild);e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setInnerHtml=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var o=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[o])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(e,t)},goog.dom.safe.setOuterHtml=function(e,t){e.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setFormElementAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLFormElement(e).action=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setButtonFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLButtonElement(e).formAction=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setInputFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLInputElement(e).formAction=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setStyle=function(e,t){e.style.cssText=goog.html.SafeStyle.unwrap(t)},goog.dom.safe.documentWrite=function(e,t){e.write(goog.html.SafeHtml.unwrapTrustedHTML(t))},goog.dom.safe.setAnchorHref=function(e,t){goog.dom.asserts.assertIsHTMLAnchorElement(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setImageSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLImageElement(e),!(t instanceof goog.html.SafeUrl)){var o=/^data:image\\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,o)}e.src=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setAudioSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLAudioElement(e),!(t instanceof goog.html.SafeUrl)){var o=/^data:audio\\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,o)}e.src=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setVideoSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLVideoElement(e),!(t instanceof goog.html.SafeUrl)){var o=/^data:video\\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,o)}e.src=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.setEmbedSrc=function(e,t){goog.dom.asserts.assertIsHTMLEmbedElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setFrameSrc=function(e,t){goog.dom.asserts.assertIsHTMLFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(t)},goog.dom.safe.setIframeSrc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedURL(t)},goog.dom.safe.setIframeSrcdoc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setLinkHrefAndRel=function(e,t,o){goog.dom.asserts.assertIsHTMLLinkElement(e),e.rel=o,goog.string.internal.caseInsensitiveContains(o,"stylesheet")?(goog.asserts.assert(t instanceof goog.html.TrustedResourceUrl,\'URL must be TrustedResourceUrl because "rel" contains "stylesheet"\'),e.href=goog.html.TrustedResourceUrl.unwrapTrustedURL(t)):e.href=t instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrapTrustedURL(t):t instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrapTrustedURL(t):goog.html.SafeUrl.unwrapTrustedURL(goog.html.SafeUrl.sanitizeAssertUnchanged(t))},goog.dom.safe.setObjectData=function(e,t){goog.dom.asserts.assertIsHTMLObjectElement(e),e.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setScriptSrc=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setScriptContent=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.text=goog.html.SafeScript.unwrapTrustedScript(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setLocationHref=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrapTrustedURL(t)},goog.dom.safe.assignLocation=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.assign(goog.html.SafeUrl.unwrapTrustedURL(t))},goog.dom.safe.replaceLocation=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.replace(goog.html.SafeUrl.unwrapTrustedURL(t))},goog.dom.safe.openInWindow=function(e,t,o,r,n){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),(t||goog.global).open(goog.html.SafeUrl.unwrapTrustedURL(e),o?goog.string.Const.unwrap(o):"",r,n)},goog.dom.safe.parseFromStringHtml=function(e,t){return goog.dom.safe.parseFromString(e,t,"text/html")},goog.dom.safe.parseFromString=function(e,t,o){return e.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(t),o)},goog.dom.safe.createImageFromBlob=function(e){if(!/^image\\/.*/g.test(e.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var t=goog.global.URL.createObjectURL(e);return(e=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(t)},goog.dom.safe.setImageSrc(e,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),t)),e},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(e,t){for(var o=e.split("%s"),r="",n=Array.prototype.slice.call(arguments,1);n.length&&1<o.length;)r+=o.shift()+n.shift();return r+o.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\\s\\xa0]+/g," ").replace(/^\\s+|\\s+$/g,"")},goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace,goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\\t\\n\\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&" "<=e&&"~">=e||"€"<=e&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\\r\\n|\\r|\\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\\r\\n|\\r|\\n)/g,"\\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\\xa0|\\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\\xa0|[ \\t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\\t\\r\\n ]+/g," ").replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(e){return e.replace(/^[\\s\\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\\s\\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(e,t,o){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var r=e.toLowerCase().match(o),n=t.toLowerCase().match(o),s=Math.min(r.length,n.length),i=0;i<s;i++){o=r[i];var a=n[i];if(o!=a)return e=parseInt(o,10),!isNaN(e)&&(t=parseInt(a,10),!isNaN(t)&&e-t)?e-t:o<a?-1:1}return r.length!=n.length?r.length-n.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\\d+|\\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\\d+|\\.\\d+|\\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(e,t){return e=goog.string.internal.htmlEscape(e,t),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"e")),e},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var o={"&":"&","<":"<",">":">",""":\'"\'},r=t?t.createElement("div"):goog.global.document.createElement("div");return e.replace(goog.string.HTML_ENTITY_PATTERN_,(function(e,t){var n=o[e];return n||("#"==t.charAt(0)&&(t=Number("0"+t.substr(1)),isNaN(t)||(n=String.fromCharCode(t))),n||(goog.dom.safe.setInnerHtml(r,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),e+" ")),n=r.firstChild.nodeValue.slice(0,-1)),o[e]=n)}))},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,(function(e,t){switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return\'"\';default:return"#"!=t.charAt(0)||(t=Number("0"+t.substr(1)),isNaN(t))?e:String.fromCharCode(t)}}))},goog.string.HTML_ENTITY_PATTERN_=/&([^;\\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/ /g,"  "),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var o=t.length,r=0;r<o;r++){var n=1==o?t:t.charAt(r);if(e.charAt(0)==n&&e.charAt(e.length-1)==n)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,o){return o&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),o&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,o,r){if(o&&(e=goog.string.unescapeEntities(e)),r&&e.length>t){r>t&&(r=t);var n=e.length-r;e=e.substring(0,t-r)+"..."+e.substring(n)}else e.length>t&&(r=Math.floor(t/2),n=e.length-r,e=e.substring(0,r+t%2)+"..."+e.substring(n));return o&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\\0":"\\\\0","\\b":"\\\\b","\\f":"\\\\f","\\n":"\\\\n","\\r":"\\\\r","\\t":"\\\\t","\\v":"\\\\x0B",\'"\':\'\\\\"\',"\\\\":"\\\\\\\\","<":"\\\\u003C"},goog.string.jsEscapeCache_={"\'":"\\\\\'"},goog.string.quote=function(e){e=String(e);for(var t=[\'"\'],o=0;o<e.length;o++){var r=e.charAt(o),n=r.charCodeAt(0);t[o+1]=goog.string.specialEscapeChars_[r]||(31<n&&127>n?r:goog.string.escapeChar(r))}return t.push(\'"\'),t.join("")},goog.string.escapeString=function(e){for(var t=[],o=0;o<e.length;o++)t[o]=goog.string.escapeChar(e.charAt(o));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t=e.charCodeAt(0);if(31<t&&127>t)var o=e;else 256>t?(o="\\\\x",(16>t||256<t)&&(o+="0")):(o="\\\\u",4096>t&&(o+="0")),o+=t.toString(16).toUpperCase();return goog.string.jsEscapeCache_[e]=o},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,o){var r=e;return 0<=t&&t<e.length&&0<o&&(r=e.substr(0,t)+e.substr(t+o,e.length-t-o)),r},goog.string.remove=function(e,t){return e.replace(t,"")},goog.string.removeAll=function(e,t){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,"")},goog.string.replaceAll=function(e,t,o){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,o.replace(/\\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,"\\\\$1").replace(/\\x08/g,"\\\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,o){return-1==(o=(e=goog.isDef(o)?e.toFixed(o):String(e)).indexOf("."))&&(o=e.length),goog.string.repeat("0",Math.max(0,t-o))+e},goog.string.makeSafe=function(e){return null==e?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(e){for(var t=0,o=0;o<e.length;++o)t=31*t+e.charCodeAt(o)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return 0==t&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\\-([a-z])/g,(function(e,t){return t.toUpperCase()}))},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){return t=goog.isString(t)?goog.string.regExpEscape(t):"\\\\s",e.replace(new RegExp("(^"+(t?"|["+t+"]+":"")+")([a-z])","g"),(function(e,t,o){return t+o.toUpperCase()}))},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),goog.isString(e)?/^\\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,o){e=e.split(t);for(var r=[];0<o&&e.length;)r.push(e.shift()),o--;return e.length&&r.push(e.join(t)),r},goog.string.lastComponent=function(e,t){if(!t)return e;"string"==typeof t&&(t=[t]);for(var o=-1,r=0;r<t.length;r++)if(""!=t[r]){var n=e.lastIndexOf(t[r]);n>o&&(o=n)}return-1==o?e:e.slice(o+1)},goog.string.editDistance=function(e,t){var o=[],r=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var n=0;n<t.length+1;n++)o[n]=n;for(n=0;n<e.length;n++){r[0]=n+1;for(var s=0;s<t.length;s++)r[s+1]=Math.min(r[s]+1,o[s+1]+1,o[s]+Number(e[n]!=t[s]));for(s=0;s<o.length;s++)o[s]=r[s]}return r[t.length]},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent();if(e){e=goog.labs.userAgent.util.extractVersionTuples(e);var t,o=goog.labs.userAgent.engine.getEngineTuple_(e);if(o)return"Gecko"==o[0]?goog.labs.userAgent.engine.getVersionForKey_(e,"Firefox"):o[1];if((e=e[0])&&(t=e[2])&&(t=/Trident\\/([^\\s;]+)/.exec(t)))return t[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var t=0;t<e.length;t++){var o=e[t];if("Edge"==o[0])return o}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,t){return(e=goog.array.find(e,(function(e){return t==e[0]})))&&e[1]||""},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent("CrKey")},goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")},goog.labs.userAgent.platform.isGo2Phone=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("GAFP")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),t="";return goog.labs.userAgent.platform.isWindows()?t=(e=(t=/Windows (?:NT|Phone) ([0-9.]+)/).exec(e))?e[1]:"0.0":goog.labs.userAgent.platform.isIos()?t=(e=(t=/(?:iPhone|iPod|iPad|CPU)\\s+OS\\s+(\\S+)/).exec(e))&&e[1].replace(/_/g,"."):goog.labs.userAgent.platform.isMacintosh()?t=(e=(t=/Mac OS X ([0-9_.]+)/).exec(e))?e[1].replace(/_/g,"."):"10":goog.labs.userAgent.platform.isKaiOS()?t=(e=(t=/(?:KaiOS)\\/(\\S+)/i).exec(e))&&e[1]:goog.labs.userAgent.platform.isAndroid()?t=(e=(t=/Android\\s+([^\\);]+)(\\)|;)/).exec(e))&&e[1]:goog.labs.userAgent.platform.isChromeOS()&&(t=(e=(t=/(?:CrOS\\s+(?:i686|x86_64)\\s+([0-9.]+))/).exec(e))&&e[1]),t||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.reflect={},goog.reflect.object=function(e,t){return t},goog.reflect.objectProperty=function(e,t){return e},goog.reflect.sinkValue=function(e){return goog.reflect.sinkValue[" "](e),e},goog.reflect.sinkValue[" "]=goog.nullFunction,goog.reflect.canAccessProperty=function(e,t){try{return goog.reflect.sinkValue(e[t]),!0}catch(e){}return!1},goog.reflect.cache=function(e,t,o,r){return r=r?r(t):t,Object.prototype.hasOwnProperty.call(e,r)?e[r]:e[r]=o(t)},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null},goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigatorTyped();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.ASSUME_IPOD=!1,goog.userAgent.ASSUME_KAIOS=!1,goog.userAgent.ASSUME_GO2PHONE=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh(),goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigatorTyped();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod(),goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos(),goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS(),goog.userAgent.GO2PHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_GO2PHONE:goog.labs.userAgent.platform.isGo2Phone(),goog.userAgent.determineVersion_=function(){var e="",t=goog.userAgent.getVersionRegexResult_();return t&&(e=t?t[1]:""),goog.userAgent.IE&&null!=(t=goog.userAgent.getDocumentMode_())&&t>parseFloat(e)?String(t):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\\);]+)(\\)|;)/.exec(e):goog.userAgent.EDGE?/Edge\\/([\\d\\.]+)/.exec(e):goog.userAgent.IE?/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(e):goog.userAgent.WEBKIT?/WebKit\\/(\\S+)/.exec(e):goog.userAgent.OPERA?/(?:Version)[ \\/]?(\\S+)/.exec(e):void 0},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,t){return goog.string.compareVersions(e,t)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,e,(function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,e)}))},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(e){return goog.string.contains(goog.crypt.base64.paddingChars_,e)},goog.crypt.base64.byteToCharMaps_={};goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||"function"==typeof goog.global.btoa,goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&"function"==typeof goog.global.atob,goog.crypt.base64.encodeByteArray=function(e,t){goog.asserts.assert(goog.isArrayLike(e),"encodeByteArray takes an array as a parameter"),void 0===t&&(t=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),t=goog.crypt.base64.byteToCharMaps_[t];for(var o=[],r=0;r<e.length;r+=3){var n=e[r],s=r+1<e.length,i=s?e[r+1]:0,a=r+2<e.length,g=a?e[r+2]:0,l=n>>2;n=(3&n)<<4|i>>4,i=(15&i)<<2|g>>6,g&=63,a||(g=64,s||(i=64)),o.push(t[l],t[n],t[i]||"",t[g]||"")}return o.join("")},goog.crypt.base64.encodeString=function(e,t){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!t?goog.global.btoa(e):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(e),t)},goog.crypt.base64.decodeString=function(e,t){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!t)return goog.global.atob(e);var o="";return goog.crypt.base64.decodeStringInternal_(e,(function(e){o+=String.fromCharCode(e)})),o},goog.crypt.base64.decodeStringToByteArray=function(e,t){var o=[];return goog.crypt.base64.decodeStringInternal_(e,(function(e){o.push(e)})),o},goog.crypt.base64.decodeStringToUint8Array=function(e){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var t=e.length,o=3*t/4;o%3?o=Math.floor(o):goog.crypt.base64.isPadding_(e[t-1])&&(o=goog.crypt.base64.isPadding_(e[t-2])?o-2:o-1);var r=new Uint8Array(o),n=0;return goog.crypt.base64.decodeStringInternal_(e,(function(e){r[n++]=e})),r.subarray(0,n)},goog.crypt.base64.decodeStringInternal_=function(e,t){function o(t){for(;r<e.length;){var o=e.charAt(r++),n=goog.crypt.base64.charToByteMap_[o];if(null!=n)return n;if(!goog.string.isEmptyOrWhitespace(o))throw Error("Unknown base64 encoding at char: "+o)}return t}goog.crypt.base64.init_();for(var r=0;;){var n=o(-1),s=o(0),i=o(64),a=o(64);if(64===a&&-1===n)break;t(n<<2|s>>4),64!=i&&(t(s<<4&240|i>>2),64!=a&&t(i<<6&192|a))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var e=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),t=["+/=","+/","-_=","-_.","-_"],o=0;5>o;o++){var r=e.concat(t[o].split(""));goog.crypt.base64.byteToCharMaps_[o]=r;for(var n=0;n<r.length;n++){var s=r[n],i=goog.crypt.base64.charToByteMap_[s];void 0===i?goog.crypt.base64.charToByteMap_[s]=n:goog.asserts.assert(i===n)}}}},jspb.utils={},jspb.utils.split64Low=0,jspb.utils.split64High=0,jspb.utils.splitUint64=function(e){var t=e>>>0;e=Math.floor((e-t)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=t,jspb.utils.split64High=e},jspb.utils.splitInt64=function(e){var t=0>e,o=(e=Math.abs(e))>>>0;e=Math.floor((e-o)/jspb.BinaryConstants.TWO_TO_32),e>>>=0,t&&(e=~e>>>0,4294967295<(o=1+(~o>>>0))&&(o=0,4294967295<++e&&(e=0))),jspb.utils.split64Low=o,jspb.utils.split64High=e},jspb.utils.splitZigzag64=function(e){var t=0>e;e=2*Math.abs(e),jspb.utils.splitUint64(e),e=jspb.utils.split64Low;var o=jspb.utils.split64High;t&&(0==e?0==o?o=e=4294967295:(o--,e=4294967295):e--),jspb.utils.split64Low=e,jspb.utils.split64High=o},jspb.utils.splitFloat32=function(e){var t=0>e?1:0;if(0===(e=t?-e:e))0<1/e?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(e))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(e>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|2139095040)>>>0;else if(e<jspb.BinaryConstants.FLOAT32_MIN)e=Math.round(e/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|e)>>>0;else{var o=Math.floor(Math.log(e)/Math.LN2);e*=Math.pow(2,-o),16777216<=(e=Math.round(e*jspb.BinaryConstants.TWO_TO_23))&&++o,jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|o+127<<23|8388607&e)>>>0}},jspb.utils.splitFloat64=function(e){var t=0>e?1:0;if(0===(e=t?-e:e))jspb.utils.split64High=0<1/e?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(e))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(e>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(t<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(e<jspb.BinaryConstants.FLOAT64_MIN){var o=e/Math.pow(2,-1074);e=o/jspb.BinaryConstants.TWO_TO_32,jspb.utils.split64High=(t<<31|e)>>>0,jspb.utils.split64Low=o>>>0}else{var r=0;if(2<=(o=e))for(;2<=o&&1023>r;)r++,o/=2;else for(;1>o&&-1022<r;)o*=2,r--;e=(o=e*Math.pow(2,-r))*jspb.BinaryConstants.TWO_TO_20&1048575,o=o*jspb.BinaryConstants.TWO_TO_52>>>0,jspb.utils.split64High=(t<<31|r+1023<<20|e)>>>0,jspb.utils.split64Low=o}},jspb.utils.splitHash64=function(e){var t=e.charCodeAt(0),o=e.charCodeAt(1),r=e.charCodeAt(2),n=e.charCodeAt(3),s=e.charCodeAt(4),i=e.charCodeAt(5),a=e.charCodeAt(6);e=e.charCodeAt(7),jspb.utils.split64Low=t+(o<<8)+(r<<16)+(n<<24)>>>0,jspb.utils.split64High=s+(i<<8)+(a<<16)+(e<<24)>>>0},jspb.utils.joinUint64=function(e,t){return t*jspb.BinaryConstants.TWO_TO_32+(e>>>0)},jspb.utils.joinInt64=function(e,t){var o=2147483648&t;return o&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),e=jspb.utils.joinUint64(e,t),o?-e:e},jspb.utils.toZigzag64=function(e,t,o){var r=t>>31;return o(e<<1^r,(t<<1|e>>>31)^r)},jspb.utils.joinZigzag64=function(e,t){return jspb.utils.fromZigzag64(e,t,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(e,t,o){var r=-(1&e);return o((e>>>1|t<<31)^r,t>>>1^r)},jspb.utils.joinFloat32=function(e,t){t=2*(e>>31)+1;var o=e>>>23&255;return e&=8388607,255==o?e?NaN:1/0*t:0==o?t*Math.pow(2,-149)*e:t*Math.pow(2,o-150)*(e+Math.pow(2,23))},jspb.utils.joinFloat64=function(e,t){var o=2*(t>>31)+1,r=t>>>20&2047;return e=jspb.BinaryConstants.TWO_TO_32*(1048575&t)+e,2047==r?e?NaN:1/0*o:0==r?o*Math.pow(2,-1074)*e:o*Math.pow(2,r-1075)*(e+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(e,t){function o(e,t){return e=e?String(e):"",t?"0000000".slice(e.length)+e:e}if(2097151>=t)return""+jspb.utils.joinUint64(e,t);var r=(e>>>24|t<<8)>>>0&16777215;return e=(16777215&e)+6777216*r+6710656*(t=t>>16&65535),r+=8147497*t,t*=2,1e7<=e&&(r+=Math.floor(e/1e7),e%=1e7),1e7<=r&&(t+=Math.floor(r/1e7),r%=1e7),o(t,0)+o(r,t)+o(e,1)},jspb.utils.joinSignedDecimalString=function(e,t){var o=2147483648&t;return o&&(t=~t+(0==(e=1+~e>>>0)?1:0)>>>0),e=jspb.utils.joinUnsignedDecimalString(e,t),o?"-"+e:e},jspb.utils.hash64ToDecimalString=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var o=jspb.utils.split64High;return t?jspb.utils.joinSignedDecimalString(e,o):jspb.utils.joinUnsignedDecimalString(e,o)},jspb.utils.hash64ArrayToDecimalStrings=function(e,t){for(var o=Array(e.length),r=0;r<e.length;r++)o[r]=jspb.utils.hash64ToDecimalString(e[r],t);return o},jspb.utils.decimalStringToHash64=function(e){function t(e,t){for(var o=0;8>o&&(1!==e||0<t);o++)t=e*r[o]+t,r[o]=255&t,t>>>=8}goog.asserts.assert(0<e.length);var o=!1;"-"===e[0]&&(o=!0,e=e.slice(1));for(var r=[0,0,0,0,0,0,0,0],n=0;n<e.length;n++)t(10,e.charCodeAt(n)-jspb.utils.ZERO_CHAR_CODE_);return o&&(function(){for(var e=0;8>e;e++)r[e]=255&~r[e]}(),t(1,1)),goog.crypt.byteArrayToString(r)},jspb.utils.splitDecimalString=function(e){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e))},jspb.utils.toHexDigit_=function(e){return String.fromCharCode(10>e?jspb.utils.ZERO_CHAR_CODE_+e:jspb.utils.A_CHAR_CODE_-10+e)},jspb.utils.fromHexCharCode_=function(e){return e>=jspb.utils.A_CHAR_CODE_?e-jspb.utils.A_CHAR_CODE_+10:e-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(e){var t=Array(18);t[0]="0",t[1]="x";for(var o=0;8>o;o++){var r=e.charCodeAt(7-o);t[2*o+2]=jspb.utils.toHexDigit_(r>>4),t[2*o+3]=jspb.utils.toHexDigit_(15&r)}return t.join("")},jspb.utils.hexStringToHash64=function(e){e=e.toLowerCase(),goog.asserts.assert(18==e.length),goog.asserts.assert("0"==e[0]),goog.asserts.assert("x"==e[1]);for(var t="",o=0;8>o;o++){var r=jspb.utils.fromHexCharCode_(e.charCodeAt(2*o+2)),n=jspb.utils.fromHexCharCode_(e.charCodeAt(2*o+3));t=String.fromCharCode(16*r+n)+t}return t},jspb.utils.hash64ToNumber=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var o=jspb.utils.split64High;return t?jspb.utils.joinInt64(e,o):jspb.utils.joinUint64(e,o)},jspb.utils.numberToHash64=function(e){return jspb.utils.splitInt64(e),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(e,t,o){for(var r=0,n=t;n<o;n++)r+=e[n]>>7;return o-t-r},jspb.utils.countVarintFields=function(e,t,o,r){var n=0;if(128>(r=8*r+jspb.BinaryConstants.WireType.VARINT))for(;t<o&&e[t++]==r;)for(n++;;){var s=e[t++];if(0==(128&s))break}else for(;t<o;){for(s=r;128<s;){if(e[t]!=(127&s|128))return n;t++,s>>=7}if(e[t++]!=s)break;for(n++;0!=(128&(s=e[t++])););}return n},jspb.utils.countFixedFields_=function(e,t,o,r,n){var s=0;if(128>r)for(;t<o&&e[t++]==r;)s++,t+=n;else for(;t<o;){for(var i=r;128<i;){if(e[t++]!=(127&i|128))return s;i>>=7}if(e[t++]!=i)break;s++,t+=n}return s},jspb.utils.countFixed32Fields=function(e,t,o,r){return jspb.utils.countFixedFields_(e,t,o,8*r+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(e,t,o,r){return jspb.utils.countFixedFields_(e,t,o,8*r+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(e,t,o,r){var n=0;for(r=8*r+jspb.BinaryConstants.WireType.DELIMITED;t<o;){for(var s=r;128<s;){if(e[t++]!=(127&s|128))return n;s>>=7}if(e[t++]!=s)break;n++;for(var i=0,a=1;i+=(127&(s=e[t++]))*a,a*=128,0!=(128&s););t+=i}return n},jspb.utils.debugBytesToTextFormat=function(e){var t=\'"\';if(e){e=jspb.utils.byteSourceToUint8Array(e);for(var o=0;o<e.length;o++)t+="\\\\x",16>e[o]&&(t+="0"),t+=e[o].toString(16)}return t+\'"\'},jspb.utils.debugScalarToTextFormat=function(e){return"string"==typeof e?goog.string.quote(e):e.toString()},jspb.utils.stringToByteArray=function(e){for(var t=new Uint8Array(e.length),o=0;o<e.length;o++){var r=e.charCodeAt(o);if(255<r)throw Error("Conversion error: string contains codepoint outside of byte range");t[o]=r}return t},jspb.utils.byteSourceToUint8Array=function(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||"undefined"!=typeof Buffer&&e.constructor===Buffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?goog.crypt.base64.decodeStringToUint8Array(e):(goog.asserts.fail("Type not convertible to Uint8Array."),new Uint8Array(0))},jspb.BinaryDecoder=function(e,t,o){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1,e&&this.setBlock(e,t,o)},jspb.BinaryDecoder.instanceCache_=[],jspb.BinaryDecoder.alloc=function(e,t,o){if(jspb.BinaryDecoder.instanceCache_.length){var r=jspb.BinaryDecoder.instanceCache_.pop();return e&&r.setBlock(e,t,o),r}return new jspb.BinaryDecoder(e,t,o)},jspb.BinaryDecoder.prototype.free=function(){this.clear(),100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(e,t,o){this.bytes_=jspb.utils.byteSourceToUint8Array(e),this.start_=void 0!==t?t:0,this.end_=void 0!==o?this.start_+o:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(e){this.end_=e},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(e){this.cursor_=e},jspb.BinaryDecoder.prototype.advance=function(e){this.cursor_+=e,goog.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(e){for(var t=128,o=0,r=0,n=0;4>n&&128<=t;n++)o|=(127&(t=this.bytes_[this.cursor_++]))<<7*n;if(128<=t&&(o|=(127&(t=this.bytes_[this.cursor_++]))<<28,r|=(127&t)>>4),128<=t)for(n=0;5>n&&128<=t;n++)r|=(127&(t=this.bytes_[this.cursor_++]))<<7*n+3;if(128>t)return e(o>>>0,r>>>0);goog.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(e){return this.readSplitVarint64((function(t,o){return jspb.utils.fromZigzag64(t,o,e)}))},jspb.BinaryDecoder.prototype.readSplitFixed64=function(e){var t=this.bytes_,o=this.cursor_;this.cursor_+=8;for(var r=0,n=0,s=o+7;s>=o;s--)r=r<<8|t[s],n=n<<8|t[s+4];return e(r,n)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(e){for(;128<e;)this.cursor_--,e>>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var e=this.bytes_,t=e[this.cursor_+0],o=127&t;return 128>t?(this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),o):(o|=(127&(t=e[this.cursor_+1]))<<7,128>t?(this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),o):(o|=(127&(t=e[this.cursor_+2]))<<14,128>t?(this.cursor_+=3,goog.asserts.assert(this.cursor_<=this.end_),o):(o|=(127&(t=e[this.cursor_+3]))<<21,128>t?(this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),o):(o|=(15&(t=e[this.cursor_+4]))<<28,128>t?(this.cursor_+=5,goog.asserts.assert(this.cursor_<=this.end_),o>>>0):(this.cursor_+=5,128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&goog.asserts.assert(!1),goog.asserts.assert(this.cursor_<=this.end_),o)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=jspb.BinaryDecoder.prototype.readUnsignedVarint32,jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var e=this.readUnsignedVarint32();return e>>>1^-(1&e)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),e},jspb.BinaryDecoder.prototype.readUint16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],o=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8|o<<16|r<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUint64(e,t)},jspb.BinaryDecoder.prototype.readUint64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUnsignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readInt8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,goog.asserts.assert(this.cursor_<=this.end_),e<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,goog.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],o=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,goog.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8|o<<16|r<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinInt64(e,t)},jspb.BinaryDecoder.prototype.readInt64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinSignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readFloat=function(){var e=this.readUint32();return jspb.utils.joinFloat32(e,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinFloat64(e,t)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(e){var t=this.bytes_,o=this.cursor_;e=o+e;for(var r=[],n="";o<e;){var s=t[o++];if(128>s)r.push(s);else{if(192>s)continue;if(224>s){var i=t[o++];r.push((31&s)<<6|63&i)}else if(240>s){i=t[o++];var a=t[o++];r.push((15&s)<<12|(63&i)<<6|63&a)}else 248>s&&(s=(7&s)<<18|(63&(i=t[o++]))<<12|(63&(a=t[o++]))<<6|63&t[o++],s-=65536,r.push(55296+(s>>10&1023),56320+(1023&s)))}8192<=r.length&&(n+=String.fromCharCode.apply(null,r),r.length=0)}return n+=goog.crypt.byteArrayToString(r),this.cursor_=o,n},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var e=this.readUnsignedVarint32();return this.readString(e)},jspb.BinaryDecoder.prototype.readBytes=function(e){if(0>e||this.cursor_+e>this.bytes_.length)return this.error_=!0,goog.asserts.fail("Invalid byte length!"),new Uint8Array(0);var t=this.bytes_.subarray(this.cursor_,this.cursor_+e);return this.cursor_+=e,goog.asserts.assert(this.cursor_<=this.end_),t},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var e=this.bytes_,t=this.cursor_,o=e[t+0],r=e[t+1],n=e[t+2],s=e[t+3],i=e[t+4],a=e[t+5],g=e[t+6];return e=e[t+7],this.cursor_+=8,String.fromCharCode(o,r,n,s,i,a,g,e)},jspb.BinaryReader=function(e,t,o){this.decoder_=jspb.BinaryDecoder.alloc(e,t,o),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(e,t,o){if(jspb.BinaryReader.instanceCache_.length){var r=jspb.BinaryReader.instanceCache_.pop();return e&&r.decoder_.setBlock(e,t,o),r}return new jspb.BinaryReader(e,t,o)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(e,t,o){this.decoder_.setBlock(e,t,o),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(e){this.decoder_.advance(e)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return goog.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var e=this.decoder_.readUnsignedVarint32(),t=e>>>3;return(e&=7)!=jspb.BinaryConstants.WireType.VARINT&&e!=jspb.BinaryConstants.WireType.FIXED32&&e!=jspb.BinaryConstants.WireType.FIXED64&&e!=jspb.BinaryConstants.WireType.DELIMITED&&e!=jspb.BinaryConstants.WireType.START_GROUP&&e!=jspb.BinaryConstants.WireType.END_GROUP?(goog.asserts.fail("Invalid wire type: %s (at position %s)",e,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=t,this.nextWireType_=e,!0)},jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var e=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==e;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(goog.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)goog.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var e=this.decoder_.readUnsignedVarint32();this.decoder_.advance(e)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(goog.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(goog.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var e=this.nextField_;;){if(!this.nextField()){goog.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=e&&(goog.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:goog.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(e,t){null===this.readCallbacks_&&(this.readCallbacks_={}),goog.asserts.assert(!this.readCallbacks_[e]),this.readCallbacks_[e]=t},jspb.BinaryReader.prototype.runReadCallback=function(e){return goog.asserts.assert(null!==this.readCallbacks_),e=this.readCallbacks_[e],goog.asserts.assert(e),e(this)},jspb.BinaryReader.prototype.readAny=function(e){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(e);var t=jspb.BinaryConstants.FieldType;switch(e){case t.DOUBLE:return this.readDouble();case t.FLOAT:return this.readFloat();case t.INT64:return this.readInt64();case t.UINT64:return this.readUint64();case t.INT32:return this.readInt32();case t.FIXED64:return this.readFixed64();case t.FIXED32:return this.readFixed32();case t.BOOL:return this.readBool();case t.STRING:return this.readString();case t.GROUP:goog.asserts.fail("Group field type not supported in readAny()");case t.MESSAGE:goog.asserts.fail("Message field type not supported in readAny()");case t.BYTES:return this.readBytes();case t.UINT32:return this.readUint32();case t.ENUM:return this.readEnum();case t.SFIXED32:return this.readSfixed32();case t.SFIXED64:return this.readSfixed64();case t.SINT32:return this.readSint32();case t.SINT64:return this.readSint64();case t.FHASH64:return this.readFixedHash64();case t.VHASH64:return this.readVarintHash64();default:goog.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(e,t){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var o=this.decoder_.getEnd(),r=this.decoder_.readUnsignedVarint32();r=this.decoder_.getCursor()+r,this.decoder_.setEnd(r),t(e,this),this.decoder_.setCursor(r),this.decoder_.setEnd(o)},jspb.BinaryReader.prototype.readGroup=function(e,t,o){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),goog.asserts.assert(this.nextField_==e),o(t,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(goog.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},jspb.BinaryReader.prototype.getFieldDecoder=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32(),t=this.decoder_.getCursor(),o=t+e;return e=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),t,e),this.decoder_.setCursor(o),e},jspb.BinaryReader.prototype.readInt32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},jspb.BinaryReader.prototype.readInt32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readInt64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readUint32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},jspb.BinaryReader.prototype.readUint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},jspb.BinaryReader.prototype.readSint64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},jspb.BinaryReader.prototype.readSint64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},jspb.BinaryReader.prototype.readFixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},jspb.BinaryReader.prototype.readFixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},jspb.BinaryReader.prototype.readSfixed32String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},jspb.BinaryReader.prototype.readSfixed64String=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},jspb.BinaryReader.prototype.readDouble=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},jspb.BinaryReader.prototype.readBool=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},jspb.BinaryReader.prototype.readEnum=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},jspb.BinaryReader.prototype.readString=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(e)},jspb.BinaryReader.prototype.readBytes=function(){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(e)},jspb.BinaryReader.prototype.readVarintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(e){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(e)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(e){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64((function(t,o){return jspb.utils.fromZigzag64(t,o,e)}))},jspb.BinaryReader.prototype.readFixedHash64=function(){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(e){return goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(e)},jspb.BinaryReader.prototype.readPackedField_=function(e){goog.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var t=this.decoder_.readUnsignedVarint32();t=this.decoder_.getCursor()+t;for(var o=[];this.decoder_.getCursor()<t;)o.push(e.call(this.decoder_));return o},jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)},jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)},jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)},jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)},jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)},jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)},jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)},jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)},jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)},jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)},jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)},jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)},jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)},jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)},jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)},jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)},jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)},jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)},jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)},jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)},jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)},jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)},jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)},jspb.BinaryEncoder=function(){this.buffer_=[]},jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length},jspb.BinaryEncoder.prototype.end=function(){var e=this.buffer_;return this.buffer_=[],e},jspb.BinaryEncoder.prototype.writeSplitVarint64=function(e,t){for(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(t==Math.floor(t)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32);0<t||127<e;)this.buffer_.push(127&e|128),e=(e>>>7|t<<25)>>>0,t>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(e,t){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(t==Math.floor(t)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUint32(e),this.writeUint32(t)},jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(e){for(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32);127<e;)this.buffer_.push(127&e|128),e>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(e){if(goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),0<=e)this.writeUnsignedVarint32(e);else{for(var t=0;9>t;t++)this.buffer_.push(127&e|128),e>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeSignedVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeUnsignedVarint32((e<<1^e>>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitZigzag64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(e){this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(e))},jspb.BinaryEncoder.prototype.writeZigzagVarintHash64=function(e){var t=this;jspb.utils.splitHash64(e),jspb.utils.toZigzag64(jspb.utils.split64Low,jspb.utils.split64High,(function(e,o){t.writeSplitVarint64(e>>>0,o>>>0)}))},jspb.BinaryEncoder.prototype.writeUint8=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&256>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&65536>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitUint64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt8=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(-128<=e&&128>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(-32768<=e&&32768>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt64String=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(+e>=-jspb.BinaryConstants.TWO_TO_63&&+e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e)),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFloat=function(e){goog.asserts.assert(1/0===e||-1/0===e||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT32_MAX&&e<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(e),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(e){goog.asserts.assert(1/0===e||-1/0===e||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT64_MAX&&e<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(e){goog.asserts.assert("boolean"==typeof e||"number"==typeof e),this.buffer_.push(e?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(e){goog.asserts.assert(e==Math.floor(e)),goog.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32(e)},jspb.BinaryEncoder.prototype.writeBytes=function(e){this.buffer_.push.apply(this.buffer_,e)},jspb.BinaryEncoder.prototype.writeVarintHash64=function(e){jspb.utils.splitHash64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFixedHash64=function(e){jspb.utils.splitHash64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeString=function(e){for(var t=this.buffer_.length,o=0;o<e.length;o++){var r=e.charCodeAt(o);if(128>r)this.buffer_.push(r);else if(2048>r)this.buffer_.push(r>>6|192),this.buffer_.push(63&r|128);else if(65536>r)if(55296<=r&&56319>=r&&o+1<e.length){var n=e.charCodeAt(o+1);56320<=n&&57343>=n&&(r=1024*(r-55296)+n-56320+65536,this.buffer_.push(r>>18|240),this.buffer_.push(r>>12&63|128),this.buffer_.push(r>>6&63|128),this.buffer_.push(63&r|128),o++)}else this.buffer_.push(r>>12|224),this.buffer_.push(r>>6&63|128),this.buffer_.push(63&r|128)}return this.buffer_.length-t},jspb.arith={},jspb.arith.UInt64=function(e,t){this.lo=e,this.hi=t},jspb.arith.UInt64.prototype.cmp=function(e){return this.hi<e.hi||this.hi==e.hi&&this.lo<e.lo?-1:this.hi==e.hi&&this.lo==e.lo?0:1},jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi},jspb.arith.UInt64.prototype.add=function(e){return new jspb.arith.UInt64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(e){return new jspb.arith.UInt64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(e,t){var o=65535&e,r=65535&t,n=t>>>16;for(t=o*r+65536*(o*n&65535)+65536*((e>>>=16)*r&65535),o=e*n+(o*n>>>16)+(e*r>>>16);4294967296<=t;)t-=4294967296,o+=1;return new jspb.arith.UInt64(t>>>0,o>>>0)},jspb.arith.UInt64.prototype.mul=function(e){var t=jspb.arith.UInt64.mul32x32(this.lo,e);return(e=jspb.arith.UInt64.mul32x32(this.hi,e)).hi=e.lo,e.lo=0,t.add(e)},jspb.arith.UInt64.prototype.div=function(e){if(0==e)return[];var t=new jspb.arith.UInt64(0,0),o=new jspb.arith.UInt64(this.lo,this.hi);e=new jspb.arith.UInt64(e,0);for(var r=new jspb.arith.UInt64(1,0);!e.msb();)e=e.leftShift(),r=r.leftShift();for(;!r.zero();)0>=e.cmp(o)&&(t=t.add(r),o=o.sub(e)),e=e.rightShift(),r=r.rightShift();return[t,o]},jspb.arith.UInt64.prototype.toString=function(){for(var e="",t=this;!t.zero();){var o=(t=t.div(10))[0];e=t[1].lo+e,t=o}return""==e&&(e="0"),e},jspb.arith.UInt64.fromString=function(e){for(var t=new jspb.arith.UInt64(0,0),o=new jspb.arith.UInt64(0,0),r=0;r<e.length;r++){if("0">e[r]||"9"<e[r])return null;var n=parseInt(e[r],10);o.lo=n,t=t.mul(10).add(o)}return t},jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)},jspb.arith.Int64=function(e,t){this.lo=e,this.hi=t},jspb.arith.Int64.prototype.add=function(e){return new jspb.arith.Int64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(e){return new jspb.arith.Int64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var e=0!=(2147483648&this.hi),t=new jspb.arith.UInt64(this.lo,this.hi);return e&&(t=new jspb.arith.UInt64(0,0).sub(t)),(e?"-":"")+t.toString()},jspb.arith.Int64.fromString=function(e){var t=0<e.length&&"-"==e[0];return t&&(e=e.substring(1)),null===(e=jspb.arith.UInt64.fromString(e))?null:(t&&(e=new jspb.arith.UInt64(0,0).sub(e)),new jspb.arith.Int64(e.lo,e.hi))},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(e){var t=this.encoder_.end();this.blocks_.push(t),this.blocks_.push(e),this.totalLength_+=t.length+e.length},jspb.BinaryWriter.prototype.beginDelimited_=function(e){return this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),e=this.encoder_.end(),this.blocks_.push(e),this.totalLength_+=e.length,e.push(this.totalLength_),e},jspb.BinaryWriter.prototype.endDelimited_=function(e){var t=e.pop();for(t=this.totalLength_+this.encoder_.length()-t,goog.asserts.assert(0<=t);127<t;)e.push(127&t|128),t>>>=7,this.totalLength_++;e.push(t),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(e,t,o){this.appendUint8Array_(e.subarray(t,o))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(e,t,o){null!=e&&null!=t&&null!=o&&this.writeSerializedMessage(e,t,o)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){goog.asserts.assert(0==this.bookmarks_.length);for(var e=new Uint8Array(this.totalLength_+this.encoder_.length()),t=this.blocks_,o=t.length,r=0,n=0;n<o;n++){var s=t[n];e.set(s,r),r+=s.length}return t=this.encoder_.end(),e.set(t,r),r+=t.length,goog.asserts.assert(r==e.length),this.blocks_=[e],e},jspb.BinaryWriter.prototype.getResultBase64String=function(e){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),e)},jspb.BinaryWriter.prototype.beginSubMessage=function(e){this.bookmarks_.push(this.beginDelimited_(e))},jspb.BinaryWriter.prototype.endSubMessage=function(){goog.asserts.assert(0<=this.bookmarks_.length),this.endDelimited_(this.bookmarks_.pop())},jspb.BinaryWriter.prototype.writeFieldHeader_=function(e,t){goog.asserts.assert(1<=e&&e==Math.floor(e)),this.encoder_.writeUnsignedVarint32(8*e+t)},jspb.BinaryWriter.prototype.writeAny=function(e,t,o){var r=jspb.BinaryConstants.FieldType;switch(e){case r.DOUBLE:this.writeDouble(t,o);break;case r.FLOAT:this.writeFloat(t,o);break;case r.INT64:this.writeInt64(t,o);break;case r.UINT64:this.writeUint64(t,o);break;case r.INT32:this.writeInt32(t,o);break;case r.FIXED64:this.writeFixed64(t,o);break;case r.FIXED32:this.writeFixed32(t,o);break;case r.BOOL:this.writeBool(t,o);break;case r.STRING:this.writeString(t,o);break;case r.GROUP:goog.asserts.fail("Group field type not supported in writeAny()");break;case r.MESSAGE:goog.asserts.fail("Message field type not supported in writeAny()");break;case r.BYTES:this.writeBytes(t,o);break;case r.UINT32:this.writeUint32(t,o);break;case r.ENUM:this.writeEnum(t,o);break;case r.SFIXED32:this.writeSfixed32(t,o);break;case r.SFIXED64:this.writeSfixed64(t,o);break;case r.SINT32:this.writeSint32(t,o);break;case r.SINT64:this.writeSint64(t,o);break;case r.FHASH64:this.writeFixedHash64(t,o);break;case r.VHASH64:this.writeVarintHash64(t,o);break;default:goog.asserts.fail("Invalid field type in writeAny()")}},jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(t))},jspb.BinaryWriter.prototype.writeSignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(t))},jspb.BinaryWriter.prototype.writeSignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(t))},jspb.BinaryWriter.prototype.writeZigzagVarintHash64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarintHash64(t))},jspb.BinaryWriter.prototype.writeInt32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt32String=function(e,t){null!=t&&(t=parseInt(t,10),goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(e,t))},jspb.BinaryWriter.prototype.writeInt64String=function(e,t){null!=t&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeUint32=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint32String=function(e,t){null!=t&&(t=parseInt(t,10),goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint64=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(e,t))},jspb.BinaryWriter.prototype.writeUint64String=function(e,t){null!=t&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSint32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(e,t))},jspb.BinaryWriter.prototype.writeSint64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(e,t))},jspb.BinaryWriter.prototype.writeSintHash64=function(e,t){null!=t&&this.writeZigzagVarintHash64_(e,t)},jspb.BinaryWriter.prototype.writeSint64String=function(e,t){null!=t&&this.writeZigzagVarint64String_(e,t)},jspb.BinaryWriter.prototype.writeFixed32=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(t))},jspb.BinaryWriter.prototype.writeFixed64=function(e,t){null!=t&&(goog.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(t))},jspb.BinaryWriter.prototype.writeFixed64String=function(e,t){null!=t&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSfixed32=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(t))},jspb.BinaryWriter.prototype.writeSfixed64=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(t))},jspb.BinaryWriter.prototype.writeSfixed64String=function(e,t){null!=t&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeFloat=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(t))},jspb.BinaryWriter.prototype.writeDouble=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(t))},jspb.BinaryWriter.prototype.writeBool=function(e,t){null!=t&&(goog.asserts.assert("boolean"==typeof t||"number"==typeof t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(t))},jspb.BinaryWriter.prototype.writeEnum=function(e,t){null!=t&&(goog.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeString=function(e,t){null!=t&&(e=this.beginDelimited_(e),this.encoder_.writeString(t),this.endDelimited_(e))},jspb.BinaryWriter.prototype.writeBytes=function(e,t){null!=t&&(t=jspb.utils.byteSourceToUint8Array(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),this.appendUint8Array_(t))},jspb.BinaryWriter.prototype.writeMessage=function(e,t,o){null!=t&&(e=this.beginDelimited_(e),o(t,this),this.endDelimited_(e))},jspb.BinaryWriter.prototype.writeMessageSet=function(e,t,o){null!=t&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(e),e=this.beginDelimited_(3),o(t,this),this.endDelimited_(e),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeGroup=function(e,t,o){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),o(t,this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeFixedHash64=function(e,t){null!=t&&(goog.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(t))},jspb.BinaryWriter.prototype.writeVarintHash64=function(e,t){null!=t&&(goog.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(t))},jspb.BinaryWriter.prototype.writeSplitFixed64=function(e,t,o){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t,o)},jspb.BinaryWriter.prototype.writeSplitVarint64=function(e,t,o){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t,o)},jspb.BinaryWriter.prototype.writeSplitZigzagVarint64=function(e,t,o){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT);var r=this.encoder_;jspb.utils.toZigzag64(t,o,(function(e,t){r.writeSplitVarint64(e>>>0,t>>>0)}))},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeSignedVarint32_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeInt32String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedInt64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeSignedVarint64_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64=function(e,t,o,r){if(null!=t)for(var n=0;n<t.length;n++)this.writeSplitFixed64(e,o(t[n]),r(t[n]))},jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64=function(e,t,o,r){if(null!=t)for(var n=0;n<t.length;n++)this.writeSplitVarint64(e,o(t[n]),r(t[n]))},jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64=function(e,t,o,r){if(null!=t)for(var n=0;n<t.length;n++)this.writeSplitZigzagVarint64(e,o(t[n]),r(t[n]))},jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeInt64String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedUint32=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeUnsignedVarint32_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeUint32String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedUint64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeUnsignedVarint64_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeUint64String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSint32=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeZigzagVarint32_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSint64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeZigzagVarint64_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeZigzagVarint64String_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSintHash64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeZigzagVarintHash64_(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeFixed32(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeFixed64(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeFixed64String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeSfixed32(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeSfixed64(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeSfixed64String(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedFloat=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeFloat(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedDouble=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeDouble(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedBool=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeBool(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedEnum=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeEnum(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedString=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeString(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedBytes=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeBytes(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedMessage=function(e,t,o){if(null!=t)for(var r=0;r<t.length;r++){var n=this.beginDelimited_(e);o(t[r],this),this.endDelimited_(n)}},jspb.BinaryWriter.prototype.writeRepeatedGroup=function(e,t,o){if(null!=t)for(var r=0;r<t.length;r++)this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),o(t[r],this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP)},jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeFixedHash64(e,t[o])},jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(e,t){if(null!=t)for(var o=0;o<t.length;o++)this.writeVarintHash64(e,t[o])},jspb.BinaryWriter.prototype.writePackedInt32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSignedVarint32(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt32String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSignedVarint32(parseInt(t[o],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSignedVarint64(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitFixed64=function(e,t,o,r){if(null!=t){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSplitFixed64(o(t[n]),r(t[n]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitVarint64=function(e,t,o,r){if(null!=t){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSplitVarint64(o(t[n]),r(t[n]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64=function(e,t,o,r){if(null!=t){e=this.beginDelimited_(e);for(var n=this.encoder_,s=0;s<t.length;s++)jspb.utils.toZigzag64(o(t[s]),r(t[s]),(function(e,t){n.writeSplitVarint64(e>>>0,t>>>0)}));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++){var r=jspb.arith.Int64.fromString(t[o]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint32(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint32String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint32(parseInt(t[o],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeUnsignedVarint64(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++){var r=jspb.arith.UInt64.fromString(t[o]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeZigzagVarint32(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeZigzagVarint64(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(t[o]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSintHash64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeZigzagVarintHash64(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedFixed32=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeUint32(t[e])},jspb.BinaryWriter.prototype.writePackedFixed64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeUint64(t[e])},jspb.BinaryWriter.prototype.writePackedFixed64String=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++){var o=jspb.arith.UInt64.fromString(t[e]);this.encoder_.writeSplitFixed64(o.lo,o.hi)}},jspb.BinaryWriter.prototype.writePackedSfixed32=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeInt32(t[e])},jspb.BinaryWriter.prototype.writePackedSfixed64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64(t[e])},jspb.BinaryWriter.prototype.writePackedSfixed64String=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64String(t[e])},jspb.BinaryWriter.prototype.writePackedFloat=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeFloat(t[e])},jspb.BinaryWriter.prototype.writePackedDouble=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeDouble(t[e])},jspb.BinaryWriter.prototype.writePackedBool=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),e=0;e<t.length;e++)this.encoder_.writeBool(t[e])},jspb.BinaryWriter.prototype.writePackedEnum=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeEnum(t[o]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedFixedHash64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeFixedHash64(t[e])},jspb.BinaryWriter.prototype.writePackedVarintHash64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeVarintHash64(t[o]);this.endDelimited_(e)}},jspb.Map=function(e,t){this.arr_=e,this.valueCtor_=t,this.map_={},this.arrClean=!0,0<this.arr_.length&&this.loadFromArray_()},jspb.Map.prototype.loadFromArray_=function(){for(var e=0;e<this.arr_.length;e++){var t=this.arr_[e],o=t[0];this.map_[o.toString()]=new jspb.Map.Entry_(o,t[1])}this.arrClean=!0},jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var e,t=this.map_;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var o=t[e].valueWrapper;o&&o.toArray()}}}else{for(this.arr_.length=0,(t=this.stringKeys_()).sort(),e=0;e<t.length;e++){var r=this.map_[t[e]];(o=r.valueWrapper)&&o.toArray(),this.arr_.push([r.key,r.value])}this.arrClean=!0}return this.arr_},jspb.Map.prototype.toObject=function(e,t){for(var o=this.toArray(),r=[],n=0;n<o.length;n++){var s=this.map_[o[n][0].toString()];this.wrapEntry_(s);var i=s.valueWrapper;i?(goog.asserts.assert(t),r.push([s.key,t(e,i)])):r.push([s.key,s.value])}return r},jspb.Map.fromObject=function(e,t,o){t=new jspb.Map([],t);for(var r=0;r<e.length;r++){var n=e[r][0],s=o(e[r][1]);t.set(n,s)}return t},jspb.Map.ArrayIteratorIterable_=function(e){this.idx_=0,this.arr_=e},jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}},"undefined"!=typeof Symbol&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this}),jspb.Map.prototype.getLength=function(){return this.stringKeys_().length},jspb.Map.prototype.clear=function(){this.map_={},this.arrClean=!1},jspb.Map.prototype.del=function(e){e=e.toString();var t=this.map_.hasOwnProperty(e);return delete this.map_[e],this.arrClean=!1,t},jspb.Map.prototype.getEntryList=function(){var e=[],t=this.stringKeys_();t.sort();for(var o=0;o<t.length;o++){var r=this.map_[t[o]];e.push([r.key,r.value])}return e},jspb.Map.prototype.entries=function(){var e=[],t=this.stringKeys_();t.sort();for(var o=0;o<t.length;o++){var r=this.map_[t[o]];e.push([r.key,this.wrapEntry_(r)])}return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.keys=function(){var e=[],t=this.stringKeys_();t.sort();for(var o=0;o<t.length;o++)e.push(this.map_[t[o]].key);return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.values=function(){var e=[],t=this.stringKeys_();t.sort();for(var o=0;o<t.length;o++)e.push(this.wrapEntry_(this.map_[t[o]]));return new jspb.Map.ArrayIteratorIterable_(e)},jspb.Map.prototype.forEach=function(e,t){var o=this.stringKeys_();o.sort();for(var r=0;r<o.length;r++){var n=this.map_[o[r]];e.call(t,this.wrapEntry_(n),n.key,this)}},jspb.Map.prototype.set=function(e,t){var o=new jspb.Map.Entry_(e);return this.valueCtor_?(o.valueWrapper=t,o.value=t.toArray()):o.value=t,this.map_[e.toString()]=o,this.arrClean=!1,this},jspb.Map.prototype.wrapEntry_=function(e){return this.valueCtor_?(e.valueWrapper||(e.valueWrapper=new this.valueCtor_(e.value)),e.valueWrapper):e.value},jspb.Map.prototype.get=function(e){if(e=this.map_[e.toString()])return this.wrapEntry_(e)},jspb.Map.prototype.has=function(e){return e.toString()in this.map_},jspb.Map.prototype.serializeBinary=function(e,t,o,r,n){var s=this.stringKeys_();s.sort();for(var i=0;i<s.length;i++){var a=this.map_[s[i]];t.beginSubMessage(e),o.call(t,1,a.key),this.valueCtor_?r.call(t,2,this.wrapEntry_(a),n):r.call(t,2,a.value),t.endSubMessage()}},jspb.Map.deserializeBinary=function(e,t,o,r,n,s,i){for(;t.nextField()&&!t.isEndGroup();){var a=t.getFieldNumber();1==a?s=o.call(t):2==a&&(e.valueCtor_?(goog.asserts.assert(n),i||(i=new e.valueCtor_),r.call(t,i,n)):i=r.call(t))}goog.asserts.assert(null!=s),goog.asserts.assert(null!=i),e.set(s,i)},jspb.Map.prototype.stringKeys_=function(){var e,t=this.map_,o=[];for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&o.push(e);return o},jspb.Map.Entry_=function(e,t){this.key=e,this.value=t,this.valueWrapper=void 0},jspb.ExtensionFieldInfo=function(e,t,o,r,n){this.fieldIndex=e,this.fieldName=t,this.ctor=o,this.toObjectFn=r,this.isRepeated=n},jspb.ExtensionFieldBinaryInfo=function(e,t,o,r,n,s){this.fieldInfo=e,this.binaryReaderFn=t,this.binaryWriterFn=o,this.binaryMessageSerializeFn=r,this.binaryMessageDeserializeFn=n,this.isPacked=s},jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor},jspb.Message=function(){},jspb.Message.GENERATE_TO_OBJECT=!0,jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE,jspb.Message.GENERATE_TO_STRING=!0,jspb.Message.ASSUME_LOCAL_ARRAYS=!1,jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0,jspb.Message.SUPPORTS_UINT8ARRAY_="function"==typeof Uint8Array,jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_},jspb.Message.getIndex_=function(e,t){return t+e.arrayIndexOffset_},jspb.Message.hiddenES6Property_=function(){},jspb.Message.getFieldNumber_=function(e,t){return t-e.arrayIndexOffset_},jspb.Message.initialize=function(e,t,o,r,n,s){if(e.wrappers_=null,t||(t=o?[o]:[]),e.messageId_=o?String(o):void 0,e.arrayIndexOffset_=0===o?-1:0,e.array=t,jspb.Message.initPivotAndExtensionObject_(e,r),e.convertedPrimitiveFields_={},jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(e.repeatedFields=n),n)for(t=0;t<n.length;t++)(o=n[t])<e.pivot_?(o=jspb.Message.getIndex_(e,o),e.array[o]=e.array[o]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[o]=e.extensionObject_[o]||jspb.Message.EMPTY_LIST_SENTINEL_);if(s&&s.length)for(t=0;t<s.length;t++)jspb.Message.computeOneofCase(e,s[t])},jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[],jspb.Message.isArray_=function(e){return jspb.Message.ASSUME_LOCAL_ARRAYS?e instanceof Array:Array.isArray(e)},jspb.Message.isExtensionObject_=function(e){return!(null===e||"object"!=typeof e||jspb.Message.isArray_(e)||jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)},jspb.Message.initPivotAndExtensionObject_=function(e,t){var o=e.array.length,r=-1;if(o&&(r=o-1,o=e.array[r],jspb.Message.isExtensionObject_(o)))return e.pivot_=jspb.Message.getFieldNumber_(e,r),void(e.extensionObject_=o);-1<t?(e.pivot_=Math.max(t,jspb.Message.getFieldNumber_(e,r+1)),e.extensionObject_=null):e.pivot_=Number.MAX_VALUE},jspb.Message.maybeInitEmptyExtensionObject_=function(e){var t=jspb.Message.getIndex_(e,e.pivot_);e.array[t]||(e.extensionObject_=e.array[t]={})},jspb.Message.toObjectList=function(e,t,o){for(var r=[],n=0;n<e.length;n++)r[n]=t.call(e[n],o,e[n]);return r},jspb.Message.toObjectExtension=function(e,t,o,r,n){for(var s in o){var i=o[s],a=r.call(e,i);if(null!=a){for(var g in i.fieldName)if(i.fieldName.hasOwnProperty(g))break;t[g]=i.toObjectFn?i.isRepeated?jspb.Message.toObjectList(a,i.toObjectFn,n):i.toObjectFn(n,a):a}}},jspb.Message.serializeBinaryExtensions=function(e,t,o,r){for(var n in o){var s=o[n],i=s.fieldInfo;if(!s.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var a=r.call(e,i);if(null!=a)if(i.isMessageType()){if(!s.binaryMessageSerializeFn)throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");s.binaryWriterFn.call(t,i.fieldIndex,a,s.binaryMessageSerializeFn)}else s.binaryWriterFn.call(t,i.fieldIndex,a)}},jspb.Message.readBinaryExtension=function(e,t,o,r,n){var s=o[t.getFieldNumber()];if(s){if(o=s.fieldInfo,!s.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");if(o.isMessageType()){var i=new o.ctor;s.binaryReaderFn.call(t,i,s.binaryMessageDeserializeFn)}else i=s.binaryReaderFn.call(t);o.isRepeated&&!s.isPacked?(t=r.call(e,o))?t.push(i):n.call(e,o,[i]):n.call(e,o,i)}else t.skipField()},jspb.Message.getField=function(e,t){if(t<e.pivot_){t=jspb.Message.getIndex_(e,t);var o=e.array[t];return o===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[t]=[]:o}if(e.extensionObject_)return(o=e.extensionObject_[t])===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:o},jspb.Message.getRepeatedField=function(e,t){return jspb.Message.getField(e,t)},jspb.Message.getOptionalFloatingPointField=function(e,t){return null==(e=jspb.Message.getField(e,t))?e:+e},jspb.Message.getBooleanField=function(e,t){return null==(e=jspb.Message.getField(e,t))?e:!!e},jspb.Message.getRepeatedFloatingPointField=function(e,t){var o=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<o.length;r++)o[r]=+o[r];e.convertedPrimitiveFields_[t]=!0}return o},jspb.Message.getRepeatedBooleanField=function(e,t){var o=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<o.length;r++)o[r]=!!o[r];e.convertedPrimitiveFields_[t]=!0}return o},jspb.Message.bytesAsB64=function(e){return null==e||"string"==typeof e?e:jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array?goog.crypt.base64.encodeByteArray(e):(goog.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(e)),null)},jspb.Message.bytesAsU8=function(e){return null==e||e instanceof Uint8Array?e:"string"==typeof e?goog.crypt.base64.decodeStringToUint8Array(e):(goog.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(e)),null)},jspb.Message.bytesListAsB64=function(e){return jspb.Message.assertConsistentTypes_(e),e.length&&"string"!=typeof e[0]?goog.array.map(e,jspb.Message.bytesAsB64):e},jspb.Message.bytesListAsU8=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||e[0]instanceof Uint8Array?e:goog.array.map(e,jspb.Message.bytesAsU8)},jspb.Message.assertConsistentTypes_=function(e){if(goog.DEBUG&&e&&1<e.length){var t=goog.typeOf(e[0]);goog.array.forEach(e,(function(e){goog.typeOf(e)!=t&&goog.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(e)+" expected "+t)}))}},jspb.Message.getFieldWithDefault=function(e,t,o){return null==(e=jspb.Message.getField(e,t))?o:e},jspb.Message.getBooleanFieldWithDefault=function(e,t,o){return null==(e=jspb.Message.getBooleanField(e,t))?o:e},jspb.Message.getFloatingPointFieldWithDefault=function(e,t,o){return null==(e=jspb.Message.getOptionalFloatingPointField(e,t))?o:e},jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault,jspb.Message.getMapField=function(e,t,o,r){if(e.wrappers_||(e.wrappers_={}),t in e.wrappers_)return e.wrappers_[t];var n=jspb.Message.getField(e,t);if(!n){if(o)return;n=[],jspb.Message.setField(e,t,n)}return e.wrappers_[t]=new jspb.Map(n,r)},jspb.Message.setField=function(e,t,o){return goog.asserts.assertInstanceof(e,jspb.Message),t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=o:(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[t]=o),e},jspb.Message.setProto3IntField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,0)},jspb.Message.setProto3FloatField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,0)},jspb.Message.setProto3BooleanField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,!1)},jspb.Message.setProto3StringField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,"")},jspb.Message.setProto3BytesField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,"")},jspb.Message.setProto3EnumField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,0)},jspb.Message.setProto3StringIntField=function(e,t,o){return jspb.Message.setFieldIgnoringDefault_(e,t,o,"0")},jspb.Message.setFieldIgnoringDefault_=function(e,t,o,r){return goog.asserts.assertInstanceof(e,jspb.Message),o!==r?jspb.Message.setField(e,t,o):t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=null:(jspb.Message.maybeInitEmptyExtensionObject_(e),delete e.extensionObject_[t]),e},jspb.Message.addToRepeatedField=function(e,t,o,r){return goog.asserts.assertInstanceof(e,jspb.Message),t=jspb.Message.getRepeatedField(e,t),null!=r?t.splice(r,0,o):t.push(o),e},jspb.Message.setOneofField=function(e,t,o,r){return goog.asserts.assertInstanceof(e,jspb.Message),(o=jspb.Message.computeOneofCase(e,o))&&o!==t&&void 0!==r&&(e.wrappers_&&o in e.wrappers_&&(e.wrappers_[o]=void 0),jspb.Message.setField(e,o,void 0)),jspb.Message.setField(e,t,r)},jspb.Message.computeOneofCase=function(e,t){for(var o,r,n=0;n<t.length;n++){var s=t[n],i=jspb.Message.getField(e,s);null!=i&&(o=s,r=i,jspb.Message.setField(e,s,void 0))}return o?(jspb.Message.setField(e,o,r),o):0},jspb.Message.getWrapperField=function(e,t,o,r){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[o]){var n=jspb.Message.getField(e,o);(r||n)&&(e.wrappers_[o]=new t(n))}return e.wrappers_[o]},jspb.Message.getRepeatedWrapperField=function(e,t,o){return jspb.Message.wrapRepeatedField_(e,t,o),(t=e.wrappers_[o])==jspb.Message.EMPTY_LIST_SENTINEL_&&(t=e.wrappers_[o]=[]),t},jspb.Message.wrapRepeatedField_=function(e,t,o){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[o]){for(var r=jspb.Message.getRepeatedField(e,o),n=[],s=0;s<r.length;s++)n[s]=new t(r[s]);e.wrappers_[o]=n}},jspb.Message.setWrapperField=function(e,t,o){goog.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var r=o?o.toArray():o;return e.wrappers_[t]=o,jspb.Message.setField(e,t,r)},jspb.Message.setOneofWrapperField=function(e,t,o,r){goog.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var n=r?r.toArray():r;return e.wrappers_[t]=r,jspb.Message.setOneofField(e,t,o,n)},jspb.Message.setRepeatedWrapperField=function(e,t,o){goog.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={}),o=o||[];for(var r=[],n=0;n<o.length;n++)r[n]=o[n].toArray();return e.wrappers_[t]=o,jspb.Message.setField(e,t,r)},jspb.Message.addToRepeatedWrapperField=function(e,t,o,r,n){jspb.Message.wrapRepeatedField_(e,r,t);var s=e.wrappers_[t];return s||(s=e.wrappers_[t]=[]),o=o||new r,e=jspb.Message.getRepeatedField(e,t),null!=n?(s.splice(n,0,o),e.splice(n,0,o.toArray())):(s.push(o),e.push(o.toArray())),o},jspb.Message.toMap=function(e,t,o,r){for(var n={},s=0;s<e.length;s++)n[t.call(e[s])]=o?o.call(e[s],r,e[s]):e[s];return n},jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var e in this.wrappers_){var t=this.wrappers_[e];if(Array.isArray(t))for(var o=0;o<t.length;o++)t[o]&&t[o].toArray();else t&&t.toArray()}},jspb.Message.prototype.toArray=function(){return this.syncMapFields_(),this.array},jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){return this.syncMapFields_(),this.array.toString()}),jspb.Message.prototype.getExtension=function(e){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var t=e.fieldIndex;if(e.isRepeated){if(e.isMessageType())return this.wrappers_[t]||(this.wrappers_[t]=goog.array.map(this.extensionObject_[t]||[],(function(t){return new e.ctor(t)}))),this.wrappers_[t]}else if(e.isMessageType())return!this.wrappers_[t]&&this.extensionObject_[t]&&(this.wrappers_[t]=new e.ctor(this.extensionObject_[t])),this.wrappers_[t];return this.extensionObject_[t]}},jspb.Message.prototype.setExtension=function(e,t){this.wrappers_||(this.wrappers_={}),jspb.Message.maybeInitEmptyExtensionObject_(this);var o=e.fieldIndex;return e.isRepeated?(t=t||[],e.isMessageType()?(this.wrappers_[o]=t,this.extensionObject_[o]=goog.array.map(t,(function(e){return e.toArray()}))):this.extensionObject_[o]=t):e.isMessageType()?(this.wrappers_[o]=t,this.extensionObject_[o]=t?t.toArray():t):this.extensionObject_[o]=t,this},jspb.Message.difference=function(e,t){if(!(e instanceof t.constructor))throw Error("Messages have different types.");var o=e.toArray();t=t.toArray();var r=[],n=0,s=o.length>t.length?o.length:t.length;for(e.getJsPbMessageId()&&(r[0]=e.getJsPbMessageId(),n=1);n<s;n++)jspb.Message.compareFields(o[n],t[n])||(r[n]=t[n]);return new e.constructor(r)},jspb.Message.equals=function(e,t){return e==t||!(!e||!t)&&e instanceof t.constructor&&jspb.Message.compareFields(e.toArray(),t.toArray())},jspb.Message.compareExtensions=function(e,t){e=e||{},t=t||{};var o,r={};for(o in e)r[o]=0;for(o in t)r[o]=0;for(o in r)if(!jspb.Message.compareFields(e[o],t[o]))return!1;return!0},jspb.Message.compareFields=function(e,t){if(e==t)return!0;if(!goog.isObject(e)||!goog.isObject(t))return!!("number"==typeof e&&isNaN(e)||"number"==typeof t&&isNaN(t))&&String(e)==String(t);if(e.constructor!=t.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e.constructor===Uint8Array){if(e.length!=t.length)return!1;for(var o=0;o<e.length;o++)if(e[o]!=t[o])return!1;return!0}if(e.constructor===Array){var r=void 0,n=void 0,s=Math.max(e.length,t.length);for(o=0;o<s;o++){var i=e[o],a=t[o];if(i&&i.constructor==Object&&(goog.asserts.assert(void 0===r),goog.asserts.assert(o===e.length-1),r=i,i=void 0),a&&a.constructor==Object&&(goog.asserts.assert(void 0===n),goog.asserts.assert(o===t.length-1),n=a,a=void 0),!jspb.Message.compareFields(i,a))return!1}return!r&&!n||(r=r||{},n=n||{},jspb.Message.compareExtensions(r,n))}if(e.constructor===Object)return jspb.Message.compareExtensions(e,t);throw Error("Invalid type in JSPB array")},jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)},jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)},jspb.Message.clone=function(e){return jspb.Message.cloneMessage(e)},jspb.Message.cloneMessage=function(e){return new e.constructor(jspb.Message.clone_(e.toArray()))},jspb.Message.copyInto=function(e,t){goog.asserts.assertInstanceof(e,jspb.Message),goog.asserts.assertInstanceof(t,jspb.Message),goog.asserts.assert(e.constructor==t.constructor,"Copy source and target message should have the same type."),e=jspb.Message.clone(e);for(var o=t.toArray(),r=e.toArray(),n=o.length=0;n<r.length;n++)o[n]=r[n];t.wrappers_=e.wrappers_,t.extensionObject_=e.extensionObject_},jspb.Message.clone_=function(e){if(Array.isArray(e)){for(var t=Array(e.length),o=0;o<e.length;o++){var r=e[o];null!=r&&(t[o]="object"==typeof r?jspb.Message.clone_(goog.asserts.assert(r)):r)}return t}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)return new Uint8Array(e);for(o in t={},e)null!=(r=e[o])&&(t[o]="object"==typeof r?jspb.Message.clone_(goog.asserts.assert(r)):r);return t},jspb.Message.registerMessageType=function(e,t){t.messageId=e},jspb.Message.messageSetExtensions={},jspb.Message.messageSetExtensionsBinary={},jspb.Export={},exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf},40:function(e,t,o){var r;function n(e){var t=0;return function(){return t<e.length?{done:!1,value:e[t++]}:{done:!0}}}var s="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,o){e!=Array.prototype&&e!=Object.prototype&&(e[t]=o.value)},i=function(e){e=["object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof o.g&&o.g,e];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")}(this);function a(){a=function(){},i.Symbol||(i.Symbol=u)}function g(e,t){this.a=e,s(this,"description",{configurable:!0,writable:!0,value:t})}g.prototype.toString=function(){return this.a};var l,u=(l=0,function e(t){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new g("jscomp_symbol_"+(t||"")+"_"+l++,t)});function c(){a();var e=i.Symbol.iterator;e||(e=i.Symbol.iterator=i.Symbol("Symbol.iterator")),"function"!=typeof Array.prototype[e]&&s(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return function(e){return c(),(e={next:e})[i.Symbol.iterator]=function(){return this},e}(n(this))}}),c=function(){}}function p(e){var t="undefined"!=typeof Symbol&&Symbol.iterator&&e[Symbol.iterator];return t?t.call(e):{next:n(e)}}var f,d="function"==typeof Object.create?Object.create:function(e){function t(){}return t.prototype=e,new t};if("function"==typeof Object.setPrototypeOf)f=Object.setPrototypeOf;else{var h;e:{var y={};try{y.__proto__={V:!0},h=y.V;break e}catch(ee){}h=!1}f=h?function(e,t){if(e.__proto__=t,e.__proto__!==t)throw new TypeError(e+" is not extensible");return e}:null}var _=f;function b(e,t){if(e.prototype=d(t.prototype),e.prototype.constructor=e,_)_(e,t);else for(var o in t)if("prototype"!=o)if(Object.defineProperties){var r=Object.getOwnPropertyDescriptor(t,o);r&&Object.defineProperty(e,o,r)}else e[o]=t[o];e.O=t.prototype}function m(e,t){if(t){var o=i;e=e.split(".");for(var r=0;r<e.length-1;r++){var n=e[r];n in o||(o[n]={}),o=o[n]}(t=t(r=o[e=e[e.length-1]]))!=r&&null!=t&&s(o,e,{configurable:!0,writable:!0,value:t})}}m("Array.prototype.keys",(function(e){return e||function(){return function(e,t){c(),e instanceof String&&(e+="");var o=0,r={next:function(){if(o<e.length){var n=o++;return{value:t(n,e[n]),done:!1}}return r.next=function(){return{done:!0,value:void 0}},r.next()}};return r[Symbol.iterator]=function(){return r},r}(this,(function(e){return e}))}})),m("Array.prototype.find",(function(e){return e||function(e,t){e:{var o=this;o instanceof String&&(o=String(o));for(var r=o.length,n=0;n<r;n++){var s=o[n];if(e.call(t,s,n,o)){e=s;break e}}e=void 0}return e}})),m("Object.is",(function(e){return e||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}})),m("Array.prototype.includes",(function(e){return e||function(e,t){var o=this;o instanceof String&&(o=String(o));var r=o.length;for(0>(t=t||0)&&(t=Math.max(t+r,0));t<r;t++){var n=o[t];if(n===e||Object.is(n,e))return!0}return!1}})),m("Promise",(function(e){function t(e){this.b=0,this.c=void 0,this.a=[];var t=this.f();try{e(t.resolve,t.reject)}catch(e){t.reject(e)}}function o(){this.a=null}function r(e){return e instanceof t?e:new t((function(t){t(e)}))}if(e)return e;o.prototype.b=function(e){if(null==this.a){this.a=[];var t=this;this.c((function(){t.g()}))}this.a.push(e)};var n=i.setTimeout;o.prototype.c=function(e){n(e,0)},o.prototype.g=function(){for(;this.a&&this.a.length;){var e=this.a;this.a=[];for(var t=0;t<e.length;++t){var o=e[t];e[t]=null;try{o()}catch(e){this.f(e)}}}this.a=null},o.prototype.f=function(e){this.c((function(){throw e}))},t.prototype.f=function(){function e(e){return function(r){o||(o=!0,e.call(t,r))}}var t=this,o=!1;return{resolve:e(this.s),reject:e(this.g)}},t.prototype.s=function(e){if(e===this)this.g(new TypeError("A Promise cannot resolve to itself"));else if(e instanceof t)this.v(e);else{e:switch(typeof e){case"object":var o=null!=e;break e;case"function":o=!0;break e;default:o=!1}o?this.m(e):this.h(e)}},t.prototype.m=function(e){var t=void 0;try{t=e.then}catch(e){return void this.g(e)}"function"==typeof t?this.w(t,e):this.h(e)},t.prototype.g=function(e){this.i(2,e)},t.prototype.h=function(e){this.i(1,e)},t.prototype.i=function(e,t){if(0!=this.b)throw Error("Cannot settle("+e+", "+t+"): Promise already settled in state"+this.b);this.b=e,this.c=t,this.l()},t.prototype.l=function(){if(null!=this.a){for(var e=0;e<this.a.length;++e)s.b(this.a[e]);this.a=null}};var s=new o;return t.prototype.v=function(e){var t=this.f();e.F(t.resolve,t.reject)},t.prototype.w=function(e,t){var o=this.f();try{e.call(t,o.resolve,o.reject)}catch(e){o.reject(e)}},t.prototype.then=function(e,o){function r(e,t){return"function"==typeof e?function(t){try{n(e(t))}catch(e){s(e)}}:t}var n,s,i=new t((function(e,t){n=e,s=t}));return this.F(r(e,n),r(o,s)),i},t.prototype.catch=function(e){return this.then(void 0,e)},t.prototype.F=function(e,t){function o(){switch(r.b){case 1:e(r.c);break;case 2:t(r.c);break;default:throw Error("Unexpected state: "+r.b)}}var r=this;null==this.a?s.b(o):this.a.push(o)},t.resolve=r,t.reject=function(e){return new t((function(t,o){o(e)}))},t.race=function(e){return new t((function(t,o){for(var n=p(e),s=n.next();!s.done;s=n.next())r(s.value).F(t,o)}))},t.all=function(e){var o=p(e),n=o.next();return n.done?r([]):new t((function(e,t){function s(t){return function(o){i[t]=o,0==--a&&e(i)}}var i=[],a=0;do{i.push(void 0),a++,r(n.value).F(s(i.length-1),t),n=o.next()}while(!n.done)}))},t}));var S=S||{},E=this||self;function T(e,t){e=e.split("."),t=t||E;for(var o=0;o<e.length;o++)if(null==(t=t[e[o]]))return null;return t}function A(){}function v(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}var I="closure_uid_"+(1e9*Math.random()>>>0),R=0;function O(e,t,o){return e.call.apply(e.bind,arguments)}function j(e,t,o){if(!e)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var o=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(o,r),e.apply(t,o)}}return function(){return e.apply(t,arguments)}}function w(e,t,o){return(w=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?O:j).apply(null,arguments)}function N(e,t){function o(){}o.prototype=t.prototype,e.O=t.prototype,e.prototype=new o,e.prototype.constructor=e}function C(){this.a={}}function U(e,t,o,r){this.f=e,this.c=t,this.b=o,this.a=r}function M(e,t,o,r){o=void 0===o?{}:o,this.c=e,this.a=o,this.b=t,this.f=void 0===r?null:r}function L(e,t,o){o=void 0===o?{}:o;var r=void 0===r?new C:r;return new U(t,e,o,r)}function D(e,t,o){o=void 0===o?{}:o,t=Error.call(this,t),this.message=t.message,"stack"in t&&(this.stack=t.stack),this.code=e,this.metadata=o}function B(e){this.a=e}function P(e){if(Error.captureStackTrace)Error.captureStackTrace(this,P);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e))}function F(e,t){for(var o="",r=(e=e.split("%s")).length-1,n=0;n<r;n++)o+=e[n]+(n<t.length?t[n]:"%s");P.call(this,o+e[r])}function x(){this.l=null,this.i=[],this.m=0,this.b=W,this.f=this.a=this.h=0,this.c=null,this.g=0}C.prototype.get=function(e){return this.a[e]},C.prototype.G=function(){return Object.keys(this.a)},U.prototype.getRequestMessage=function(){return this.f},U.prototype.getMethodDescriptor=function(){return this.c},U.prototype.getMetadata=function(){return this.b},U.prototype.getCallOptions=function(){return this.a},M.prototype.getResponseMessage=function(){return this.c},M.prototype.getMetadata=function(){return this.a},M.prototype.getMethodDescriptor=function(){return this.b},M.prototype.getStatus=function(){return this.f},b(D,Error),D.prototype.name="RpcError",B.prototype.on=function(e,t){return"data"==e||"error"==e?this:this.a.on(e,t)},B.prototype.removeListener=function(e,t){return this.a.removeListener(e,t)},B.prototype.cancel=function(){this.a.cancel()},N(P,Error),P.prototype.name="CustomError",N(F,P),F.prototype.name="AssertionError";var W=0,H=128;function V(e,t,o,r){throw e.b=3,e.l="The stream is broken @"+e.m+"/"+o+". Error: "+r+". With input:\\n"+t,Error(e.l)}var G,k=Array.prototype.indexOf?function(e,t){return Array.prototype.indexOf.call(e,t,void 0)}:function(e,t){if("string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.indexOf(t,0);for(var o=0;o<e.length;o++)if(o in e&&e[o]===t)return o;return-1},Y=String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(e)[1]};function z(e,t){return-1!=e.indexOf(t)}function K(e,t){return e<t?-1:e>t?1:0}e:{var X=E.navigator;if(X){var q=X.userAgent;if(q){G=q;break e}}G=""}var $="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function Z(e){var t=1;e=e.split(":");for(var o=[];0<t&&e.length;)o.push(e.shift()),t--;return e.length&&o.push(e.join(":")),o}function J(e){return J[" "](e),e}J[" "]=A;var Q,ee,te=z(G,"Opera"),oe=z(G,"Trident")||z(G,"MSIE"),re=z(G,"Edge"),ne=z(G,"Gecko")&&!(z(G.toLowerCase(),"webkit")&&!z(G,"Edge"))&&!(z(G,"Trident")||z(G,"MSIE"))&&!z(G,"Edge"),se=z(G.toLowerCase(),"webkit")&&!z(G,"Edge");e:{var ie="",ae=(ee=G,ne?/rv:([^\\);]+)(\\)|;)/.exec(ee):re?/Edge\\/([\\d\\.]+)/.exec(ee):oe?/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(ee):se?/WebKit\\/(\\S+)/.exec(ee):te?/(?:Version)[ \\/]?(\\S+)/.exec(ee):void 0);if(ae&&(ie=ae?ae[1]:""),oe){var ge,le=E.document;if(null!=(ge=le?le.documentMode:void 0)&&ge>parseFloat(ie)){Q=String(ge);break e}}Q=ie}var ue={};function ce(){return function(e){var t=ue;return Object.prototype.hasOwnProperty.call(t,9)?t[9]:t[9]=function(){for(var e=0,t=Y(String(Q)).split("."),o=Y("9").split("."),r=Math.max(t.length,o.length),n=0;0==e&&n<r;n++){var s=t[n]||"",i=o[n]||"";do{if(s=/(\\d*)(\\D*)(.*)/.exec(s)||["","","",""],i=/(\\d*)(\\D*)(.*)/.exec(i)||["","","",""],0==s[0].length&&0==i[0].length)break;e=K(0==s[1].length?0:parseInt(s[1],10),0==i[1].length?0:parseInt(i[1],10))||K(0==s[2].length,0==i[2].length)||K(s[2],i[2]),s=s[3],i=i[3]}while(0==e)}return 0<=e}()}()}function pe(){0!=fe&&(Object.prototype.hasOwnProperty.call(this,I)&&this[I]||(this[I]=++R)),this.K=this.K}var fe=0;pe.prototype.K=!1;var de=Object.freeze||function(e){return e};function he(e,t){this.type=e,this.a=this.target=t,this.defaultPrevented=!1}he.prototype.b=function(){this.defaultPrevented=!0};var ye=function(){if(!E.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{E.addEventListener("test",A,t),E.removeEventListener("test",A,t)}catch(e){}return e}();function _e(e,t){if(he.call(this,e?e.type:""),this.relatedTarget=this.a=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.pointerId=0,this.pointerType="",this.c=null,e){var o=this.type=e.type,r=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.a=t,t=e.relatedTarget){if(ne){e:{try{J(t.nodeName);var n=!0;break e}catch(e){}n=!1}n||(t=null)}}else"mouseover"==o?t=e.fromElement:"mouseout"==o&&(t=e.toElement);this.relatedTarget=t,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:be[e.pointerType]||"",this.c=e,e.defaultPrevented&&_e.O.b.call(this)}}N(_e,he);var be=de({2:"touch",3:"pen",4:"mouse"});_e.prototype.b=function(){_e.O.b.call(this);var e=this.c;e.preventDefault?e.preventDefault():e.returnValue=!1};var me="closure_listenable_"+(1e6*Math.random()|0),Se=0;function Ee(e,t,o,r,n){this.listener=e,this.proxy=null,this.src=t,this.type=o,this.capture=!!r,this.H=n,this.key=++Se,this.A=this.D=!1}function Te(e){e.A=!0,e.listener=null,e.proxy=null,e.src=null,e.H=null}function Ae(e){this.src=e,this.a={},this.b=0}function ve(e,t){var o=t.type;if(o in e.a){var r,n=e.a[o],s=k(n,t);(r=0<=s)&&Array.prototype.splice.call(n,s,1),r&&(Te(t),0==e.a[o].length&&(delete e.a[o],e.b--))}}function Ie(e,t,o,r){for(var n=0;n<e.length;++n){var s=e[n];if(!s.A&&s.listener==t&&s.capture==!!o&&s.H==r)return n}return-1}Ae.prototype.add=function(e,t,o,r,n){var s=e.toString();(e=this.a[s])||(e=this.a[s]=[],this.b++);var i=Ie(e,t,r,n);return-1<i?(t=e[i],o||(t.D=!1)):((t=new Ee(t,this.src,s,!!r,n)).D=o,e.push(t)),t},Ae.prototype.remove=function(e,t,o,r){if(!((e=e.toString())in this.a))return!1;var n=this.a[e];return-1<(t=Ie(n,t,o,r))&&(Te(n[t]),Array.prototype.splice.call(n,t,1),0==n.length&&(delete this.a[e],this.b--),!0)};var Re="closure_lm_"+(1e6*Math.random()|0),Oe={};function je(e,t,o,r,n){if(r&&r.once)Ne(e,t,o,r,n);else if(Array.isArray(t))for(var s=0;s<t.length;s++)je(e,t[s],o,r,n);else o=Pe(o),e&&e[me]?e.f.add(String(t),o,!1,v(r)?!!r.capture:!!r,n):we(e,t,o,!1,r,n)}function we(e,t,o,r,n,s){if(!t)throw Error("Invalid event type");var i=v(n)?!!n.capture:!!n,a=De(e);if(a||(e[Re]=a=new Ae(e)),!(o=a.add(t,o,r,i,s)).proxy)if(r=function(){var e=Le;return function t(o){return e.call(t.src,t.listener,o)}}(),o.proxy=r,r.src=e,r.listener=o,e.addEventListener)ye||(n=i),void 0===n&&(n=!1),e.addEventListener(t.toString(),r,n);else if(e.attachEvent)e.attachEvent(Me(t.toString()),r);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(r)}}function Ne(e,t,o,r,n){if(Array.isArray(t))for(var s=0;s<t.length;s++)Ne(e,t[s],o,r,n);else o=Pe(o),e&&e[me]?e.f.add(String(t),o,!0,v(r)?!!r.capture:!!r,n):we(e,t,o,!0,r,n)}function Ce(e,t,o,r,n){if(Array.isArray(t))for(var s=0;s<t.length;s++)Ce(e,t[s],o,r,n);else r=v(r)?!!r.capture:!!r,o=Pe(o),e&&e[me]?e.f.remove(String(t),o,r,n):e&&(e=De(e))&&(t=e.a[t.toString()],e=-1,t&&(e=Ie(t,o,r,n)),(o=-1<e?t[e]:null)&&Ue(o))}function Ue(e){if("number"!=typeof e&&e&&!e.A){var t=e.src;if(t&&t[me])ve(t.f,e);else{var o=e.type,r=e.proxy;t.removeEventListener?t.removeEventListener(o,r,e.capture):t.detachEvent?t.detachEvent(Me(o),r):t.addListener&&t.removeListener&&t.removeListener(r),(o=De(t))?(ve(o,e),0==o.b&&(o.src=null,t[Re]=null)):Te(e)}}}function Me(e){return e in Oe?Oe[e]:Oe[e]="on"+e}function Le(e,t){if(e.A)e=!0;else{t=new _e(t,this);var o=e.listener,r=e.H||e.src;e.D&&Ue(e),e=o.call(r,t)}return e}function De(e){return(e=e[Re])instanceof Ae?e:null}var Be="__closure_events_fn_"+(1e9*Math.random()>>>0);function Pe(e){return"function"==typeof e?e:(e[Be]||(e[Be]=function(t){return e.handleEvent(t)}),e[Be])}function Fe(){pe.call(this),this.f=new Ae(this),this.U=this}function xe(e,t){e=e.U;var o=t.type||t;if("string"==typeof t)t=new he(t,e);else if(t instanceof he)t.target=t.target||e;else{var r=t;!function(e,t){for(var o,r,n=1;n<arguments.length;n++){for(o in r=arguments[n])e[o]=r[o];for(var s=0;s<$.length;s++)o=$[s],Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}}(t=new he(o,e),r)}We(e=t.a=e,o,!0,t),We(e,o,!1,t)}function We(e,t,o,r){if(t=e.f.a[String(t)]){t=t.concat();for(var n=!0,s=0;s<t.length;++s){var i=t[s];if(i&&!i.A&&i.capture==o){var a=i.listener,g=i.H||i.src;i.D&&ve(e.f,i),n=!1!==a.call(g,r)&&n}}}}function He(e,t,o){if("function"==typeof e)o&&(e=w(e,o));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=w(e.handleEvent,e)}return 2147483647<Number(t)?-1:E.setTimeout(e,t||0)}function Ve(e,t){this.name=e,this.value=t}N(Fe,pe),Fe.prototype[me]=!0,Fe.prototype.addEventListener=function(e,t,o,r){je(this,e,t,o,r)},Fe.prototype.removeEventListener=function(e,t,o,r){Ce(this,e,t,o,r)},Ve.prototype.toString=function(){return this.name};var Ge,ke,Ye,ze=new Ve("OFF",1/0),Ke=new Ve("SEVERE",1e3),Xe=new Ve("CONFIG",700),qe=new Ve("FINE",500);function $e(){this.clear()}function Ze(e,t,o){this.reset(e||ze,t,o,void 0,void 0)}function Je(e,t){this.a=null,this.f=[],this.b=(void 0===t?null:t)||null,this.c=[],this.g={a:function(){return e}}}function Qe(e){return e.a?e.a:e.b?Qe(e.b):(function(e,t){throw new F("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1))}("Root logger has no level set."),ze)}function et(){this.entries={};var e=new Je("");e.a=Xe,this.entries[""]=e}function tt(e,t,o){var r=e.entries[t];if(r)return void 0!==o&&(r.a=o),r;r=tt(e,t.substr(0,t.lastIndexOf(".")));var n=new Je(t,r);return e.entries[t]=n,r.c.push(n),void 0!==o&&(n.a=o),n}function ot(){return ke||(ke=new et),ke}function rt(e,t,o){var r;(r=e)&&(r=e&&t)&&(r=(r=t.value)>=(e?Qe(tt(ot(),e.a())):ze).value),r&&(t=t||ze,r=tt(ot(),e.a()),"function"==typeof o&&(o=o()),Ge||(Ge=new $e),function(e,t){for(;e;)e.f.forEach((function(e){e(t)})),e=e.b}(r,e=new Ze(t,o,e.a())))}function nt(e,t){e&&rt(e,qe,t)}function st(){}function it(e){var t;return(t=e.a)||(t={},lt(e)&&(t[0]=!0,t[1]=!0),t=e.a=t),t}function at(){}function gt(e){return(e=lt(e))?new ActiveXObject(e):new XMLHttpRequest}function lt(e){if(!e.b&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var t=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],o=0;o<t.length;o++){var r=t[o];try{return new ActiveXObject(r),e.b=r}catch(e){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed")}return e.b}function ut(e,t){this.b=e[E.Symbol.iterator](),this.c=t,this.f=0}$e.prototype.clear=function(){},Ze.prototype.reset=function(){},st.prototype.a=null,N(at,st),Ye=new at,a(),c(),ut.prototype[Symbol.iterator]=function(){return this},ut.prototype.next=function(){var e=this.b.next();return{value:e.done?void 0:this.c.call(void 0,e.value,this.f++),done:e.done}},a(),c(),a(),c();var ct="StopIteration"in E?E.StopIteration:{message:"StopIteration",stack:""};function pt(){}function ft(e){if(e instanceof ht||e instanceof yt||e instanceof _t)return e;if("function"==typeof e.next)return new ht((function(){return dt(e)}));if(a(),c(),"function"==typeof e[Symbol.iterator])return a(),c(),new ht((function(){return e[Symbol.iterator]()}));if("function"==typeof e.u)return new ht((function(){return dt(e.u())}));throw Error("Not an iterator or iterable.")}function dt(e){if(!(e instanceof pt))return e;var t=!1;return{next:function(){for(var o;!t;)try{o=e.a();break}catch(e){if(e!==ct)throw e;t=!0}return{value:o,done:t}}}}function ht(e){this.b=e}function yt(e){this.b=e}function _t(e){ht.call(this,(function(){return e})),this.f=e}function bt(e,t){this.o={},this.j=[],this.B=this.size=0;var o=arguments.length;if(1<o){if(o%2)throw Error("Uneven number of arguments");for(var r=0;r<o;r+=2)this.set(arguments[r],arguments[r+1])}else e&&this.addAll(e)}function mt(e){if(e.size!=e.j.length){for(var t=0,o=0;t<e.j.length;){var r=e.j[t];St(e.o,r)&&(e.j[o++]=r),t++}e.j.length=o}if(e.size!=e.j.length){var n={};for(o=t=0;t<e.j.length;)St(n,r=e.j[t])||(e.j[o++]=r,n[r]=1),t++;e.j.length=o}}function St(e,t){return Object.prototype.hasOwnProperty.call(e,t)}pt.prototype.next=function(){return pt.prototype.a.call(this)},pt.prototype.a=function(){throw ct},pt.prototype.u=function(){return this},a(),c(),ht.prototype.u=function(){return new yt(this.b())},ht.prototype[Symbol.iterator]=function(){return new _t(this.b())},ht.prototype.c=function(){return new _t(this.b())},a(),c(),b(yt,pt),yt.prototype.a=function(){var e=this.b.next();if(e.done)throw ct;return e.value},yt.prototype.next=function(){return yt.prototype.a.call(this)},yt.prototype[Symbol.iterator]=function(){return new _t(this.b)},yt.prototype.c=function(){return new _t(this.b)},b(_t,ht),_t.prototype.next=function(){return this.f.next()},(r=bt.prototype).G=function(){return mt(this),this.j.concat()},r.has=function(e){return St(this.o,e)},r.clear=function(){this.o={},this.B=this.size=this.j.length=0},r.remove=function(e){return this.delete(e)},r.delete=function(e){return!!St(this.o,e)&&(delete this.o[e],--this.size,this.B++,this.j.length>2*this.size&&mt(this),!0)},r.get=function(e,t){return St(this.o,e)?this.o[e]:t},r.set=function(e,t){St(this.o,e)||(this.size+=1,this.j.push(e),this.B++),this.o[e]=t},r.addAll=function(e){if(e instanceof bt)for(var t=e.G(),o=0;o<t.length;o++)this.set(t[o],e.get(t[o]));else for(t in e)this.set(t,e[t])},r.forEach=function(e,t){for(var o=this.G(),r=0;r<o.length;r++){var n=o[r],s=this.get(n);e.call(t,s,n,this)}},r.clone=function(){return new bt(this)},r.keys=function(){return ft(this.u(!0)).c()},r.values=function(){return ft(this.u(!1)).c()},r.entries=function(){var e=this;return function(e,t){return new ut(e,t)}(this.keys(),(function(t){return[t,e.get(t)]}))},r.u=function(e){mt(this);var t=0,o=this.B,r=this,n=new pt;return n.a=function(){if(o!=r.B)throw Error("The map has changed since the iterator was created");if(t>=r.j.length)throw ct;var n=r.j[t++];return e?n:r.o[n]},n.next=n.a.bind(n),n};var Et=/^(?:([^:/?#.]+):)?(?:\\/\\/(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$/;function Tt(e){Fe.call(this),this.headers=new bt,this.C=e||null,this.c=!1,this.J=this.a=null,this.P=this.v="",this.g=0,this.l="",this.i=this.N=this.s=this.L=!1,this.h=0,this.w=null,this.m=At,this.I=this.M=!1}N(Tt,Fe);var At="";Tt.prototype.b=tt(ot(),"goog.net.XhrIo",void 0).g;var vt=/^https?$/i,It=["POST","PUT"];function Rt(e,t){e.c=!1,e.a&&(e.i=!0,e.a.abort(),e.i=!1),e.l=t,e.g=5,Ot(e),wt(e)}function Ot(e){e.L||(e.L=!0,xe(e,"complete"),xe(e,"error"))}function jt(e){if(e.c&&void 0!==S)if(e.J[1]&&4==Ct(e)&&2==e.getStatus())nt(e.b,Mt(e,"Local request error detected and ignored"));else if(e.s&&4==Ct(e))He(e.R,0,e);else if(xe(e,"readystatechange"),4==Ct(e)){nt(e.b,Mt(e,"Request complete")),e.c=!1;try{var t,o=e.getStatus();e:switch(o){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var r=!0;break e;default:r=!1}if(!(t=r)){var n;if(n=0===o){var s=String(e.v).match(Et)[1]||null;if(!s&&E.self&&E.self.location){var i=E.self.location.protocol;s=i.substr(0,i.length-1)}n=!vt.test(s?s.toLowerCase():"")}t=n}if(t)xe(e,"complete"),xe(e,"success");else{e.g=6;try{var a=2<Ct(e)?e.a.statusText:""}catch(t){nt(e.b,"Can not get status: "+t.message),a=""}e.l=a+" ["+e.getStatus()+"]",Ot(e)}}finally{wt(e)}}}function wt(e){if(e.a){Nt(e);var t=e.a,o=e.J[0]?A:null;e.a=null,e.J=null,xe(e,"ready");try{t.onreadystatechange=o}catch(t){(e=e.b)&&rt(e,Ke,"Problem encountered resetting onreadystatechange: "+t.message)}}}function Nt(e){e.a&&e.I&&(e.a.ontimeout=null),e.w&&(E.clearTimeout(e.w),e.w=null)}function Ct(e){return e.a?e.a.readyState:0}function Ut(e,t){if(e.a&&4==Ct(e))return null===(e=e.a.getResponseHeader(t))?void 0:e}function Mt(e,t){return t+" ["+e.P+" "+e.v+" "+e.getStatus()+"]"}(r=Tt.prototype).T=function(){void 0!==S&&this.a&&(this.l="Timed out after "+this.h+"ms, aborting",this.g=8,nt(this.b,Mt(this,this.l)),xe(this,"timeout"),this.abort(8))},r.abort=function(e){this.a&&this.c&&(nt(this.b,Mt(this,"Aborting")),this.c=!1,this.i=!0,this.a.abort(),this.i=!1,this.g=e||7,xe(this,"complete"),xe(this,"abort"),wt(this))},r.R=function(){this.K||(this.N||this.s||this.i?jt(this):this.W())},r.W=function(){jt(this)},r.getStatus=function(){try{return 2<Ct(this)?this.a.status:-1}catch(e){return-1}};var Lt={},Dt=null;function Bt(){if(!Dt){Dt={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],o=0;5>o;o++){var r=e.concat(t[o].split(""));Lt[o]=r;for(var n=0;n<r.length;n++){var s=r[n];void 0===Dt[s]&&(Dt[s]=n)}}}}var Pt=["content-type","grpc-status","grpc-message"];function Ft(e){this.a=e.Z,this.m=null,this.b=[],this.h=[],this.g=[],this.f=[],this.c=[],this.l=!1,this.i=0,this.s=new x;var t=this;je(this.a,"readystatechange",(function(){var e=t.a;if(e=e.a?e.a.getResponseHeader("Content-Type"):null){if(0==(e=e.toLowerCase()).lastIndexOf("application/grpc-web-text",0)){e=t.a;try{var o=e.a?e.a.responseText:""}catch(t){nt(e.b,"Can not get responseText: "+t.message),o=""}if(o=(e=o||"").length-e.length%4,0==(e=e.substr(t.i,o-t.i)).length)return;t.i=o,e=function(e){var t=e.length,o=3*t/4;o%3?o=Math.floor(o):z("=.",e[t-1])&&(o=z("=.",e[t-2])?o-2:o-1);var r=new Uint8Array(o),n=0;return function(e,t){function o(t){for(;r<e.length;){var o=e.charAt(r++),n=Dt[o];if(null!=n)return n;if(!/^[\\s\\xa0]*$/.test(o))throw Error("Unknown base64 encoding at char: "+o)}return t}Bt();for(var r=0;;){var n=o(-1),s=o(0),i=o(64),a=o(64);if(64===a&&-1===n)break;t(n<<2|s>>4),64!=i&&(t(s<<4&240|i>>2),64!=a&&t(i<<6&192|a))}}(e,(function(e){r[n++]=e})),r.subarray(0,n)}(e)}else{if(0!=e.lastIndexOf("application/grpc",0))return void Wt(t,new D(2,"Unknown Content-type received."));e=new Uint8Array(function(e){try{if(!e.a)return null;if("response"in e.a)return e.a.response;switch(e.m){case At:case"text":return e.a.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.a)return e.a.mozResponseArrayBuffer}var t=e.b;return t&&rt(t,Ke,"Response type "+e.m+" is not supported on this browser"),null}catch(t){return nt(e.b,"Can not get response: "+t.message),null}}(t.a))}o=null;try{o=function(e,t){function o(e){a.f++,a.a=(a.a<<8)+e,4==a.f&&(a.b=2,a.g=0,"undefined"!=typeof Uint8Array?a.c=new Uint8Array(a.a):a.c=Array(a.a),0==a.a&&n())}function r(e){a.c[a.g++]=e,a.g==a.a&&n()}function n(){var e={};e[a.h]=a.c,a.i.push(e),a.b=W}var s,i,a=e,g=0;for(s=t instanceof Uint8Array||t instanceof Array?t:new Uint8Array(t);g<s.length;){switch(a.b){case 3:V(a,s,g,"stream already broken");break;case W:0==(i=s[g])||i==H?a.h=i:V(a,s,g,"invalid frame byte"),a.b=1,a.a=0,a.f=0;break;case 1:o(s[g]);break;case 2:r(s[g]);break;default:throw Error("unexpected parser state: "+a.b)}a.m++,g++}return e=a.i,a.i=[],0<e.length?e:null}(t.s,e)}catch(e){Wt(t,new D(2,"Error in parsing response body"))}if(o)for(e=0;e<o.length;e++){if(0 in o[e]){var r=o[e][0];if(r){var n=void 0;try{n=t.m(r)}catch(e){Wt(t,new D(13,"Error when deserializing response data: "+n))}if(n){r=t;for(var s=0;s<r.b.length;s++)r.b[s](n)}}}if(H in o[e]&&0<o[e][H].length){for(r="",n=0;n<o[e][H].length;n++)r+=String.fromCharCode(o[e][H][n]);for(r=r.trim().split("\\r\\n"),n={},s=0;s<r.length;s++){var i=r[s].indexOf(":");n[r[s].substring(0,i).trim()]=r[s].substring(i+1).trim()}r=n,n=0,s="","grpc-status"in r&&(n=Number(r["grpc-status"]),delete r["grpc-status"]),"grpc-message"in r&&(s=r["grpc-message"],delete r["grpc-message"]),Wt(t,new D(n,s,r))}}}})),je(this.a,"complete",(function(){var e=t.a.g,o=2,r="",n={},s=function(e){var t={};e=(e.a&&4==Ct(e)&&e.a.getAllResponseHeaders()||"").split("\\r\\n");for(var o=0;o<e.length;o++)if(!/^[\\s\\xa0]*$/.test(e[o])){var r=Z(e[o]),n=r[0];if("string"==typeof(r=r[1])){r=r.trim();var s=t[n]||[];t[n]=s,s.push(r)}}return function(e,t){var o,r={};for(o in e)r[o]=t.call(void 0,e[o],o,e);return r}(t,(function(e){return e.join(", ")}))}(t.a);if(Object.keys(s).forEach((function(e){Pt.includes(e)||(n[e]=s[e])})),function(e,t){for(var o=0;o<e.g.length;o++)e.g[o](t)}(t,n),0!=e){switch(e){case 7:o=10;break;case 8:o=4;break;case 6:o=function(e){switch(e){case 200:return 0;case 400:return 3;case 401:return 16;case 403:return 7;case 404:return 5;case 409:return 10;case 412:return 9;case 429:return 8;case 499:return 1;case 500:default:return 2;case 501:return 12;case 503:return 14;case 504:return 4}}(t.a.getStatus());break;default:o=14}10==o&&t.l||Wt(t,new D(o,function(e){switch(e){case 0:return"No Error";case 1:return"Access denied to content document";case 2:return"File not found";case 3:return"Firefox silently errored";case 4:return"Application custom error";case 5:return"An exception occurred";case 6:return"Http response at 400 or 500 level";case 7:return"Request was aborted";case 8:return"Request timed out";case 9:return"The resource is not available offline";default:return"Unrecognized error code"}}(e)))}else e=!1,"grpc-status"in s&&(o=Number(Ut(t.a,"grpc-status")),"grpc-message"in s&&(r=Ut(t.a,"grpc-message")),0!=o&&(Wt(t,new D(o,r||"",s)),e=!0)),e||function(e){for(var t=0;t<e.c.length;t++)e.c[t]()}(t)}))}function xt(e,t){-1<(t=e.indexOf(t))&&e.splice(t,1)}function Wt(e,t){if(0!=t.code)for(var o=new D(t.code,decodeURIComponent(t.message||""),t.metadata),r=0;r<e.f.length;r++)e.f[r](o);for(t={code:t.code,details:decodeURIComponent(t.message||""),metadata:t.metadata},o=0;o<e.h.length;o++)e.h[o](t)}function Ht(e,t){e=void 0===e?{}:e,this.a=e.format||T("format",e)||"text",this.g=e.aa||T("suppressCorsPreflight",e)||!1,this.f=e.withCredentials||T("withCredentials",e)||!1,this.b=e.$||T("streamInterceptors",e)||[],this.h=e.ba||T("unaryInterceptors",e)||[],this.c=t||null}function Vt(e,t,o){var r=t.getMethodDescriptor(),n=o+r.name;(o=e.c?e.c:new Tt).M=e.f;var s=new Ft({Z:o});s.m=r.b;var i=t.getMetadata();for(a in i)o.headers.set(a,i[a]);if("text"==e.a?(o.headers.set("Content-Type","application/grpc-web-text"),o.headers.set("Accept","application/grpc-web-text")):o.headers.set("Content-Type","application/grpc-web+proto"),o.headers.set("X-User-Agent","grpc-web-javascript/0.1"),o.headers.set("X-Grpc-Web","1"),o.headers.has("deadline")){var a=Number(o.headers.get("deadline"));a=Math.ceil(a-(new Date).getTime()),o.headers.delete("deadline"),1/0===a&&(a=0),0<a&&(o.headers.set("grpc-timeout",a+"m"),o.h=Math.max(0,Math.max(1e3,Math.ceil(1.1*a))))}if(e.g){a={};for(var g=p((i=o.headers).keys()),l=g.next();!l.done;l=g.next())a[l=l.value]=i.get(l);o.headers.clear();e:{for(u in a){var u=!1;break e}u=!0}u||(a=function(e){var t="";return function(e,t){for(var o in e)t.call(void 0,e[o],o,e)}(e,(function(e,o){t+=o,t+=":",t+=e,t+="\\r\\n"})),t}(a),"string"==typeof n?(u=encodeURIComponent("$httpHeaders"),(u+=a=null!=a?"="+encodeURIComponent(String(a)):"")&&(0>(a=n.indexOf("#"))&&(a=n.length),0>(i=n.indexOf("?"))||i>a?(i=a,g=""):g=n.substring(i+1,a),a=(n=[n.substr(0,i),g,n.substr(a)])[1],n[1]=u?a?a+"&"+u:u:a,n=n[0]+(n[1]?"?"+n[1]:"")+n[2])):n.a("$httpHeaders",a))}for(r=(t=(0,r.a)(t.getRequestMessage())).length,u=[0,0,0,0],a=new Uint8Array(5+r),i=3;0<=i;i--)u[i]=r%256,r>>>=8;if(a.set(new Uint8Array(u),1),a.set(t,5),t=a,"text"==e.a){var c;for(e=t,void 0===c&&(c=0),Bt(),c=Lt[c],t=Array(Math.floor(e.length/3)),r=c[64]||"",u=a=0;a<e.length-2;a+=3){l=e[a];var f=e[a+1];g=e[a+2],i=c[l>>2],l=c[(3&l)<<4|f>>4],f=c[(15&f)<<2|g>>6],g=c[63&g],t[u++]=i+l+f+g}switch(i=0,g=r,e.length-a){case 2:g=c[(15&(i=e[a+1]))<<2]||r;case 1:e=e[a],t[u]=c[e>>2]+c[(3&e)<<4|i>>4]+g+r}t=t.join("")}else"binary"==e.a&&(o.m="arraybuffer");return function(e,t,o){if(e.a)throw Error("[goog.net.XhrIo] Object is active with another request="+e.v+"; newUri="+t);e.v=t,e.l="",e.g=0,e.P="POST",e.L=!1,e.c=!0,e.a=e.C?gt(e.C):gt(Ye),e.J=e.C?it(e.C):it(Ye),e.a.onreadystatechange=w(e.R,e);try{nt(e.b,Mt(e,"Opening Xhr")),e.N=!0,e.a.open("POST",String(t),!0),e.N=!1}catch(t){return nt(e.b,Mt(e,"Error opening Xhr: "+t.message)),void Rt(e,t)}t=o||"";var r=(o=e.headers.clone()).G().find((function(e){return"content-type"==e.toLowerCase()})),n=E.FormData&&t instanceof E.FormData;!(0<=k(It,"POST"))||r||n||o.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),o.forEach((function(e,t){this.a.setRequestHeader(t,e)}),e),e.m&&(e.a.responseType=e.m),"withCredentials"in e.a&&e.a.withCredentials!==e.M&&(e.a.withCredentials=e.M);try{Nt(e),0<e.h&&(e.I=function(e){return oe&&ce()&&"number"==typeof e.timeout&&void 0!==e.ontimeout}(e.a),nt(e.b,Mt(e,"Will abort after "+e.h+"ms if incomplete, xhr2 "+e.I)),e.I?(e.a.timeout=e.h,e.a.ontimeout=w(e.T,e)):e.w=He(e.T,e.h,e)),nt(e.b,Mt(e,"Sending request")),e.s=!0,e.a.send(t),e.s=!1}catch(t){nt(e.b,Mt(e,"Send error: "+t.message)),Rt(e,t)}}(o,n,t),s}function Gt(e,t,o){var r=!1,n=null,s=!1;e.on("data",(function(e){r=!0,n=e})),e.on("error",(function(e){0==e.code||s||(s=!0,t(e,null))})),e.on("status",(function(e){0==e.code||s?o&&t(null,null,e):(s=!0,t({code:e.code,message:e.details,metadata:e.metadata},null))})),o&&e.on("metadata",(function(e){t(null,null,null,e)})),e.on("end",(function(){s||(r?t(null,n):t({code:2,message:"Incomplete response"})),o&&t(null,null)}))}function kt(e,t){var o=e;return t.forEach((function(e){var t=o;o=function(o){return e.intercept(o,t)}})),o}Ft.prototype.on=function(e,t){return"data"==e?this.b.push(t):"status"==e?this.h.push(t):"metadata"==e?this.g.push(t):"end"==e?this.c.push(t):"error"==e&&this.f.push(t),this},Ft.prototype.removeListener=function(e,t){return"data"==e?xt(this.b,t):"status"==e?xt(this.h,t):"metadata"==e?xt(this.g,t):"end"==e?xt(this.c,t):"error"==e&&xt(this.f,t),this},Ft.prototype.cancel=function(){this.l=!0,this.a.abort()},Ft.prototype.cancel=Ft.prototype.cancel,Ft.prototype.removeListener=Ft.prototype.removeListener,Ft.prototype.on=Ft.prototype.on,Ht.prototype.X=function(e,t,o,r,n){var s=this,i=e.substr(0,e.length-r.name.length);return Gt(e=kt((function(e){return Vt(s,e,i)}),this.b).call(this,L(r,t,o)),n,!1),new B(e)},Ht.prototype.S=function(e,t,o,r){var n=this,s=e.substr(0,e.length-r.name.length);return kt((function(e){return new Promise((function(t,o){var r,i,a;Gt(Vt(n,e,s),(function(n,s,g,l){n?o(n):s?a=s:g?i=g:l?r=l:(n=e.getMethodDescriptor(),t(new M(a,n,s=void 0===(s=r)?{}:s,void 0===i?null:i)))}),!0)}))}),this.h).call(this,L(r,t,o)).then((function(e){return e.getResponseMessage()}))},Ht.prototype.unaryCall=function(e,t,o,r){return this.S(e,t,o,r)},Ht.prototype.Y=function(e,t,o,r){var n=this,s=e.substr(0,e.length-r.name.length);return kt((function(e){return Vt(n,e,s)}),this.b).call(this,L(r,t,o))},Ht.prototype.serverStreaming=Ht.prototype.Y,Ht.prototype.unaryCall=Ht.prototype.unaryCall,Ht.prototype.thenableCall=Ht.prototype.S,Ht.prototype.rpcCall=Ht.prototype.X,e.exports.GrpcWebClientBase=Ht,e.exports.StatusCode={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,UNAUTHENTICATED:16,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15},e.exports.MethodDescriptor=function(e,t,o,r,n,s){this.name=e,this.a=n,this.b=s},e.exports.MethodType={UNARY:"unary",SERVER_STREAMING:"server_streaming",BIDI_STREAMING:"bidi_streaming"}}},__webpack_module_cache__={};function __nested_webpack_require_282909__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(o.exports,o,o.exports,__nested_webpack_require_282909__),o.exports}__nested_webpack_require_282909__.d=(e,t)=>{for(var o in t)__nested_webpack_require_282909__.o(t,o)&&!__nested_webpack_require_282909__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__nested_webpack_require_282909__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__nested_webpack_require_282909__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_282909__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};return(()=>{"use strict";function e(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}__nested_webpack_require_282909__.r(__webpack_exports__),__nested_webpack_require_282909__.d(__webpack_exports__,{InfoService:()=>c,SessionInfo:()=>r,VersionInfo:()=>t});var t=function(){function t(e){var o=e.major,r=e.minor,n=e.patch,s=e.preRelease,i=e.build;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.major=o,this.minor=r,this.patch=n,this.preRelease=s,this.build=i}var o,r;return o=t,(r=[{key:"noBuild",value:function(){var e=new t(this);return e.build=void 0,e}},{key:"noPreRelease",value:function(){var e=new t(this);return e.preRelease=void 0,e}},{key:"toString",value:function(){var e="".concat(this.major,".").concat(this.minor,".").concat(this.patch);return this.preRelease&&(e+="-".concat(this.preRelease)),this.build&&(e+="+".concat(this.build)),e}}])&&e(o.prototype,r),t}();function o(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var r=function(){function e(t){var o=t.realm,r=t.username,n=t.roles,s=t.permissions,i=t.expires;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.realm=o,this.username=r,this.roles=n||[],this.permissions=s||[],this.expires=i}var t,r;return t=e,(r=[{key:"implies",value:function(e){if(!this.permissions)return!1;for(var t=e.split(":"),o=["*",e],r=1;r<t.length;r++)o.push(t.slice(0,r).join(":")+"*");return this.permissions.filter((function(e){return o.indexOf(e)>-1})).length>0}}])&&o(t.prototype,r),e}(),n=__nested_webpack_require_282909__(661);function s(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?s(Object(o),!0).forEach((function(t){a(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):s(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function g(e,t,o,r,n,s,i){try{var a=e[s](i),g=a.value}catch(e){return void o(e)}a.done?t(g):Promise.resolve(g).then(r,n)}function l(e){return function(){var t=this,o=arguments;return new Promise((function(r,n){var s=e.apply(t,o);function i(e){g(s,r,n,i,a,"next",e)}function a(e){g(s,r,n,i,a,"throw",e)}i(void 0)}))}}function u(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var c=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.uri=t||"/api"}var o,s,a,g,c,p,f;return o=e,s=[{key:"getVersionInfo",value:(f=l(regeneratorRuntime.mark((function e(){var o,r,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=new n.h.v1.GeneralInfoServicePromiseClient(this.uri,null,null),r=new n.h.v1.GetVersionInfoRequest,e.next=4,o.getVersionInfo(r,{});case 4:return s=e.sent,e.abrupt("return",new t(s.getVersionInfo().toObject()));case 6:case"end":return e.stop()}}),e,this)}))),function(){return f.apply(this,arguments)})},{key:"_getSessionInfo",value:(p=l(regeneratorRuntime.mark((function e(t,o){var s,a,g,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s={},t&&(s.authentication="Basic "+btoa("".concat(t,":").concat(o))),a=new n.h.v1.GeneralInfoServicePromiseClient(this.uri,null,null),g=new n.h.v1.GetSessionInfoRequest,e.next=6,a.getSessionInfo(g,s);case 6:return l=e.sent,e.abrupt("return",new r(i(i({},l.toObject()),{},{roles:l.getRolesList(),permissions:l.getPermissionsList()})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return p.apply(this,arguments)})},{key:"getSessionInfo",value:(c=l(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getSessionInfo();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"login",value:(g=l(regeneratorRuntime.mark((function e(t,o){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getSessionInfo(t,o);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return g.apply(this,arguments)})},{key:"logout",value:(a=l(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._getSessionInfo("logout","");case 3:throw e.sent,new Error("Logout did not proceed correctly. Something went wrong and it looks like a programming error in the webui. Please report");case 7:if(e.prev=7,e.t0=e.catch(0),16!==e.t0.code){e.next=12;break}return e.abrupt("return",!0);case 12:throw e.t0;case 13:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return a.apply(this,arguments)})}],s&&u(o.prototype,s),e}()})(),__webpack_exports__})()}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YW9zREJXZWJ1aTIvLi9ub2RlX21vZHVsZXMvQGluZGlzY2FsZS9jYW9zZGItd2VidWktaW5mby1zZXJ2aWNlL2Rpc3QvY2Fvc2RiLXdlYnVpLWluZm8tc2VydmljZS5qcz83ODEzIl0sInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuQ2Fvc0RCSW5mb1NlcnZpY2U9dCgpOmUuQ2Fvc0RCSW5mb1NlcnZpY2U9dCgpfShzZWxmLChmdW5jdGlvbigpe3JldHVybigoKT0+e3ZhciBfX3dlYnBhY2tfbW9kdWxlc19fPXs2NjE6KGUsdCxvKT0+e3ZhciByPXt9O3IudjE9byg5NTgpLHQuaD1yfSw5NTg6KGUsdCxvKT0+e3ZhciByPXt9O3Iud2ViPW8oNDApO3ZhciBuPXtjYW9zZGI6e319O24uY2Fvc2RiLmluZm89e30sbi5jYW9zZGIuaW5mby52MT1vKDk4OCksbi5jYW9zZGIuaW5mby52MS5HZW5lcmFsSW5mb1NlcnZpY2VDbGllbnQ9ZnVuY3Rpb24oZSx0LG8pe298fChvPXt9KSxvLmZvcm1hdD1cInRleHRcIix0aGlzLmNsaWVudF89bmV3IHIud2ViLkdycGNXZWJDbGllbnRCYXNlKG8pLHRoaXMuaG9zdG5hbWVfPWV9LG4uY2Fvc2RiLmluZm8udjEuR2VuZXJhbEluZm9TZXJ2aWNlUHJvbWlzZUNsaWVudD1mdW5jdGlvbihlLHQsbyl7b3x8KG89e30pLG8uZm9ybWF0PVwidGV4dFwiLHRoaXMuY2xpZW50Xz1uZXcgci53ZWIuR3JwY1dlYkNsaWVudEJhc2UobyksdGhpcy5ob3N0bmFtZV89ZX07dmFyIHM9bmV3IHIud2ViLk1ldGhvZERlc2NyaXB0b3IoXCIvY2Fvc2RiLmluZm8udjEuR2VuZXJhbEluZm9TZXJ2aWNlL0dldFZlcnNpb25JbmZvXCIsci53ZWIuTWV0aG9kVHlwZS5VTkFSWSxuLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdCxuLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNlcmlhbGl6ZUJpbmFyeSgpfSksbi5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlLmRlc2VyaWFsaXplQmluYXJ5KTtuLmNhb3NkYi5pbmZvLnYxLkdlbmVyYWxJbmZvU2VydmljZUNsaWVudC5wcm90b3R5cGUuZ2V0VmVyc2lvbkluZm89ZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0aGlzLmNsaWVudF8ucnBjQ2FsbCh0aGlzLmhvc3RuYW1lXytcIi9jYW9zZGIuaW5mby52MS5HZW5lcmFsSW5mb1NlcnZpY2UvR2V0VmVyc2lvbkluZm9cIixlLHR8fHt9LHMsbyl9LG4uY2Fvc2RiLmluZm8udjEuR2VuZXJhbEluZm9TZXJ2aWNlUHJvbWlzZUNsaWVudC5wcm90b3R5cGUuZ2V0VmVyc2lvbkluZm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5jbGllbnRfLnVuYXJ5Q2FsbCh0aGlzLmhvc3RuYW1lXytcIi9jYW9zZGIuaW5mby52MS5HZW5lcmFsSW5mb1NlcnZpY2UvR2V0VmVyc2lvbkluZm9cIixlLHR8fHt9LHMpfTt2YXIgaT1uZXcgci53ZWIuTWV0aG9kRGVzY3JpcHRvcihcIi9jYW9zZGIuaW5mby52MS5HZW5lcmFsSW5mb1NlcnZpY2UvR2V0U2Vzc2lvbkluZm9cIixyLndlYi5NZXRob2RUeXBlLlVOQVJZLG4uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXF1ZXN0LG4uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VyaWFsaXplQmluYXJ5KCl9KSxuLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UuZGVzZXJpYWxpemVCaW5hcnkpO24uY2Fvc2RiLmluZm8udjEuR2VuZXJhbEluZm9TZXJ2aWNlQ2xpZW50LnByb3RvdHlwZS5nZXRTZXNzaW9uSW5mbz1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIHRoaXMuY2xpZW50Xy5ycGNDYWxsKHRoaXMuaG9zdG5hbWVfK1wiL2Nhb3NkYi5pbmZvLnYxLkdlbmVyYWxJbmZvU2VydmljZS9HZXRTZXNzaW9uSW5mb1wiLGUsdHx8e30saSxvKX0sbi5jYW9zZGIuaW5mby52MS5HZW5lcmFsSW5mb1NlcnZpY2VQcm9taXNlQ2xpZW50LnByb3RvdHlwZS5nZXRTZXNzaW9uSW5mbz1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmNsaWVudF8udW5hcnlDYWxsKHRoaXMuaG9zdG5hbWVfK1wiL2Nhb3NkYi5pbmZvLnYxLkdlbmVyYWxJbmZvU2VydmljZS9HZXRTZXNzaW9uSW5mb1wiLGUsdHx8e30saSl9LGUuZXhwb3J0cz1uLmNhb3NkYi5pbmZvLnYxfSw5ODg6KGUsdCxvKT0+e3ZhciByPW8oMTkpLG49cixzPUZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtuLmV4cG9ydFN5bWJvbChcInByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVxdWVzdFwiLG51bGwscyksbi5leHBvcnRTeW1ib2woXCJwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlXCIsbnVsbCxzKSxuLmV4cG9ydFN5bWJvbChcInByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdFwiLG51bGwscyksbi5leHBvcnRTeW1ib2woXCJwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlXCIsbnVsbCxzKSxuLmV4cG9ydFN5bWJvbChcInByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvXCIsbnVsbCxzKSxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mbz1mdW5jdGlvbihlKXtyLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxuLmluaGVyaXRzKHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLHIuTWVzc2FnZSksbi5ERUJVRyYmIUNPTVBJTEVEJiYocHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8uZGlzcGxheU5hbWU9XCJwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mb1wiKSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1JlcXVlc3Q9ZnVuY3Rpb24oZSl7ci5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sbi5pbmhlcml0cyhwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1JlcXVlc3Qsci5NZXNzYWdlKSxuLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1JlcXVlc3QuZGlzcGxheU5hbWU9XCJwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1JlcXVlc3RcIikscHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZT1mdW5jdGlvbihlKXtyLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxuLmluaGVyaXRzKHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2Usci5NZXNzYWdlKSxuLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlLmRpc3BsYXlOYW1lPVwicHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZVwiKSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3Q9ZnVuY3Rpb24oZSl7ci5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sbi5pbmhlcml0cyhwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3Qsci5NZXNzYWdlKSxuLkRFQlVHJiYhQ09NUElMRUQmJihwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QuZGlzcGxheU5hbWU9XCJwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3RcIikscHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZT1mdW5jdGlvbihlKXtyLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnJlcGVhdGVkRmllbGRzXyxudWxsKX0sbi5pbmhlcml0cyhwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLHIuTWVzc2FnZSksbi5ERUJVRyYmIUNPTVBJTEVEJiYocHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5kaXNwbGF5TmFtZT1cInByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2VcIiksci5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8udG9PYmplY3QoZSx0aGlzKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8udG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgbz17bWFqb3I6ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxLDApLG1pbm9yOnIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSxwYXRjaDpyLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCkscHJlUmVsZWFzZTpyLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDQsXCJcIiksYnVpbGQ6ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw1LFwiXCIpfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyByLkJpbmFyeVJlYWRlcihlKSxvPW5ldyBwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mbztyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG8sdCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIG89dC5yZWFkSW50MzIoKTtlLnNldE1ham9yKG8pO2JyZWFrO2Nhc2UgMjpvPXQucmVhZEludDMyKCksZS5zZXRNaW5vcihvKTticmVhaztjYXNlIDM6bz10LnJlYWRJbnQzMigpLGUuc2V0UGF0Y2gobyk7YnJlYWs7Y2FzZSA0Om89dC5yZWFkU3RyaW5nKCksZS5zZXRQcmVSZWxlYXNlKG8pO2JyZWFrO2Nhc2UgNTpvPXQucmVhZFN0cmluZygpLGUuc2V0QnVpbGQobyk7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHIuQmluYXJ5V3JpdGVyO3JldHVybiBwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIG89dm9pZCAwOzAhPT0obz1lLmdldE1ham9yKCkpJiZ0LndyaXRlSW50MzIoMSxvKSwwIT09KG89ZS5nZXRNaW5vcigpKSYmdC53cml0ZUludDMyKDIsbyksMCE9PShvPWUuZ2V0UGF0Y2goKSkmJnQud3JpdGVJbnQzMigzLG8pLChvPWUuZ2V0UHJlUmVsZWFzZSgpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZyg0LG8pLChvPWUuZ2V0QnVpbGQoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoNSxvKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8ucHJvdG90eXBlLmdldE1ham9yPWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8ucHJvdG90eXBlLnNldE1ham9yPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxLGUpfSxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5wcm90b3R5cGUuZ2V0TWlub3I9ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5wcm90b3R5cGUuc2V0TWlub3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLnByb3RvdHlwZS5nZXRQYXRjaD1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsMCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLlZlcnNpb25JbmZvLnByb3RvdHlwZS5zZXRQYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8ucHJvdG90eXBlLmdldFByZVJlbGVhc2U9ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw0LFwiXCIpfSxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5wcm90b3R5cGUuc2V0UHJlUmVsZWFzZT1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsNCxlKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8ucHJvdG90eXBlLmdldEJ1aWxkPWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSxcIlwiKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8ucHJvdG90eXBlLnNldEJ1aWxkPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcyw1LGUpfSxyLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LnRvT2JqZWN0KGUsdGhpcyl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBvPXt9O3JldHVybiBlJiYoby4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxvfSkscHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyByLkJpbmFyeVJlYWRlcihlKSxvPW5ldyBwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1JlcXVlc3Q7cmV0dXJuIHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIobyx0KX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOyl0LmdldEZpZWxkTnVtYmVyKCksdC5za2lwRmllbGQoKTtyZXR1cm4gZX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgci5CaW5hcnlXcml0ZXI7cmV0dXJuIHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVxdWVzdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe30sci5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlLnRvT2JqZWN0KGUsdGhpcyl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgbyxyPXt2ZXJzaW9uSW5mbzoobz10LmdldFZlcnNpb25JbmZvKCkpJiZwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby50b09iamVjdChlLG8pfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHIuQmluYXJ5UmVhZGVyKGUpLG89bmV3IHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2U7cmV0dXJuIHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKG8sdCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KWlmKDE9PT10LmdldEZpZWxkTnVtYmVyKCkpe3ZhciBvPW5ldyBwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mbzt0LnJlYWRNZXNzYWdlKG8scHJvdG8uY2Fvc2RiLmluZm8udjEuVmVyc2lvbkluZm8uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldFZlcnNpb25JbmZvKG8pfWVsc2UgdC5za2lwRmllbGQoKTtyZXR1cm4gZX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHIuQmluYXJ5V3JpdGVyO3JldHVybiBwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciBvO251bGwhPShvPWUuZ2V0VmVyc2lvbkluZm8oKSkmJnQud3JpdGVNZXNzYWdlKDEsbyxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mby5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcil9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFZlcnNpb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLmdldFZlcnNpb25JbmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxwcm90by5jYW9zZGIuaW5mby52MS5WZXJzaW9uSW5mbywxKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuc2V0VmVyc2lvbkluZm89ZnVuY3Rpb24oZSl7cmV0dXJuIHIuTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywxLGUpfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlLnByb3RvdHlwZS5jbGVhclZlcnNpb25JbmZvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0VmVyc2lvbkluZm8odm9pZCAwKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0VmVyc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuaGFzVmVyc2lvbkluZm89ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9ci5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMSl9LHIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QudG9PYmplY3QoZSx0aGlzKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXF1ZXN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIG89e307cmV0dXJuIGUmJihvLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG99KSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHIuQmluYXJ5UmVhZGVyKGUpLG89bmV3IHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVxdWVzdDtyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXF1ZXN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihvLHQpfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXQuZ2V0RmllbGROdW1iZXIoKSx0LnNraXBGaWVsZCgpO3JldHVybiBlfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1JlcXVlc3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyByLkJpbmFyeVdyaXRlcjtyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7fSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnJlcGVhdGVkRmllbGRzXz1bMyw1XSxyLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UudG9PYmplY3QoZSx0aGlzKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciBvLG49e3JlYWxtOnIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSxcIlwiKSx1c2VybmFtZTpyLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsXCJcIikscm9sZXNMaXN0Om51bGw9PShvPXIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKHQsMykpP3ZvaWQgMDpvLGV4cGlyZXM6ci5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApLHBlcm1pc3Npb25zTGlzdDpudWxsPT0obz1yLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0LDUpKT92b2lkIDA6b307cmV0dXJuIGUmJihuLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG59KSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyByLkJpbmFyeVJlYWRlcihlKSxvPW5ldyBwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlO3JldHVybiBwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihvLHQpfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIG89dC5yZWFkU3RyaW5nKCk7ZS5zZXRSZWFsbShvKTticmVhaztjYXNlIDI6bz10LnJlYWRTdHJpbmcoKSxlLnNldFVzZXJuYW1lKG8pO2JyZWFrO2Nhc2UgMzpvPXQucmVhZFN0cmluZygpLGUuYWRkUm9sZXMobyk7YnJlYWs7Y2FzZSA0Om89dC5yZWFkSW50NjQoKSxlLnNldEV4cGlyZXMobyk7YnJlYWs7Y2FzZSA1Om89dC5yZWFkU3RyaW5nKCksZS5hZGRQZXJtaXNzaW9ucyhvKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyByLkJpbmFyeVdyaXRlcjtyZXR1cm4gcHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgbz12b2lkIDA7KG89ZS5nZXRSZWFsbSgpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZygxLG8pLChvPWUuZ2V0VXNlcm5hbWUoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoMixvKSwobz1lLmdldFJvbGVzTGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkU3RyaW5nKDMsbyksMCE9PShvPWUuZ2V0RXhwaXJlcygpKSYmdC53cml0ZUludDY0KDQsbyksKG89ZS5nZXRQZXJtaXNzaW9uc0xpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZFN0cmluZyg1LG8pfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnByb3RvdHlwZS5nZXRSZWFsbT1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsXCJcIil9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLnNldFJlYWxtPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywxLGUpfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnByb3RvdHlwZS5nZXRVc2VybmFtZT1mdW5jdGlvbigpe3JldHVybiByLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsXCJcIil9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLnNldFVzZXJuYW1lPWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywyLGUpfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnByb3RvdHlwZS5nZXRSb2xlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5NZXNzYWdlLmdldFJlcGVhdGVkRmllbGQodGhpcywzKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuc2V0Um9sZXNMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiByLk1lc3NhZ2Uuc2V0RmllbGQodGhpcywzLGV8fFtdKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuYWRkUm9sZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRGaWVsZCh0aGlzLDMsZSx0KX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuY2xlYXJSb2xlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRSb2xlc0xpc3QoW10pfSxwcm90by5jYW9zZGIuaW5mby52MS5HZXRTZXNzaW9uSW5mb1Jlc3BvbnNlLnByb3RvdHlwZS5nZXRFeHBpcmVzPWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuc2V0RXhwaXJlcz1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0scHJvdG8uY2Fvc2RiLmluZm8udjEuR2V0U2Vzc2lvbkluZm9SZXNwb25zZS5wcm90b3R5cGUuZ2V0UGVybWlzc2lvbnNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKHRoaXMsNSl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLnNldFBlcm1pc3Npb25zTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gci5NZXNzYWdlLnNldEZpZWxkKHRoaXMsNSxlfHxbXSl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLmFkZFBlcm1pc3Npb25zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQodGhpcyw1LGUsdCl9LHByb3RvLmNhb3NkYi5pbmZvLnYxLkdldFNlc3Npb25JbmZvUmVzcG9uc2UucHJvdG90eXBlLmNsZWFyUGVybWlzc2lvbnNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0UGVybWlzc2lvbnNMaXN0KFtdKX0sbi5vYmplY3QuZXh0ZW5kKHQscHJvdG8uY2Fvc2RiLmluZm8udjEpfSwxOTpmdW5jdGlvbihfX3VudXNlZF93ZWJwYWNrX21vZHVsZSxleHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e30sJGpzY29tcC5maW5kSW50ZXJuYWw9ZnVuY3Rpb24oZSx0LG8pe2UgaW5zdGFuY2VvZiBTdHJpbmcmJihlPVN0cmluZyhlKSk7Zm9yKHZhciByPWUubGVuZ3RoLG49MDtuPHI7bisrKXt2YXIgcz1lW25dO2lmKHQuY2FsbChvLHMsbixlKSlyZXR1cm57aTpuLHY6c319cmV0dXJue2k6LTEsdjp2b2lkIDB9fSwkanNjb21wLkFTU1VNRV9FUzU9ITEsJGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMSwkanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExLCRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMSwkanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxvKXtlIT1BcnJheS5wcm90b3R5cGUmJmUhPU9iamVjdC5wcm90b3R5cGUmJihlW3RdPW8udmFsdWUpfSwkanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihlKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3c9PT1lP2U6dm9pZCAwIT09X193ZWJwYWNrX3JlcXVpcmVfXy5nJiZudWxsIT1fX3dlYnBhY2tfcmVxdWlyZV9fLmc/X193ZWJwYWNrX3JlcXVpcmVfXy5nOmV9LCRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpLCRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oZSx0LG8scil7aWYodCl7Zm9yKG89JGpzY29tcC5nbG9iYWwsZT1lLnNwbGl0KFwiLlwiKSxyPTA7cjxlLmxlbmd0aC0xO3IrKyl7dmFyIG49ZVtyXTtuIGluIG98fChvW25dPXt9KSxvPW9bbl19KHQ9dChyPW9bZT1lW2UubGVuZ3RoLTFdXSkpIT1yJiZudWxsIT10JiYkanNjb21wLmRlZmluZVByb3BlcnR5KG8sZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KX19LCRqc2NvbXAucG9seWZpbGwoXCJBcnJheS5wcm90b3R5cGUuZmluZEluZGV4XCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe3JldHVybiAkanNjb21wLmZpbmRJbnRlcm5hbCh0aGlzLGUsdCkuaX19KSxcImVzNlwiLFwiZXMzXCIpLCRqc2NvbXAuY2hlY2tTdHJpbmdBcmdzPWZ1bmN0aW9uKGUsdCxvKXtpZihudWxsPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgJ3RoaXMnIHZhbHVlIGZvciBTdHJpbmcucHJvdG90eXBlLlwiK28rXCIgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWRcIik7aWYodCBpbnN0YW5jZW9mIFJlZ0V4cCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS5cIitvK1wiIG11c3Qgbm90IGJlIGEgcmVndWxhciBleHByZXNzaW9uXCIpO3JldHVybiBlK1wiXCJ9LCRqc2NvbXAucG9seWZpbGwoXCJTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe3ZhciBvPSRqc2NvbXAuY2hlY2tTdHJpbmdBcmdzKHRoaXMsZSxcImVuZHNXaXRoXCIpO2UrPVwiXCIsdm9pZCAwPT09dCYmKHQ9by5sZW5ndGgpLHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigwfHQsby5sZW5ndGgpKTtmb3IodmFyIHI9ZS5sZW5ndGg7MDxyJiYwPHQ7KWlmKG9bLS10XSE9ZVstLXJdKXJldHVybiExO3JldHVybiAwPj1yfX0pLFwiZXM2XCIsXCJlczNcIiksJGpzY29tcC5wb2x5ZmlsbChcIkFycmF5LnByb3RvdHlwZS5maW5kXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe3JldHVybiAkanNjb21wLmZpbmRJbnRlcm5hbCh0aGlzLGUsdCkudn19KSxcImVzNlwiLFwiZXMzXCIpLCRqc2NvbXAucG9seWZpbGwoXCJTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGhcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGZ1bmN0aW9uKGUsdCl7dmFyIG89JGpzY29tcC5jaGVja1N0cmluZ0FyZ3ModGhpcyxlLFwic3RhcnRzV2l0aFwiKTtlKz1cIlwiO3ZhciByPW8ubGVuZ3RoLG49ZS5sZW5ndGg7dD1NYXRoLm1heCgwLE1hdGgubWluKDB8dCxvLmxlbmd0aCkpO2Zvcih2YXIgcz0wO3M8biYmdDxyOylpZihvW3QrK10hPWVbcysrXSlyZXR1cm4hMTtyZXR1cm4gcz49bn19KSxcImVzNlwiLFwiZXMzXCIpLCRqc2NvbXAucG9seWZpbGwoXCJTdHJpbmcucHJvdG90eXBlLnJlcGVhdFwiLChmdW5jdGlvbihlKXtyZXR1cm4gZXx8ZnVuY3Rpb24oZSl7dmFyIHQ9JGpzY29tcC5jaGVja1N0cmluZ0FyZ3ModGhpcyxudWxsLFwicmVwZWF0XCIpO2lmKDA+ZXx8MTM0MjE3NzI3OTxlKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCBjb3VudCB2YWx1ZVwiKTtlfD0wO2Zvcih2YXIgbz1cIlwiO2U7KTEmZSYmKG8rPXQpLChlPj4+PTEpJiYodCs9dCk7cmV0dXJuIG99fSksXCJlczZcIixcImVzM1wiKTt2YXIgQ09NUElMRUQ9ITAsZ29vZz1nb29nfHx7fTtnb29nLmdsb2JhbD10aGlzfHxzZWxmLGdvb2cuaXNEZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWV9LGdvb2cuaXNTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGV9LGdvb2cuaXNCb29sZWFuPWZ1bmN0aW9uKGUpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgZX0sZ29vZy5pc051bWJlcj1mdW5jdGlvbihlKXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZX0sZ29vZy5leHBvcnRQYXRoXz1mdW5jdGlvbihlLHQsbyl7ZT1lLnNwbGl0KFwiLlwiKSxvPW98fGdvb2cuZ2xvYmFsLGVbMF1pbiBvfHx2b2lkIDA9PT1vLmV4ZWNTY3JpcHR8fG8uZXhlY1NjcmlwdChcInZhciBcIitlWzBdKTtmb3IodmFyIHI7ZS5sZW5ndGgmJihyPWUuc2hpZnQoKSk7KSFlLmxlbmd0aCYmZ29vZy5pc0RlZih0KT9vW3JdPXQ6bz1vW3JdJiZvW3JdIT09T2JqZWN0LnByb3RvdHlwZVtyXT9vW3JdOm9bcl09e319LGdvb2cuZGVmaW5lPWZ1bmN0aW9uKGUsdCl7aWYoIUNPTVBJTEVEKXt2YXIgbz1nb29nLmdsb2JhbC5DTE9TVVJFX1VOQ09NUElMRURfREVGSU5FUyxyPWdvb2cuZ2xvYmFsLkNMT1NVUkVfREVGSU5FUztvJiZ2b2lkIDA9PT1vLm5vZGVUeXBlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobyxlKT90PW9bZV06ciYmdm9pZCAwPT09ci5ub2RlVHlwZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsZSkmJih0PXJbZV0pfXJldHVybiB0fSxnb29nLkZFQVRVUkVTRVRfWUVBUj0yMDEyLGdvb2cuREVCVUc9ITAsZ29vZy5MT0NBTEU9XCJlblwiLGdvb2cuVFJVU1RFRF9TSVRFPSEwLGdvb2cuU1RSSUNUX01PREVfQ09NUEFUSUJMRT0hMSxnb29nLkRJU0FMTE9XX1RFU1RfT05MWV9DT0RFPUNPTVBJTEVEJiYhZ29vZy5ERUJVRyxnb29nLkVOQUJMRV9DSFJPTUVfQVBQX1NBRkVfU0NSSVBUX0xPQURJTkc9ITEsZ29vZy5wcm92aWRlPWZ1bmN0aW9uKGUpe2lmKGdvb2cuaXNJbk1vZHVsZUxvYWRlcl8oKSl0aHJvdyBFcnJvcihcImdvb2cucHJvdmlkZSBjYW5ub3QgYmUgdXNlZCB3aXRoaW4gYSBtb2R1bGUuXCIpO2lmKCFDT01QSUxFRCYmZ29vZy5pc1Byb3ZpZGVkXyhlKSl0aHJvdyBFcnJvcignTmFtZXNwYWNlIFwiJytlKydcIiBhbHJlYWR5IGRlY2xhcmVkLicpO2dvb2cuY29uc3RydWN0TmFtZXNwYWNlXyhlKX0sZ29vZy5jb25zdHJ1Y3ROYW1lc3BhY2VfPWZ1bmN0aW9uKGUsdCl7aWYoIUNPTVBJTEVEKXtkZWxldGUgZ29vZy5pbXBsaWNpdE5hbWVzcGFjZXNfW2VdO2Zvcih2YXIgbz1lOyhvPW8uc3Vic3RyaW5nKDAsby5sYXN0SW5kZXhPZihcIi5cIikpKSYmIWdvb2cuZ2V0T2JqZWN0QnlOYW1lKG8pOylnb29nLmltcGxpY2l0TmFtZXNwYWNlc19bb109ITB9Z29vZy5leHBvcnRQYXRoXyhlLHQpfSxnb29nLmdldFNjcmlwdE5vbmNlPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlIT1nb29nLmdsb2JhbD9nb29nLmdldFNjcmlwdE5vbmNlXyhlLmRvY3VtZW50KToobnVsbD09PWdvb2cuY3NwTm9uY2VfJiYoZ29vZy5jc3BOb25jZV89Z29vZy5nZXRTY3JpcHROb25jZV8oZ29vZy5nbG9iYWwuZG9jdW1lbnQpKSxnb29nLmNzcE5vbmNlXyl9LGdvb2cuTk9OQ0VfUEFUVEVSTl89L15bXFx3Ky9fLV0rWz1dezAsMn0kLyxnb29nLmNzcE5vbmNlXz1udWxsLGdvb2cuZ2V0U2NyaXB0Tm9uY2VfPWZ1bmN0aW9uKGUpe3JldHVybihlPWUucXVlcnlTZWxlY3RvciYmZS5xdWVyeVNlbGVjdG9yKFwic2NyaXB0W25vbmNlXVwiKSkmJihlPWUubm9uY2V8fGUuZ2V0QXR0cmlidXRlKFwibm9uY2VcIikpJiZnb29nLk5PTkNFX1BBVFRFUk5fLnRlc3QoZSk/ZTpcIlwifSxnb29nLlZBTElEX01PRFVMRV9SRV89L15bYS16QS1aXyRdW2EtekEtWjAtOS5fJF0qJC8sZ29vZy5tb2R1bGU9ZnVuY3Rpb24oZSl7aWYoIWdvb2cuaXNTdHJpbmcoZSl8fCFlfHwtMT09ZS5zZWFyY2goZ29vZy5WQUxJRF9NT0RVTEVfUkVfKSl0aHJvdyBFcnJvcihcIkludmFsaWQgbW9kdWxlIGlkZW50aWZpZXJcIik7aWYoIWdvb2cuaXNJbkdvb2dNb2R1bGVMb2FkZXJfKCkpdGhyb3cgRXJyb3IoXCJNb2R1bGUgXCIrZStcIiBoYXMgYmVlbiBsb2FkZWQgaW5jb3JyZWN0bHkuIE5vdGUsIG1vZHVsZXMgY2Fubm90IGJlIGxvYWRlZCBhcyBub3JtYWwgc2NyaXB0cy4gVGhleSByZXF1aXJlIHNvbWUga2luZCBvZiBwcmUtcHJvY2Vzc2luZyBzdGVwLiBZb3UncmUgbGlrZWx5IHRyeWluZyB0byBsb2FkIGEgbW9kdWxlIHZpYSBhIHNjcmlwdCB0YWcgb3IgYXMgYSBwYXJ0IG9mIGEgY29uY2F0ZW5hdGVkIGJ1bmRsZSB3aXRob3V0IHJld3JpdGluZyB0aGUgbW9kdWxlLiBGb3IgbW9yZSBpbmZvIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9jbG9zdXJlLWxpYnJhcnkvd2lraS9nb29nLm1vZHVsZTotYW4tRVM2LW1vZHVsZS1saWtlLWFsdGVybmF0aXZlLXRvLWdvb2cucHJvdmlkZS5cIik7aWYoZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZSl0aHJvdyBFcnJvcihcImdvb2cubW9kdWxlIG1heSBvbmx5IGJlIGNhbGxlZCBvbmNlIHBlciBtb2R1bGUuXCIpO2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfLm1vZHVsZU5hbWU9ZSwhQ09NUElMRUQpe2lmKGdvb2cuaXNQcm92aWRlZF8oZSkpdGhyb3cgRXJyb3IoJ05hbWVzcGFjZSBcIicrZSsnXCIgYWxyZWFkeSBkZWNsYXJlZC4nKTtkZWxldGUgZ29vZy5pbXBsaWNpdE5hbWVzcGFjZXNfW2VdfX0sZ29vZy5tb2R1bGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLm1vZHVsZS5nZXRJbnRlcm5hbF8oZSl9LGdvb2cubW9kdWxlLmdldEludGVybmFsXz1mdW5jdGlvbihlKXtpZighQ09NUElMRUQpe2lmKGUgaW4gZ29vZy5sb2FkZWRNb2R1bGVzXylyZXR1cm4gZ29vZy5sb2FkZWRNb2R1bGVzX1tlXS5leHBvcnRzO2lmKCFnb29nLmltcGxpY2l0TmFtZXNwYWNlc19bZV0pcmV0dXJuIG51bGwhPShlPWdvb2cuZ2V0T2JqZWN0QnlOYW1lKGUpKT9lOm51bGx9cmV0dXJuIG51bGx9LGdvb2cuTW9kdWxlVHlwZT17RVM2OlwiZXM2XCIsR09PRzpcImdvb2dcIn0sZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV89bnVsbCxnb29nLmlzSW5Nb2R1bGVMb2FkZXJfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuaXNJbkdvb2dNb2R1bGVMb2FkZXJfKCl8fGdvb2cuaXNJbkVzNk1vZHVsZUxvYWRlcl8oKX0sZ29vZy5pc0luR29vZ01vZHVsZUxvYWRlcl89ZnVuY3Rpb24oKXtyZXR1cm4hIWdvb2cubW9kdWxlTG9hZGVyU3RhdGVfJiZnb29nLm1vZHVsZUxvYWRlclN0YXRlXy50eXBlPT1nb29nLk1vZHVsZVR5cGUuR09PR30sZ29vZy5pc0luRXM2TW9kdWxlTG9hZGVyXz1mdW5jdGlvbigpe2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfJiZnb29nLm1vZHVsZUxvYWRlclN0YXRlXy50eXBlPT1nb29nLk1vZHVsZVR5cGUuRVM2KXJldHVybiEwO3ZhciBlPWdvb2cuZ2xvYmFsLiRqc2NvbXA7cmV0dXJuISFlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldEN1cnJlbnRNb2R1bGVQYXRoJiYhIWUuZ2V0Q3VycmVudE1vZHVsZVBhdGgoKX0sZ29vZy5tb2R1bGUuZGVjbGFyZUxlZ2FjeU5hbWVzcGFjZT1mdW5jdGlvbigpe2lmKCFDT01QSUxFRCYmIWdvb2cuaXNJbkdvb2dNb2R1bGVMb2FkZXJfKCkpdGhyb3cgRXJyb3IoXCJnb29nLm1vZHVsZS5kZWNsYXJlTGVnYWN5TmFtZXNwYWNlIG11c3QgYmUgY2FsbGVkIGZyb20gd2l0aGluIGEgZ29vZy5tb2R1bGVcIik7aWYoIUNPTVBJTEVEJiYhZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZSl0aHJvdyBFcnJvcihcImdvb2cubW9kdWxlIG11c3QgYmUgY2FsbGVkIHByaW9yIHRvIGdvb2cubW9kdWxlLmRlY2xhcmVMZWdhY3lOYW1lc3BhY2UuXCIpO2dvb2cubW9kdWxlTG9hZGVyU3RhdGVfLmRlY2xhcmVMZWdhY3lOYW1lc3BhY2U9ITB9LGdvb2cuZGVjbGFyZU1vZHVsZUlkPWZ1bmN0aW9uKGUpe2lmKCFDT01QSUxFRCl7aWYoIWdvb2cuaXNJbkVzNk1vZHVsZUxvYWRlcl8oKSl0aHJvdyBFcnJvcihcImdvb2cuZGVjbGFyZU1vZHVsZUlkIG1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBFUzYgbW9kdWxlXCIpO2lmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfJiZnb29nLm1vZHVsZUxvYWRlclN0YXRlXy5tb2R1bGVOYW1lKXRocm93IEVycm9yKFwiZ29vZy5kZWNsYXJlTW9kdWxlSWQgbWF5IG9ubHkgYmUgY2FsbGVkIG9uY2UgcGVyIG1vZHVsZS5cIik7aWYoZSBpbiBnb29nLmxvYWRlZE1vZHVsZXNfKXRocm93IEVycm9yKCdNb2R1bGUgd2l0aCBuYW1lc3BhY2UgXCInK2UrJ1wiIGFscmVhZHkgZXhpc3RzLicpfWlmKGdvb2cubW9kdWxlTG9hZGVyU3RhdGVfKWdvb2cubW9kdWxlTG9hZGVyU3RhdGVfLm1vZHVsZU5hbWU9ZTtlbHNle3ZhciB0PWdvb2cuZ2xvYmFsLiRqc2NvbXA7aWYoIXR8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQuZ2V0Q3VycmVudE1vZHVsZVBhdGgpdGhyb3cgRXJyb3IoJ01vZHVsZSB3aXRoIG5hbWVzcGFjZSBcIicrZSsnXCIgaGFzIGJlZW4gbG9hZGVkIGluY29ycmVjdGx5LicpO3Q9dC5yZXF1aXJlKHQuZ2V0Q3VycmVudE1vZHVsZVBhdGgoKSksZ29vZy5sb2FkZWRNb2R1bGVzX1tlXT17ZXhwb3J0czp0LHR5cGU6Z29vZy5Nb2R1bGVUeXBlLkVTNixtb2R1bGVJZDplfX19LGdvb2cuc2V0VGVzdE9ubHk9ZnVuY3Rpb24oZSl7aWYoZ29vZy5ESVNBTExPV19URVNUX09OTFlfQ09ERSl0aHJvdyBlPWV8fFwiXCIsRXJyb3IoXCJJbXBvcnRpbmcgdGVzdC1vbmx5IGNvZGUgaW50byBub24tZGVidWcgZW52aXJvbm1lbnRcIisoZT9cIjogXCIrZTpcIi5cIikpfSxnb29nLmZvcndhcmREZWNsYXJlPWZ1bmN0aW9uKGUpe30sQ09NUElMRUR8fChnb29nLmlzUHJvdmlkZWRfPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluIGdvb2cubG9hZGVkTW9kdWxlc198fCFnb29nLmltcGxpY2l0TmFtZXNwYWNlc19bZV0mJmdvb2cuaXNEZWZBbmROb3ROdWxsKGdvb2cuZ2V0T2JqZWN0QnlOYW1lKGUpKX0sZ29vZy5pbXBsaWNpdE5hbWVzcGFjZXNfPXtcImdvb2cubW9kdWxlXCI6ITB9KSxnb29nLmdldE9iamVjdEJ5TmFtZT1mdW5jdGlvbihlLHQpe2U9ZS5zcGxpdChcIi5cIiksdD10fHxnb29nLmdsb2JhbDtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZih0PXRbZVtvXV0sIWdvb2cuaXNEZWZBbmROb3ROdWxsKHQpKXJldHVybiBudWxsO3JldHVybiB0fSxnb29nLmdsb2JhbGl6ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiB0PXR8fGdvb2cuZ2xvYmFsLGUpdFtvXT1lW29dfSxnb29nLmFkZERlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG8scil7IUNPTVBJTEVEJiZnb29nLkRFUEVOREVOQ0lFU19FTkFCTEVEJiZnb29nLmRlYnVnTG9hZGVyXy5hZGREZXBlbmRlbmN5KGUsdCxvLHIpfSxnb29nLkVOQUJMRV9ERUJVR19MT0FERVI9ITAsZ29vZy5sb2dUb0NvbnNvbGVfPWZ1bmN0aW9uKGUpe2dvb2cuZ2xvYmFsLmNvbnNvbGUmJmdvb2cuZ2xvYmFsLmNvbnNvbGUuZXJyb3IoZSl9LGdvb2cucmVxdWlyZT1mdW5jdGlvbihlKXtpZighQ09NUElMRUQpe2lmKGdvb2cuRU5BQkxFX0RFQlVHX0xPQURFUiYmZ29vZy5kZWJ1Z0xvYWRlcl8ucmVxdWVzdGVkKGUpLGdvb2cuaXNQcm92aWRlZF8oZSkpe2lmKGdvb2cuaXNJbk1vZHVsZUxvYWRlcl8oKSlyZXR1cm4gZ29vZy5tb2R1bGUuZ2V0SW50ZXJuYWxfKGUpfWVsc2UgaWYoZ29vZy5FTkFCTEVfREVCVUdfTE9BREVSKXt2YXIgdD1nb29nLm1vZHVsZUxvYWRlclN0YXRlXztnb29nLm1vZHVsZUxvYWRlclN0YXRlXz1udWxsO3RyeXtnb29nLmRlYnVnTG9hZGVyXy5sb2FkXyhlKX1maW5hbGx5e2dvb2cubW9kdWxlTG9hZGVyU3RhdGVfPXR9fXJldHVybiBudWxsfX0sZ29vZy5yZXF1aXJlVHlwZT1mdW5jdGlvbihlKXtyZXR1cm57fX0sZ29vZy5iYXNlUGF0aD1cIlwiLGdvb2cubnVsbEZ1bmN0aW9uPWZ1bmN0aW9uKCl7fSxnb29nLmFic3RyYWN0TWV0aG9kPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoXCJ1bmltcGxlbWVudGVkIGFic3RyYWN0IG1ldGhvZFwiKX0sZ29vZy5hZGRTaW5nbGV0b25HZXR0ZXI9ZnVuY3Rpb24oZSl7ZS5pbnN0YW5jZV89dm9pZCAwLGUuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gZS5pbnN0YW5jZV8/ZS5pbnN0YW5jZV86KGdvb2cuREVCVUcmJihnb29nLmluc3RhbnRpYXRlZFNpbmdsZXRvbnNfW2dvb2cuaW5zdGFudGlhdGVkU2luZ2xldG9uc18ubGVuZ3RoXT1lKSxlLmluc3RhbmNlXz1uZXcgZSl9fSxnb29nLmluc3RhbnRpYXRlZFNpbmdsZXRvbnNfPVtdLGdvb2cuTE9BRF9NT0RVTEVfVVNJTkdfRVZBTD0hMCxnb29nLlNFQUxfTU9EVUxFX0VYUE9SVFM9Z29vZy5ERUJVRyxnb29nLmxvYWRlZE1vZHVsZXNfPXt9LGdvb2cuREVQRU5ERU5DSUVTX0VOQUJMRUQ9IUNPTVBJTEVEJiZnb29nLkVOQUJMRV9ERUJVR19MT0FERVIsZ29vZy5UUkFOU1BJTEU9XCJkZXRlY3RcIixnb29nLkFTU1VNRV9FU19NT0RVTEVTX1RSQU5TUElMRUQ9ITEsZ29vZy5UUkFOU1BJTEVfVE9fTEFOR1VBR0U9XCJcIixnb29nLlRSQU5TUElMRVI9XCJ0cmFuc3BpbGUuanNcIixnb29nLmhhc0JhZExldFNjb3Bpbmc9bnVsbCxnb29nLnVzZVNhZmFyaTEwV29ya2Fyb3VuZD1mdW5jdGlvbigpe2lmKG51bGw9PWdvb2cuaGFzQmFkTGV0U2NvcGluZyl7dHJ5e3ZhciBhPSFldmFsKCdcInVzZSBzdHJpY3RcIjtsZXQgeCA9IDE7IGZ1bmN0aW9uIGYoKSB7IHJldHVybiB0eXBlb2YgeDsgfTtmKCkgPT0gXCJudW1iZXJcIjsnKX1jYXRjaChlKXthPSExfWdvb2cuaGFzQmFkTGV0U2NvcGluZz1hfXJldHVybiBnb29nLmhhc0JhZExldFNjb3Bpbmd9LGdvb2cud29ya2Fyb3VuZFNhZmFyaTEwRXZhbEJ1Zz1mdW5jdGlvbihlKXtyZXR1cm5cIihmdW5jdGlvbigpe1wiK2UrXCJcXG47fSkoKTtcXG5cIn0sZ29vZy5sb2FkTW9kdWxlPWZ1bmN0aW9uKGUpe3ZhciB0PWdvb2cubW9kdWxlTG9hZGVyU3RhdGVfO3RyeXtpZihnb29nLm1vZHVsZUxvYWRlclN0YXRlXz17bW9kdWxlTmFtZTpcIlwiLGRlY2xhcmVMZWdhY3lOYW1lc3BhY2U6ITEsdHlwZTpnb29nLk1vZHVsZVR5cGUuR09PR30sZ29vZy5pc0Z1bmN0aW9uKGUpKXZhciBvPWUuY2FsbCh2b2lkIDAse30pO2Vsc2V7aWYoIWdvb2cuaXNTdHJpbmcoZSkpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIG1vZHVsZSBkZWZpbml0aW9uXCIpO2dvb2cudXNlU2FmYXJpMTBXb3JrYXJvdW5kKCkmJihlPWdvb2cud29ya2Fyb3VuZFNhZmFyaTEwRXZhbEJ1ZyhlKSksbz1nb29nLmxvYWRNb2R1bGVGcm9tU291cmNlXy5jYWxsKHZvaWQgMCxlKX12YXIgcj1nb29nLm1vZHVsZUxvYWRlclN0YXRlXy5tb2R1bGVOYW1lO2lmKCFnb29nLmlzU3RyaW5nKHIpfHwhcil0aHJvdyBFcnJvcignSW52YWxpZCBtb2R1bGUgbmFtZSBcIicrcisnXCInKTtnb29nLm1vZHVsZUxvYWRlclN0YXRlXy5kZWNsYXJlTGVnYWN5TmFtZXNwYWNlP2dvb2cuY29uc3RydWN0TmFtZXNwYWNlXyhyLG8pOmdvb2cuU0VBTF9NT0RVTEVfRVhQT1JUUyYmT2JqZWN0LnNlYWwmJlwib2JqZWN0XCI9PXR5cGVvZiBvJiZudWxsIT1vJiZPYmplY3Quc2VhbChvKSxnb29nLmxvYWRlZE1vZHVsZXNfW3JdPXtleHBvcnRzOm8sdHlwZTpnb29nLk1vZHVsZVR5cGUuR09PRyxtb2R1bGVJZDpnb29nLm1vZHVsZUxvYWRlclN0YXRlXy5tb2R1bGVOYW1lfX1maW5hbGx5e2dvb2cubW9kdWxlTG9hZGVyU3RhdGVfPXR9fSxnb29nLmxvYWRNb2R1bGVGcm9tU291cmNlXz1mdW5jdGlvbihhKXtyZXR1cm4gZXZhbChhKSx7fX0sZ29vZy5ub3JtYWxpemVQYXRoXz1mdW5jdGlvbihlKXtlPWUuc3BsaXQoXCIvXCIpO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7KVwiLlwiPT1lW3RdP2Uuc3BsaWNlKHQsMSk6dCYmXCIuLlwiPT1lW3RdJiZlW3QtMV0mJlwiLi5cIiE9ZVt0LTFdP2Uuc3BsaWNlKC0tdCwyKTp0Kys7cmV0dXJuIGUuam9pbihcIi9cIil9LGdvb2cubG9hZEZpbGVTeW5jXz1mdW5jdGlvbihlKXtpZihnb29nLmdsb2JhbC5DTE9TVVJFX0xPQURfRklMRV9TWU5DKXJldHVybiBnb29nLmdsb2JhbC5DTE9TVVJFX0xPQURfRklMRV9TWU5DKGUpO3RyeXt2YXIgdD1uZXcgZ29vZy5nbG9iYWwuWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIHQub3BlbihcImdldFwiLGUsITEpLHQuc2VuZCgpLDA9PXQuc3RhdHVzfHwyMDA9PXQuc3RhdHVzP3QucmVzcG9uc2VUZXh0Om51bGx9Y2F0Y2goZSl7cmV0dXJuIG51bGx9fSxnb29nLnRyYW5zcGlsZV89ZnVuY3Rpb24oZSx0LG8pe3ZhciByPWdvb2cuZ2xvYmFsLiRqc2NvbXA7cnx8KGdvb2cuZ2xvYmFsLiRqc2NvbXA9cj17fSk7dmFyIG49ci50cmFuc3BpbGU7aWYoIW4pe3ZhciBzPWdvb2cuYmFzZVBhdGgrZ29vZy5UUkFOU1BJTEVSLGk9Z29vZy5sb2FkRmlsZVN5bmNfKHMpO2lmKGkpe2lmKGZ1bmN0aW9uKCl7KDAsZXZhbCkoaStcIlxcbi8vIyBzb3VyY2VVUkw9XCIrcyl9LmNhbGwoZ29vZy5nbG9iYWwpLGdvb2cuZ2xvYmFsLiRnd3RFeHBvcnQmJmdvb2cuZ2xvYmFsLiRnd3RFeHBvcnQuJGpzY29tcCYmIWdvb2cuZ2xvYmFsLiRnd3RFeHBvcnQuJGpzY29tcC50cmFuc3BpbGUpdGhyb3cgRXJyb3IoJ1RoZSB0cmFuc3BpbGVyIGRpZCBub3QgcHJvcGVybHkgZXhwb3J0IHRoZSBcInRyYW5zcGlsZVwiIG1ldGhvZC4gJGd3dEV4cG9ydDogJytKU09OLnN0cmluZ2lmeShnb29nLmdsb2JhbC4kZ3d0RXhwb3J0KSk7Z29vZy5nbG9iYWwuJGpzY29tcC50cmFuc3BpbGU9Z29vZy5nbG9iYWwuJGd3dEV4cG9ydC4kanNjb21wLnRyYW5zcGlsZSxuPShyPWdvb2cuZ2xvYmFsLiRqc2NvbXApLnRyYW5zcGlsZX19cmV0dXJuIG58fChuPXIudHJhbnNwaWxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cubG9nVG9Db25zb2xlXyh0K1wiIHJlcXVpcmVzIHRyYW5zcGlsYXRpb24gYnV0IG5vIHRyYW5zcGlsZXIgd2FzIGZvdW5kLlwiKSxlfSksbihlLHQsbyl9LGdvb2cudHlwZU9mPWZ1bmN0aW9uKGUpe3ZhciB0PXR5cGVvZiBlO2lmKFwib2JqZWN0XCI9PXQpe2lmKCFlKXJldHVyblwibnVsbFwiO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm5cImFycmF5XCI7aWYoZSBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gdDt2YXIgbz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk7aWYoXCJbb2JqZWN0IFdpbmRvd11cIj09bylyZXR1cm5cIm9iamVjdFwiO2lmKFwiW29iamVjdCBBcnJheV1cIj09b3x8XCJudW1iZXJcIj09dHlwZW9mIGUubGVuZ3RoJiZ2b2lkIDAhPT1lLnNwbGljZSYmdm9pZCAwIT09ZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmIWUucHJvcGVydHlJc0VudW1lcmFibGUoXCJzcGxpY2VcIikpcmV0dXJuXCJhcnJheVwiO2lmKFwiW29iamVjdCBGdW5jdGlvbl1cIj09b3x8dm9pZCAwIT09ZS5jYWxsJiZ2b2lkIDAhPT1lLnByb3BlcnR5SXNFbnVtZXJhYmxlJiYhZS5wcm9wZXJ0eUlzRW51bWVyYWJsZShcImNhbGxcIikpcmV0dXJuXCJmdW5jdGlvblwifWVsc2UgaWYoXCJmdW5jdGlvblwiPT10JiZ2b2lkIDA9PT1lLmNhbGwpcmV0dXJuXCJvYmplY3RcIjtyZXR1cm4gdH0sZ29vZy5pc051bGw9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT1lfSxnb29nLmlzRGVmQW5kTm90TnVsbD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZX0sZ29vZy5pc0FycmF5PWZ1bmN0aW9uKGUpe3JldHVyblwiYXJyYXlcIj09Z29vZy50eXBlT2YoZSl9LGdvb2cuaXNBcnJheUxpa2U9ZnVuY3Rpb24oZSl7dmFyIHQ9Z29vZy50eXBlT2YoZSk7cmV0dXJuXCJhcnJheVwiPT10fHxcIm9iamVjdFwiPT10JiZcIm51bWJlclwiPT10eXBlb2YgZS5sZW5ndGh9LGdvb2cuaXNEYXRlTGlrZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pc09iamVjdChlKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5nZXRGdWxsWWVhcn0sZ29vZy5pc0Z1bmN0aW9uPWZ1bmN0aW9uKGUpe3JldHVyblwiZnVuY3Rpb25cIj09Z29vZy50eXBlT2YoZSl9LGdvb2cuaXNPYmplY3Q9ZnVuY3Rpb24oZSl7dmFyIHQ9dHlwZW9mIGU7cmV0dXJuXCJvYmplY3RcIj09dCYmbnVsbCE9ZXx8XCJmdW5jdGlvblwiPT10fSxnb29nLmdldFVpZD1mdW5jdGlvbihlKXtyZXR1cm4gZVtnb29nLlVJRF9QUk9QRVJUWV9dfHwoZVtnb29nLlVJRF9QUk9QRVJUWV9dPSsrZ29vZy51aWRDb3VudGVyXyl9LGdvb2cuaGFzVWlkPWZ1bmN0aW9uKGUpe3JldHVybiEhZVtnb29nLlVJRF9QUk9QRVJUWV9dfSxnb29nLnJlbW92ZVVpZD1mdW5jdGlvbihlKXtudWxsIT09ZSYmXCJyZW1vdmVBdHRyaWJ1dGVcImluIGUmJmUucmVtb3ZlQXR0cmlidXRlKGdvb2cuVUlEX1BST1BFUlRZXyk7dHJ5e2RlbGV0ZSBlW2dvb2cuVUlEX1BST1BFUlRZX119Y2F0Y2goZSl7fX0sZ29vZy5VSURfUFJPUEVSVFlfPVwiY2xvc3VyZV91aWRfXCIrKDFlOSpNYXRoLnJhbmRvbSgpPj4+MCksZ29vZy51aWRDb3VudGVyXz0wLGdvb2cuZ2V0SGFzaENvZGU9Z29vZy5nZXRVaWQsZ29vZy5yZW1vdmVIYXNoQ29kZT1nb29nLnJlbW92ZVVpZCxnb29nLmNsb25lT2JqZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PWdvb2cudHlwZU9mKGUpO2lmKFwib2JqZWN0XCI9PXR8fFwiYXJyYXlcIj09dCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZS5jbG9uZSlyZXR1cm4gZS5jbG9uZSgpO2Zvcih2YXIgbyBpbiB0PVwiYXJyYXlcIj09dD9bXTp7fSxlKXRbb109Z29vZy5jbG9uZU9iamVjdChlW29dKTtyZXR1cm4gdH1yZXR1cm4gZX0sZ29vZy5iaW5kTmF0aXZlXz1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGUuY2FsbC5hcHBseShlLmJpbmQsYXJndW1lbnRzKX0sZ29vZy5iaW5kSnNfPWZ1bmN0aW9uKGUsdCxvKXtpZighZSl0aHJvdyBFcnJvcigpO2lmKDI8YXJndW1lbnRzLmxlbmd0aCl7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KG8sciksZS5hcHBseSh0LG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fSxnb29nLmJpbmQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZihcIm5hdGl2ZSBjb2RlXCIpP2dvb2cuYmluZD1nb29nLmJpbmROYXRpdmVfOmdvb2cuYmluZD1nb29nLmJpbmRKc18sZ29vZy5iaW5kLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZ29vZy5wYXJ0aWFsPWZ1bmN0aW9uKGUsdCl7dmFyIG89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PW8uc2xpY2UoKTtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsYXJndW1lbnRzKSxlLmFwcGx5KHRoaXMsdCl9fSxnb29nLm1peGluPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvIGluIHQpZVtvXT10W29dfSxnb29nLm5vdz1nb29nLlRSVVNURURfU0lURSYmRGF0ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxnb29nLmdsb2JhbEV2YWw9ZnVuY3Rpb24oZSl7aWYoZ29vZy5nbG9iYWwuZXhlY1NjcmlwdClnb29nLmdsb2JhbC5leGVjU2NyaXB0KGUsXCJKYXZhU2NyaXB0XCIpO2Vsc2V7aWYoIWdvb2cuZ2xvYmFsLmV2YWwpdGhyb3cgRXJyb3IoXCJnb29nLmdsb2JhbEV2YWwgbm90IGF2YWlsYWJsZVwiKTtpZihudWxsPT1nb29nLmV2YWxXb3Jrc0Zvckdsb2JhbHNfKXt0cnl7Z29vZy5nbG9iYWwuZXZhbChcInZhciBfZXZhbFRlc3RfID0gMTtcIil9Y2F0Y2goZSl7fWlmKHZvaWQgMCE9PWdvb2cuZ2xvYmFsLl9ldmFsVGVzdF8pe3RyeXtkZWxldGUgZ29vZy5nbG9iYWwuX2V2YWxUZXN0X31jYXRjaChlKXt9Z29vZy5ldmFsV29ya3NGb3JHbG9iYWxzXz0hMH1lbHNlIGdvb2cuZXZhbFdvcmtzRm9yR2xvYmFsc189ITF9aWYoZ29vZy5ldmFsV29ya3NGb3JHbG9iYWxzXylnb29nLmdsb2JhbC5ldmFsKGUpO2Vsc2V7dmFyIHQ9Z29vZy5nbG9iYWwuZG9jdW1lbnQsbz10LmNyZWF0ZUVsZW1lbnQoXCJTQ1JJUFRcIik7by50eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIsby5kZWZlcj0hMSxvLmFwcGVuZENoaWxkKHQuY3JlYXRlVGV4dE5vZGUoZSkpLHQuaGVhZC5hcHBlbmRDaGlsZChvKSx0LmhlYWQucmVtb3ZlQ2hpbGQobyl9fX0sZ29vZy5ldmFsV29ya3NGb3JHbG9iYWxzXz1udWxsLGdvb2cuZ2V0Q3NzTmFtZT1mdW5jdGlvbihlLHQpe2lmKFwiLlwiPT1TdHJpbmcoZSkuY2hhckF0KDApKXRocm93IEVycm9yKCdjbGFzc05hbWUgcGFzc2VkIGluIGdvb2cuZ2V0Q3NzTmFtZSBtdXN0IG5vdCBzdGFydCB3aXRoIFwiLlwiLiBZb3UgcGFzc2VkOiAnK2UpO3ZhciBvPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmNzc05hbWVNYXBwaW5nX1tlXXx8ZX0scj1mdW5jdGlvbihlKXtlPWUuc3BsaXQoXCItXCIpO2Zvcih2YXIgdD1bXSxyPTA7cjxlLmxlbmd0aDtyKyspdC5wdXNoKG8oZVtyXSkpO3JldHVybiB0LmpvaW4oXCItXCIpfTtyZXR1cm4gcj1nb29nLmNzc05hbWVNYXBwaW5nXz9cIkJZX1dIT0xFXCI9PWdvb2cuY3NzTmFtZU1hcHBpbmdTdHlsZV8/bzpyOmZ1bmN0aW9uKGUpe3JldHVybiBlfSxlPXQ/ZStcIi1cIityKHQpOnIoZSksZ29vZy5nbG9iYWwuQ0xPU1VSRV9DU1NfTkFNRV9NQVBfRk4/Z29vZy5nbG9iYWwuQ0xPU1VSRV9DU1NfTkFNRV9NQVBfRk4oZSk6ZX0sZ29vZy5zZXRDc3NOYW1lTWFwcGluZz1mdW5jdGlvbihlLHQpe2dvb2cuY3NzTmFtZU1hcHBpbmdfPWUsZ29vZy5jc3NOYW1lTWFwcGluZ1N0eWxlXz10fSwhQ09NUElMRUQmJmdvb2cuZ2xvYmFsLkNMT1NVUkVfQ1NTX05BTUVfTUFQUElORyYmKGdvb2cuY3NzTmFtZU1hcHBpbmdfPWdvb2cuZ2xvYmFsLkNMT1NVUkVfQ1NTX05BTUVfTUFQUElORyksZ29vZy5nZXRNc2c9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBvJiZvLmh0bWwmJihlPWUucmVwbGFjZSgvPC9nLFwiJmx0O1wiKSksdCYmKGU9ZS5yZXBsYWNlKC9cXHtcXCQoW159XSspfS9nLChmdW5jdGlvbihlLG8pe3JldHVybiBudWxsIT10JiZvIGluIHQ/dFtvXTplfSkpKSxlfSxnb29nLmdldE1zZ1dpdGhGYWxsYmFjaz1mdW5jdGlvbihlLHQpe3JldHVybiBlfSxnb29nLmV4cG9ydFN5bWJvbD1mdW5jdGlvbihlLHQsbyl7Z29vZy5leHBvcnRQYXRoXyhlLHQsbyl9LGdvb2cuZXhwb3J0UHJvcGVydHk9ZnVuY3Rpb24oZSx0LG8pe2VbdF09b30sZ29vZy5pbmhlcml0cz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oKXt9by5wcm90b3R5cGU9dC5wcm90b3R5cGUsZS5zdXBlckNsYXNzXz10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbyxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUuYmFzZT1mdW5jdGlvbihlLG8scil7Zm9yKHZhciBuPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMikscz0yO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspbltzLTJdPWFyZ3VtZW50c1tzXTtyZXR1cm4gdC5wcm90b3R5cGVbb10uYXBwbHkoZSxuKX19LGdvb2cuYmFzZT1mdW5jdGlvbihlLHQsbyl7dmFyIHI9YXJndW1lbnRzLmNhbGxlZS5jYWxsZXI7aWYoZ29vZy5TVFJJQ1RfTU9ERV9DT01QQVRJQkxFfHxnb29nLkRFQlVHJiYhcil0aHJvdyBFcnJvcihcImFyZ3VtZW50cy5jYWxsZXIgbm90IGRlZmluZWQuICBnb29nLmJhc2UoKSBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0cmljdCBtb2RlIGNvZGUuIFNlZSBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNS4xLyNzZWMtQ1wiKTtpZih2b2lkIDAhPT1yLnN1cGVyQ2xhc3NfKXtmb3IodmFyIG49QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKSxzPTE7czxhcmd1bWVudHMubGVuZ3RoO3MrKyluW3MtMV09YXJndW1lbnRzW3NdO3JldHVybiByLnN1cGVyQ2xhc3NfLmNvbnN0cnVjdG9yLmFwcGx5KGUsbil9aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQmJlwic3ltYm9sXCIhPXR5cGVvZiB0KXRocm93IEVycm9yKFwibWV0aG9kIG5hbWVzIHByb3ZpZGVkIHRvIGdvb2cuYmFzZSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgc3ltYm9sXCIpO2ZvcihuPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMikscz0yO3M8YXJndW1lbnRzLmxlbmd0aDtzKyspbltzLTJdPWFyZ3VtZW50c1tzXTtzPSExO2Zvcih2YXIgaT1lLmNvbnN0cnVjdG9yLnByb3RvdHlwZTtpO2k9T2JqZWN0LmdldFByb3RvdHlwZU9mKGkpKWlmKGlbdF09PT1yKXM9ITA7ZWxzZSBpZihzKXJldHVybiBpW3RdLmFwcGx5KGUsbik7aWYoZVt0XT09PXIpcmV0dXJuIGUuY29uc3RydWN0b3IucHJvdG90eXBlW3RdLmFwcGx5KGUsbik7dGhyb3cgRXJyb3IoXCJnb29nLmJhc2UgY2FsbGVkIGZyb20gYSBtZXRob2Qgb2Ygb25lIG5hbWUgdG8gYSBtZXRob2Qgb2YgYSBkaWZmZXJlbnQgbmFtZVwiKX0sZ29vZy5zY29wZT1mdW5jdGlvbihlKXtpZihnb29nLmlzSW5Nb2R1bGVMb2FkZXJfKCkpdGhyb3cgRXJyb3IoXCJnb29nLnNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aGluIGEgbW9kdWxlLlwiKTtlLmNhbGwoZ29vZy5nbG9iYWwpfSxDT01QSUxFRHx8KGdvb2cuZ2xvYmFsLkNPTVBJTEVEPUNPTVBJTEVEKSxnb29nLmRlZmluZUNsYXNzPWZ1bmN0aW9uKGUsdCl7dmFyIG89dC5jb25zdHJ1Y3RvcixyPXQuc3RhdGljcztyZXR1cm4gbyYmbyE9T2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcnx8KG89ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihcImNhbm5vdCBpbnN0YW50aWF0ZSBhbiBpbnRlcmZhY2UgKG5vIGNvbnN0cnVjdG9yIGRlZmluZWQpLlwiKX0pLG89Z29vZy5kZWZpbmVDbGFzcy5jcmVhdGVTZWFsaW5nQ29uc3RydWN0b3JfKG8sZSksZSYmZ29vZy5pbmhlcml0cyhvLGUpLGRlbGV0ZSB0LmNvbnN0cnVjdG9yLGRlbGV0ZSB0LnN0YXRpY3MsZ29vZy5kZWZpbmVDbGFzcy5hcHBseVByb3BlcnRpZXNfKG8ucHJvdG90eXBlLHQpLG51bGwhPXImJihyIGluc3RhbmNlb2YgRnVuY3Rpb24/cihvKTpnb29nLmRlZmluZUNsYXNzLmFwcGx5UHJvcGVydGllc18obyxyKSksb30sZ29vZy5kZWZpbmVDbGFzcy5TRUFMX0NMQVNTX0lOU1RBTkNFUz1nb29nLkRFQlVHLGdvb2cuZGVmaW5lQ2xhc3MuY3JlYXRlU2VhbGluZ0NvbnN0cnVjdG9yXz1mdW5jdGlvbihlLHQpe2lmKCFnb29nLmRlZmluZUNsYXNzLlNFQUxfQ0xBU1NfSU5TVEFOQ0VTKXJldHVybiBlO3ZhciBvPSFnb29nLmRlZmluZUNsYXNzLmlzVW5zZWFsYWJsZV8odCkscj1mdW5jdGlvbigpe3ZhciB0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiB0W2dvb2cuVUlEX1BST1BFUlRZX109dFtnb29nLlVJRF9QUk9QRVJUWV9dLHRoaXMuY29uc3RydWN0b3I9PT1yJiZvJiZPYmplY3Quc2VhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZPYmplY3Quc2VhbCh0KSx0fTtyZXR1cm4gcn0sZ29vZy5kZWZpbmVDbGFzcy5pc1Vuc2VhbGFibGVfPWZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLnByb3RvdHlwZSYmZS5wcm90b3R5cGVbZ29vZy5VTlNFQUxBQkxFX0NPTlNUUlVDVE9SX1BST1BFUlRZX119LGdvb2cuZGVmaW5lQ2xhc3MuT0JKRUNUX1BST1RPVFlQRV9GSUVMRFNfPVwiY29uc3RydWN0b3IgaGFzT3duUHJvcGVydHkgaXNQcm90b3R5cGVPZiBwcm9wZXJ0eUlzRW51bWVyYWJsZSB0b0xvY2FsZVN0cmluZyB0b1N0cmluZyB2YWx1ZU9mXCIuc3BsaXQoXCIgXCIpLGdvb2cuZGVmaW5lQ2xhc3MuYXBwbHlQcm9wZXJ0aWVzXz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiYoZVtvXT10W29dKTtmb3IodmFyIHI9MDtyPGdvb2cuZGVmaW5lQ2xhc3MuT0JKRUNUX1BST1RPVFlQRV9GSUVMRFNfLmxlbmd0aDtyKyspbz1nb29nLmRlZmluZUNsYXNzLk9CSkVDVF9QUk9UT1RZUEVfRklFTERTX1tyXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGVbb109dFtvXSl9LGdvb2cudGFnVW5zZWFsYWJsZUNsYXNzPWZ1bmN0aW9uKGUpeyFDT01QSUxFRCYmZ29vZy5kZWZpbmVDbGFzcy5TRUFMX0NMQVNTX0lOU1RBTkNFUyYmKGUucHJvdG90eXBlW2dvb2cuVU5TRUFMQUJMRV9DT05TVFJVQ1RPUl9QUk9QRVJUWV9dPSEwKX0sZ29vZy5VTlNFQUxBQkxFX0NPTlNUUlVDVE9SX1BST1BFUlRZXz1cImdvb2dfZGVmaW5lQ2xhc3NfbGVnYWN5X3Vuc2VhbGFibGVcIiwhQ09NUElMRUQmJmdvb2cuREVQRU5ERU5DSUVTX0VOQUJMRUQmJihnb29nLmluSHRtbERvY3VtZW50Xz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBudWxsIT1lJiZcIndyaXRlXCJpbiBlfSxnb29nLmlzRG9jdW1lbnRMb2FkaW5nXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBlLmF0dGFjaEV2ZW50P1wiY29tcGxldGVcIiE9ZS5yZWFkeVN0YXRlOlwibG9hZGluZ1wiPT1lLnJlYWR5U3RhdGV9LGdvb2cuZmluZEJhc2VQYXRoXz1mdW5jdGlvbigpe2lmKGdvb2cuaXNEZWYoZ29vZy5nbG9iYWwuQ0xPU1VSRV9CQVNFX1BBVEgpJiZnb29nLmlzU3RyaW5nKGdvb2cuZ2xvYmFsLkNMT1NVUkVfQkFTRV9QQVRIKSlnb29nLmJhc2VQYXRoPWdvb2cuZ2xvYmFsLkNMT1NVUkVfQkFTRV9QQVRIO2Vsc2UgaWYoZ29vZy5pbkh0bWxEb2N1bWVudF8oKSl7dmFyIGU9Z29vZy5nbG9iYWwuZG9jdW1lbnQsdD1lLmN1cnJlbnRTY3JpcHQ7Zm9yKHQ9KGU9dD9bdF06ZS5nZXRFbGVtZW50c0J5VGFnTmFtZShcIlNDUklQVFwiKSkubGVuZ3RoLTE7MDw9dDstLXQpe3ZhciBvPWVbdF0uc3JjLHI9by5sYXN0SW5kZXhPZihcIj9cIik7aWYocj0tMT09cj9vLmxlbmd0aDpyLFwiYmFzZS5qc1wiPT1vLnN1YnN0cihyLTcsNykpe2dvb2cuYmFzZVBhdGg9by5zdWJzdHIoMCxyLTcpO2JyZWFrfX19fSxnb29nLmZpbmRCYXNlUGF0aF8oKSxnb29nLlRyYW5zcGlsZXI9ZnVuY3Rpb24oKXt0aGlzLnJlcXVpcmVzVHJhbnNwaWxhdGlvbl89bnVsbCx0aGlzLnRyYW5zcGlsYXRpb25UYXJnZXRfPWdvb2cuVFJBTlNQSUxFX1RPX0xBTkdVQUdFfSxnb29nLlRyYW5zcGlsZXIucHJvdG90eXBlLmNyZWF0ZVJlcXVpcmVzVHJhbnNwaWxhdGlvbl89ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHQsbyl7ZT9kW3RdPSEwOm8oKT8oYz10LGRbdF09ITEpOmU9ZFt0XT0hMH1mdW5jdGlvbiBiKGEpe3RyeXtyZXR1cm4hIWV2YWwoYSl9Y2F0Y2goZSl7cmV0dXJuITF9fXZhciBjPVwiZXMzXCIsZD17ZXMzOiExfSxlPSExLGY9Z29vZy5nbG9iYWwubmF2aWdhdG9yJiZnb29nLmdsb2JhbC5uYXZpZ2F0b3IudXNlckFnZW50P2dvb2cuZ2xvYmFsLm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtyZXR1cm4gYShcImVzNVwiLChmdW5jdGlvbigpe3JldHVybiBiKFwiWzEsXS5sZW5ndGg9PTFcIil9KSksYShcImVzNlwiLChmdW5jdGlvbigpe3JldHVybiFmLm1hdGNoKC9FZGdlXFwvKFxcZCspKFxcLlxcZCkqL2kpJiZiKCcoKCk9PntcInVzZSBzdHJpY3RcIjtjbGFzcyBYe2NvbnN0cnVjdG9yKCl7aWYobmV3LnRhcmdldCE9U3RyaW5nKXRocm93IDE7dGhpcy54PTQyfX1sZXQgcT1SZWZsZWN0LmNvbnN0cnVjdChYLFtdLFN0cmluZyk7aWYocS54IT00Mnx8IShxIGluc3RhbmNlb2YgU3RyaW5nKSl0aHJvdyAxO2Zvcihjb25zdCBhIG9mWzIsM10pe2lmKGE9PTIpY29udGludWU7ZnVuY3Rpb24gZih6PXthfSl7bGV0IGE9MDtyZXR1cm4gei5hfXtmdW5jdGlvbiBmKCl7cmV0dXJuIDA7fX1yZXR1cm4gZigpPT0zfX0pKCknKX0pKSxhKFwiZXM3XCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGIoXCIyICoqIDIgPT0gNFwiKX0pKSxhKFwiZXM4XCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGIoXCJhc3luYyAoKSA9PiAxLCB0cnVlXCIpfSkpLGEoXCJlczlcIiwoZnVuY3Rpb24oKXtyZXR1cm4gYihcIih7Li4ucmVzdH0gPSB7fSksIHRydWVcIil9KSksYShcImVzX25leHRcIiwoZnVuY3Rpb24oKXtyZXR1cm4hMX0pKSx7dGFyZ2V0OmMsbWFwOmR9fSxnb29nLlRyYW5zcGlsZXIucHJvdG90eXBlLm5lZWRzVHJhbnNwaWxlPWZ1bmN0aW9uKGUsdCl7aWYoXCJhbHdheXNcIj09Z29vZy5UUkFOU1BJTEUpcmV0dXJuITA7aWYoXCJuZXZlclwiPT1nb29nLlRSQU5TUElMRSlyZXR1cm4hMTtpZighdGhpcy5yZXF1aXJlc1RyYW5zcGlsYXRpb25fKXt2YXIgbz10aGlzLmNyZWF0ZVJlcXVpcmVzVHJhbnNwaWxhdGlvbl8oKTt0aGlzLnJlcXVpcmVzVHJhbnNwaWxhdGlvbl89by5tYXAsdGhpcy50cmFuc3BpbGF0aW9uVGFyZ2V0Xz10aGlzLnRyYW5zcGlsYXRpb25UYXJnZXRffHxvLnRhcmdldH1pZihlIGluIHRoaXMucmVxdWlyZXNUcmFuc3BpbGF0aW9uXylyZXR1cm4hIXRoaXMucmVxdWlyZXNUcmFuc3BpbGF0aW9uX1tlXXx8ISghZ29vZy5pbkh0bWxEb2N1bWVudF8oKXx8XCJlczZcIiE9dHx8XCJub01vZHVsZVwiaW4gZ29vZy5nbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSk7dGhyb3cgRXJyb3IoXCJVbmtub3duIGxhbmd1YWdlIG1vZGU6IFwiK2UpfSxnb29nLlRyYW5zcGlsZXIucHJvdG90eXBlLnRyYW5zcGlsZT1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLnRyYW5zcGlsZV8oZSx0LHRoaXMudHJhbnNwaWxhdGlvblRhcmdldF8pfSxnb29nLnRyYW5zcGlsZXJfPW5ldyBnb29nLlRyYW5zcGlsZXIsZ29vZy5wcm90ZWN0U2NyaXB0VGFnXz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC88XFwvKFNDUklQVCkvZ2ksXCJcXFxceDNjLyQxXCIpfSxnb29nLkRlYnVnTG9hZGVyXz1mdW5jdGlvbigpe3RoaXMuZGVwZW5kZW5jaWVzXz17fSx0aGlzLmlkVG9QYXRoXz17fSx0aGlzLndyaXR0ZW5fPXt9LHRoaXMubG9hZGluZ0RlcHNfPVtdLHRoaXMuZGVwc1RvTG9hZF89W10sdGhpcy5wYXVzZWRfPSExLHRoaXMuZmFjdG9yeV89bmV3IGdvb2cuRGVwZW5kZW5jeUZhY3RvcnkoZ29vZy50cmFuc3BpbGVyXyksdGhpcy5kZWZlcnJlZENhbGxiYWNrc189e30sdGhpcy5kZWZlcnJlZFF1ZXVlXz1bXX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmJvb3RzdHJhcD1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oKXtyJiYoZ29vZy5nbG9iYWwuc2V0VGltZW91dChyLDApLHI9bnVsbCl9dmFyIHI9dDtpZihlLmxlbmd0aCl7dD1bXTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHM9dGhpcy5nZXRQYXRoRnJvbURlcHNfKGVbbl0pO2lmKCFzKXRocm93IEVycm9yKFwiVW5yZWdvbml6ZWQgbmFtZXNwYWNlOiBcIitlW25dKTt0LnB1c2godGhpcy5kZXBlbmRlbmNpZXNfW3NdKX1zPWdvb2cucmVxdWlyZTt2YXIgaT0wO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspcyhlW25dKSx0W25dLm9uTG9hZCgoZnVuY3Rpb24oKXsrK2k9PWUubGVuZ3RoJiZvKCl9KSl9ZWxzZSBvKCl9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5sb2FkQ2xvc3VyZURlcHM9ZnVuY3Rpb24oKXt0aGlzLmRlcHNUb0xvYWRfLnB1c2godGhpcy5mYWN0b3J5Xy5jcmVhdGVEZXBlbmRlbmN5KGdvb2cubm9ybWFsaXplUGF0aF8oZ29vZy5iYXNlUGF0aCtcImRlcHMuanNcIiksXCJkZXBzLmpzXCIsW10sW10se30sITEpKSx0aGlzLmxvYWREZXBzXygpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUucmVxdWVzdGVkPWZ1bmN0aW9uKGUsdCl7KGU9dGhpcy5nZXRQYXRoRnJvbURlcHNfKGUpKSYmKHR8fHRoaXMuYXJlRGVwc0xvYWRlZF8odGhpcy5kZXBlbmRlbmNpZXNfW2VdLnJlcXVpcmVzKSkmJih0PXRoaXMuZGVmZXJyZWRDYWxsYmFja3NfW2VdKSYmKGRlbGV0ZSB0aGlzLmRlZmVycmVkQ2FsbGJhY2tzX1tlXSx0KCkpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUuc2V0RGVwZW5kZW5jeUZhY3Rvcnk9ZnVuY3Rpb24oZSl7dGhpcy5mYWN0b3J5Xz1lfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUubG9hZF89ZnVuY3Rpb24oZSl7aWYoIXRoaXMuZ2V0UGF0aEZyb21EZXBzXyhlKSl0aHJvdyBlPVwiZ29vZy5yZXF1aXJlIGNvdWxkIG5vdCBmaW5kOiBcIitlLGdvb2cubG9nVG9Db25zb2xlXyhlKSxFcnJvcihlKTt2YXIgdD10aGlzLG89W10scj1mdW5jdGlvbihlKXt2YXIgbj10LmdldFBhdGhGcm9tRGVwc18oZSk7aWYoIW4pdGhyb3cgRXJyb3IoXCJCYWQgZGVwZW5kZW5jeSBwYXRoIG9yIHN5bWJvbDogXCIrZSk7aWYoIXQud3JpdHRlbl9bbl0pe2Zvcih0LndyaXR0ZW5fW25dPSEwLGU9dC5kZXBlbmRlbmNpZXNfW25dLG49MDtuPGUucmVxdWlyZXMubGVuZ3RoO24rKylnb29nLmlzUHJvdmlkZWRfKGUucmVxdWlyZXNbbl0pfHxyKGUucmVxdWlyZXNbbl0pO28ucHVzaChlKX19O3IoZSksZT0hIXRoaXMuZGVwc1RvTG9hZF8ubGVuZ3RoLHRoaXMuZGVwc1RvTG9hZF89dGhpcy5kZXBzVG9Mb2FkXy5jb25jYXQobyksdGhpcy5wYXVzZWRffHxlfHx0aGlzLmxvYWREZXBzXygpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUubG9hZERlcHNfPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMsdD10aGlzLnBhdXNlZF87dGhpcy5kZXBzVG9Mb2FkXy5sZW5ndGgmJiF0OykhZnVuY3Rpb24oKXt2YXIgbz0hMSxyPWUuZGVwc1RvTG9hZF8uc2hpZnQoKSxuPSExO2UubG9hZGluZ18ocik7dmFyIHM9e3BhdXNlOmZ1bmN0aW9uKCl7aWYobyl0aHJvdyBFcnJvcihcIkNhbm5vdCBjYWxsIHBhdXNlIGFmdGVyIHRoZSBjYWxsIHRvIGxvYWQuXCIpO3Q9ITB9LHJlc3VtZTpmdW5jdGlvbigpe28/ZS5yZXN1bWVfKCk6dD0hMX0sbG9hZGVkOmZ1bmN0aW9uKCl7aWYobil0aHJvdyBFcnJvcihcIkRvdWJsZSBjYWxsIHRvIGxvYWRlZC5cIik7bj0hMCxlLmxvYWRlZF8ocil9LHBlbmRpbmc6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sbz0wO288ZS5sb2FkaW5nRGVwc18ubGVuZ3RoO28rKyl0LnB1c2goZS5sb2FkaW5nRGVwc19bb10pO3JldHVybiB0fSxzZXRNb2R1bGVTdGF0ZTpmdW5jdGlvbihlKXtnb29nLm1vZHVsZUxvYWRlclN0YXRlXz17dHlwZTplLG1vZHVsZU5hbWU6XCJcIixkZWNsYXJlTGVnYWN5TmFtZXNwYWNlOiExfX0scmVnaXN0ZXJFczZNb2R1bGVFeHBvcnRzOmZ1bmN0aW9uKGUsdCxvKXtvJiYoZ29vZy5sb2FkZWRNb2R1bGVzX1tvXT17ZXhwb3J0czp0LHR5cGU6Z29vZy5Nb2R1bGVUeXBlLkVTNixtb2R1bGVJZDpvfHxcIlwifSl9LHJlZ2lzdGVyR29vZ01vZHVsZUV4cG9ydHM6ZnVuY3Rpb24oZSx0KXtnb29nLmxvYWRlZE1vZHVsZXNfW2VdPXtleHBvcnRzOnQsdHlwZTpnb29nLk1vZHVsZVR5cGUuR09PRyxtb2R1bGVJZDplfX0sY2xlYXJNb2R1bGVTdGF0ZTpmdW5jdGlvbigpe2dvb2cubW9kdWxlTG9hZGVyU3RhdGVfPW51bGx9LGRlZmVyOmZ1bmN0aW9uKHQpe2lmKG8pdGhyb3cgRXJyb3IoXCJDYW5ub3QgcmVnaXN0ZXIgd2l0aCBkZWZlciBhZnRlciB0aGUgY2FsbCB0byBsb2FkLlwiKTtlLmRlZmVyXyhyLHQpfSxhcmVEZXBzTG9hZGVkOmZ1bmN0aW9uKCl7cmV0dXJuIGUuYXJlRGVwc0xvYWRlZF8oci5yZXF1aXJlcyl9fTt0cnl7ci5sb2FkKHMpfWZpbmFsbHl7bz0hMH19KCk7dCYmdGhpcy5wYXVzZV8oKX0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLnBhdXNlXz1mdW5jdGlvbigpe3RoaXMucGF1c2VkXz0hMH0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLnJlc3VtZV89ZnVuY3Rpb24oKXt0aGlzLnBhdXNlZF8mJih0aGlzLnBhdXNlZF89ITEsdGhpcy5sb2FkRGVwc18oKSl9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5sb2FkaW5nXz1mdW5jdGlvbihlKXt0aGlzLmxvYWRpbmdEZXBzXy5wdXNoKGUpfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUubG9hZGVkXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHRoaXMubG9hZGluZ0RlcHNfLmxlbmd0aDt0KyspaWYodGhpcy5sb2FkaW5nRGVwc19bdF09PWUpe3RoaXMubG9hZGluZ0RlcHNfLnNwbGljZSh0LDEpO2JyZWFrfWZvcih0PTA7dDx0aGlzLmRlZmVycmVkUXVldWVfLmxlbmd0aDt0KyspaWYodGhpcy5kZWZlcnJlZFF1ZXVlX1t0XT09ZS5wYXRoKXt0aGlzLmRlZmVycmVkUXVldWVfLnNwbGljZSh0LDEpO2JyZWFrfWlmKHRoaXMubG9hZGluZ0RlcHNfLmxlbmd0aD09dGhpcy5kZWZlcnJlZFF1ZXVlXy5sZW5ndGgmJiF0aGlzLmRlcHNUb0xvYWRfLmxlbmd0aClmb3IoO3RoaXMuZGVmZXJyZWRRdWV1ZV8ubGVuZ3RoOyl0aGlzLnJlcXVlc3RlZCh0aGlzLmRlZmVycmVkUXVldWVfLnNoaWZ0KCksITApO2UubG9hZGVkKCl9LGdvb2cuRGVidWdMb2FkZXJfLnByb3RvdHlwZS5hcmVEZXBzTG9hZGVkXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG89dGhpcy5nZXRQYXRoRnJvbURlcHNfKGVbdF0pO2lmKCFvfHwhKG8gaW4gdGhpcy5kZWZlcnJlZENhbGxiYWNrc18pJiYhZ29vZy5pc1Byb3ZpZGVkXyhlW3RdKSlyZXR1cm4hMX1yZXR1cm4hMH0sZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmdldFBhdGhGcm9tRGVwc189ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW4gdGhpcy5pZFRvUGF0aF8/dGhpcy5pZFRvUGF0aF9bZV06ZSBpbiB0aGlzLmRlcGVuZGVuY2llc18/ZTpudWxsfSxnb29nLkRlYnVnTG9hZGVyXy5wcm90b3R5cGUuZGVmZXJfPWZ1bmN0aW9uKGUsdCl7dGhpcy5kZWZlcnJlZENhbGxiYWNrc19bZS5wYXRoXT10LHRoaXMuZGVmZXJyZWRRdWV1ZV8ucHVzaChlLnBhdGgpfSxnb29nLkxvYWRDb250cm9sbGVyPWZ1bmN0aW9uKCl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe30sZ29vZy5Mb2FkQ29udHJvbGxlci5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5sb2FkZWQ9ZnVuY3Rpb24oKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLnBlbmRpbmc9ZnVuY3Rpb24oKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLnJlZ2lzdGVyRXM2TW9kdWxlRXhwb3J0cz1mdW5jdGlvbihlLHQsbyl7fSxnb29nLkxvYWRDb250cm9sbGVyLnByb3RvdHlwZS5zZXRNb2R1bGVTdGF0ZT1mdW5jdGlvbihlKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLmNsZWFyTW9kdWxlU3RhdGU9ZnVuY3Rpb24oKXt9LGdvb2cuTG9hZENvbnRyb2xsZXIucHJvdG90eXBlLmRlZmVyPWZ1bmN0aW9uKGUpe30sZ29vZy5Mb2FkQ29udHJvbGxlci5wcm90b3R5cGUuYXJlRGVwc0xvYWRlZD1mdW5jdGlvbigpe30sZ29vZy5EZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxvLHIsbil7dGhpcy5wYXRoPWUsdGhpcy5yZWxhdGl2ZVBhdGg9dCx0aGlzLnByb3ZpZGVzPW8sdGhpcy5yZXF1aXJlcz1yLHRoaXMubG9hZEZsYWdzPW4sdGhpcy5sb2FkZWRfPSExLHRoaXMubG9hZENhbGxiYWNrc189W119LGdvb2cuRGVwZW5kZW5jeS5wcm90b3R5cGUuZ2V0UGF0aE5hbWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBhdGgsdD1lLmluZGV4T2YoXCI6Ly9cIik7cmV0dXJuIDA8PXQmJjA8PSh0PShlPWUuc3Vic3RyaW5nKHQrMykpLmluZGV4T2YoXCIvXCIpKSYmKGU9ZS5zdWJzdHJpbmcodCsxKSksZX0sZ29vZy5EZXBlbmRlbmN5LnByb3RvdHlwZS5vbkxvYWQ9ZnVuY3Rpb24oZSl7dGhpcy5sb2FkZWRfP2UoKTp0aGlzLmxvYWRDYWxsYmFja3NfLnB1c2goZSl9LGdvb2cuRGVwZW5kZW5jeS5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7dGhpcy5sb2FkZWRfPSEwO3ZhciBlPXRoaXMubG9hZENhbGxiYWNrc187dGhpcy5sb2FkQ2FsbGJhY2tzXz1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdKCl9LGdvb2cuRGVwZW5kZW5jeS5kZWZlcl89ITEsZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrTWFwXz17fSxnb29nLkRlcGVuZGVuY3kucmVnaXN0ZXJDYWxsYmFja189ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5yYW5kb20oKS50b1N0cmluZygzMik7cmV0dXJuIGdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja01hcF9bdF09ZSx0fSxnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXz1mdW5jdGlvbihlKXtkZWxldGUgZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrTWFwX1tlXX0sZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXz1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbiBnb29nLkRlcGVuZGVuY3kuY2FsbGJhY2tNYXBfKSl0aHJvdyBFcnJvcihcIkNhbGxiYWNrIGtleSBcIitlK1wiIGRvZXMgbm90IGV4aXN0ICh3YXMgYmFzZS5qcyBsb2FkZWQgbW9yZSB0aGFuIG9uY2U/KS5cIik7Zm9yKHZhciBvPWdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja01hcF9bZV0scj1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKylyLnB1c2goYXJndW1lbnRzW25dKTtvLmFwcGx5KHZvaWQgMCxyKX0sZ29vZy5EZXBlbmRlbmN5LnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUpe2lmKGdvb2cuZ2xvYmFsLkNMT1NVUkVfSU1QT1JUX1NDUklQVClnb29nLmdsb2JhbC5DTE9TVVJFX0lNUE9SVF9TQ1JJUFQodGhpcy5wYXRoKT9lLmxvYWRlZCgpOmUucGF1c2UoKTtlbHNlIGlmKGdvb2cuaW5IdG1sRG9jdW1lbnRfKCkpe3ZhciB0PWdvb2cuZ2xvYmFsLmRvY3VtZW50O2lmKFwiY29tcGxldGVcIj09dC5yZWFkeVN0YXRlJiYhZ29vZy5FTkFCTEVfQ0hST01FX0FQUF9TQUZFX1NDUklQVF9MT0FESU5HKXtpZigvXFxiZGVwcy5qcyQvLnRlc3QodGhpcy5wYXRoKSlyZXR1cm4gdm9pZCBlLmxvYWRlZCgpO3Rocm93IEVycm9yKCdDYW5ub3Qgd3JpdGUgXCInK3RoaXMucGF0aCsnXCIgYWZ0ZXIgZG9jdW1lbnQgbG9hZCcpfWlmKCFnb29nLkVOQUJMRV9DSFJPTUVfQVBQX1NBRkVfU0NSSVBUX0xPQURJTkcmJmdvb2cuaXNEb2N1bWVudExvYWRpbmdfKCkpe3ZhciBvPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24odCl7Z29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXyYmXCJjb21wbGV0ZVwiIT10LnJlYWR5U3RhdGV8fChnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXyhvKSxlLmxvYWRlZCgpKX0pKSxyPSFnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfJiZnb29nLmdldFNjcmlwdE5vbmNlKCk/JyBub25jZT1cIicrZ29vZy5nZXRTY3JpcHROb25jZSgpKydcIic6XCJcIjtyPSc8c2NyaXB0IHNyYz1cIicrdGhpcy5wYXRoKydcIiAnKyhnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfP1wib25yZWFkeXN0YXRlY2hhbmdlXCI6XCJvbmxvYWRcIikrXCI9XFxcImdvb2cuRGVwZW5kZW5jeS5jYWxsYmFja18oJ1wiK28rJ1xcJywgdGhpcylcIiB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCIgJysoZ29vZy5EZXBlbmRlbmN5LmRlZmVyXz9cImRlZmVyXCI6XCJcIikrcitcIj48XFwvc2NyaXB0PlwiLHQud3JpdGUoZ29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8/Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8uY3JlYXRlSFRNTChyKTpyKX1lbHNle3ZhciBuPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtuLmRlZmVyPWdvb2cuRGVwZW5kZW5jeS5kZWZlcl8sbi5hc3luYz0hMSxuLnR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiwocj1nb29nLmdldFNjcmlwdE5vbmNlKCkpJiZuLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsciksZ29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXz8oZS5wYXVzZSgpLG4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7XCJsb2FkZWRcIiE9bi5yZWFkeVN0YXRlJiZcImNvbXBsZXRlXCIhPW4ucmVhZHlTdGF0ZXx8KGUubG9hZGVkKCksZS5yZXN1bWUoKSl9KTpuLm9ubG9hZD1mdW5jdGlvbigpe24ub25sb2FkPW51bGwsZS5sb2FkZWQoKX0sbi5zcmM9Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8/Z29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV8uY3JlYXRlU2NyaXB0VVJMKHRoaXMucGF0aCk6dGhpcy5wYXRoLHQuaGVhZC5hcHBlbmRDaGlsZChuKX19ZWxzZSBnb29nLmxvZ1RvQ29uc29sZV8oXCJDYW5ub3QgdXNlIGRlZmF1bHQgZGVidWcgbG9hZGVyIG91dHNpZGUgb2YgSFRNTCBkb2N1bWVudHMuXCIpLFwiZGVwcy5qc1wiPT10aGlzLnJlbGF0aXZlUGF0aD8oZ29vZy5sb2dUb0NvbnNvbGVfKFwiQ29uc2lkZXIgc2V0dGluZyBDTE9TVVJFX0lNUE9SVF9TQ1JJUFQgYmVmb3JlIGxvYWRpbmcgYmFzZS5qcywgb3Igc2V0dGluZyBDTE9TVVJFX05PX0RFUFMgdG8gdHJ1ZS5cIiksZS5sb2FkZWQoKSk6ZS5wYXVzZSgpfSxnb29nLkVzNk1vZHVsZURlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG8scixuKXtnb29nLkRlcGVuZGVuY3kuY2FsbCh0aGlzLGUsdCxvLHIsbil9LGdvb2cuaW5oZXJpdHMoZ29vZy5FczZNb2R1bGVEZXBlbmRlbmN5LGdvb2cuRGVwZW5kZW5jeSksZ29vZy5FczZNb2R1bGVEZXBlbmRlbmN5LnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUpe2lmKGdvb2cuZ2xvYmFsLkNMT1NVUkVfSU1QT1JUX1NDUklQVClnb29nLmdsb2JhbC5DTE9TVVJFX0lNUE9SVF9TQ1JJUFQodGhpcy5wYXRoKT9lLmxvYWRlZCgpOmUucGF1c2UoKTtlbHNlIGlmKGdvb2cuaW5IdG1sRG9jdW1lbnRfKCkpe3ZhciB0PWdvb2cuZ2xvYmFsLmRvY3VtZW50LG89dGhpcztpZihnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpKXt2YXIgcj1mdW5jdGlvbihlLG8pe2U9bz8nPHNjcmlwdCB0eXBlPVwibW9kdWxlXCIgY3Jvc3NvcmlnaW4+JytvK1wiPFxcL3NjcmlwdD5cIjonPHNjcmlwdCB0eXBlPVwibW9kdWxlXCIgY3Jvc3NvcmlnaW4gc3JjPVwiJytlKydcIj48XFwvc2NyaXB0PicsdC53cml0ZShnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVIVE1MKGUpOmUpfTtnb29nLkRlcGVuZGVuY3kuZGVmZXJfPSEwfWVsc2Ugcj1mdW5jdGlvbihlLG8pe3ZhciByPXQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtyLmRlZmVyPSEwLHIuYXN5bmM9ITEsci50eXBlPVwibW9kdWxlXCIsci5zZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiLCEwKTt2YXIgbj1nb29nLmdldFNjcmlwdE5vbmNlKCk7biYmci5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLG4pLG8/ci50ZXh0Q29udGVudD1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVTY3JpcHQobyk6bzpyLnNyYz1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz9nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXy5jcmVhdGVTY3JpcHRVUkwoZSk6ZSx0LmhlYWQuYXBwZW5kQ2hpbGQocil9O3ZhciBuPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24oKXtnb29nLkRlcGVuZGVuY3kudW5yZWdpc3RlckNhbGxiYWNrXyhuKSxlLnNldE1vZHVsZVN0YXRlKGdvb2cuTW9kdWxlVHlwZS5FUzYpfSkpO3Iodm9pZCAwLCdnb29nLkRlcGVuZGVuY3kuY2FsbGJhY2tfKFwiJytuKydcIiknKSxyKHRoaXMucGF0aCx2b2lkIDApO3ZhciBzPWdvb2cuRGVwZW5kZW5jeS5yZWdpc3RlckNhbGxiYWNrXygoZnVuY3Rpb24odCl7Z29vZy5EZXBlbmRlbmN5LnVucmVnaXN0ZXJDYWxsYmFja18ocyksZS5yZWdpc3RlckVzNk1vZHVsZUV4cG9ydHMoby5wYXRoLHQsZ29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZSl9KSk7cih2b2lkIDAsJ2ltcG9ydCAqIGFzIG0gZnJvbSBcIicrdGhpcy5wYXRoKydcIjsgZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXyhcIicrcysnXCIsIG0pJyk7dmFyIGk9Z29vZy5EZXBlbmRlbmN5LnJlZ2lzdGVyQ2FsbGJhY2tfKChmdW5jdGlvbigpe2dvb2cuRGVwZW5kZW5jeS51bnJlZ2lzdGVyQ2FsbGJhY2tfKGkpLGUuY2xlYXJNb2R1bGVTdGF0ZSgpLGUubG9hZGVkKCl9KSk7cih2b2lkIDAsJ2dvb2cuRGVwZW5kZW5jeS5jYWxsYmFja18oXCInK2krJ1wiKScpfWVsc2UgZ29vZy5sb2dUb0NvbnNvbGVfKFwiQ2Fubm90IHVzZSBkZWZhdWx0IGRlYnVnIGxvYWRlciBvdXRzaWRlIG9mIEhUTUwgZG9jdW1lbnRzLlwiKSxlLnBhdXNlKCl9LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxvLHIsbil7Z29vZy5EZXBlbmRlbmN5LmNhbGwodGhpcyxlLHQsbyxyLG4pLHRoaXMuY29udGVudHNfPW51bGwsdGhpcy5sYXp5RmV0Y2hfPSFnb29nLmluSHRtbERvY3VtZW50XygpfHwhKFwibm9Nb2R1bGVcImluIGdvb2cuZ2xvYmFsLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpfSxnb29nLmluaGVyaXRzKGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LGdvb2cuRGVwZW5kZW5jeSksZ29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCgpe3IuY29udGVudHNfPWdvb2cubG9hZEZpbGVTeW5jXyhyLnBhdGgpLHIuY29udGVudHNfJiYoci5jb250ZW50c189ci50cmFuc2Zvcm0oci5jb250ZW50c18pLHIuY29udGVudHNfJiYoci5jb250ZW50c18rPVwiXFxuLy8jIHNvdXJjZVVSTD1cIityLnBhdGgpKX1mdW5jdGlvbiBvKCl7aWYoci5sYXp5RmV0Y2hfJiZ0KCksci5jb250ZW50c18pe24mJmUuc2V0TW9kdWxlU3RhdGUoZ29vZy5Nb2R1bGVUeXBlLkVTNik7dHJ5e3ZhciBvPXIuY29udGVudHNfO2lmKHIuY29udGVudHNfPW51bGwsZ29vZy5nbG9iYWxFdmFsKG8pLG4pdmFyIHM9Z29vZy5tb2R1bGVMb2FkZXJTdGF0ZV8ubW9kdWxlTmFtZX1maW5hbGx5e24mJmUuY2xlYXJNb2R1bGVTdGF0ZSgpfW4mJmdvb2cuZ2xvYmFsLiRqc2NvbXAucmVxdWlyZS5lbnN1cmUoW3IuZ2V0UGF0aE5hbWUoKV0sKGZ1bmN0aW9uKCl7ZS5yZWdpc3RlckVzNk1vZHVsZUV4cG9ydHMoci5wYXRoLGdvb2cuZ2xvYmFsLiRqc2NvbXAucmVxdWlyZShyLmdldFBhdGhOYW1lKCkpLHMpfSkpLGUubG9hZGVkKCl9fXZhciByPXRoaXM7aWYoZ29vZy5nbG9iYWwuQ0xPU1VSRV9JTVBPUlRfU0NSSVBUKXQoKSx0aGlzLmNvbnRlbnRzXyYmZ29vZy5nbG9iYWwuQ0xPU1VSRV9JTVBPUlRfU0NSSVBUKFwiXCIsdGhpcy5jb250ZW50c18pPyh0aGlzLmNvbnRlbnRzXz1udWxsLGUubG9hZGVkKCkpOmUucGF1c2UoKTtlbHNle3ZhciBuPXRoaXMubG9hZEZsYWdzLm1vZHVsZT09Z29vZy5Nb2R1bGVUeXBlLkVTNjt0aGlzLmxhenlGZXRjaF98fHQoKTt2YXIgcz0xPGUucGVuZGluZygpLmxlbmd0aCxpPXMmJmdvb2cuRGVidWdMb2FkZXJfLklTX09MRF9JRV87aWYocz1nb29nLkRlcGVuZGVuY3kuZGVmZXJfJiYoc3x8Z29vZy5pc0RvY3VtZW50TG9hZGluZ18oKSksaXx8cyllLmRlZmVyKChmdW5jdGlvbigpe28oKX0pKTtlbHNle3ZhciBhPWdvb2cuZ2xvYmFsLmRvY3VtZW50O2lmKGk9Z29vZy5pbkh0bWxEb2N1bWVudF8oKSYmXCJBY3RpdmVYT2JqZWN0XCJpbiBnb29nLmdsb2JhbCxuJiZnb29nLmluSHRtbERvY3VtZW50XygpJiZnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpJiYhaSl7Z29vZy5EZXBlbmRlbmN5LmRlZmVyXz0hMCxlLnBhdXNlKCk7dmFyIGc9YS5vbnJlYWR5c3RhdGVjaGFuZ2U7YS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtcImludGVyYWN0aXZlXCI9PWEucmVhZHlTdGF0ZSYmKGEub25yZWFkeXN0YXRlY2hhbmdlPWcsbygpLGUucmVzdW1lKCkpLGdvb2cuaXNGdW5jdGlvbihnKSYmZy5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19ZWxzZSFnb29nLkRlYnVnTG9hZGVyXy5JU19PTERfSUVfJiZnb29nLmluSHRtbERvY3VtZW50XygpJiZnb29nLmlzRG9jdW1lbnRMb2FkaW5nXygpP2Z1bmN0aW9uKCl7dmFyIGU9Z29vZy5nbG9iYWwuZG9jdW1lbnQsdD1nb29nLkRlcGVuZGVuY3kucmVnaXN0ZXJDYWxsYmFja18oKGZ1bmN0aW9uKCl7Z29vZy5EZXBlbmRlbmN5LnVucmVnaXN0ZXJDYWxsYmFja18odCksbygpfSkpLHI9JzxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPicrZ29vZy5wcm90ZWN0U2NyaXB0VGFnXygnZ29vZy5EZXBlbmRlbmN5LmNhbGxiYWNrXyhcIicrdCsnXCIpOycpK1wiPFxcL3NjcmlwdD5cIjtlLndyaXRlKGdvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfP2dvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfLmNyZWF0ZUhUTUwocik6cil9KCk6bygpfX19LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZSl7fSxnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxvLHIsbixzKXtnb29nLlRyYW5zZm9ybWVkRGVwZW5kZW5jeS5jYWxsKHRoaXMsZSx0LG8scixuKSx0aGlzLnRyYW5zcGlsZXI9c30sZ29vZy5pbmhlcml0cyhnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5LGdvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5KSxnb29nLlRyYW5zcGlsZWREZXBlbmRlbmN5LnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHJhbnNwaWxlci50cmFuc3BpbGUoZSx0aGlzLmdldFBhdGhOYW1lKCkpfSxnb29nLlByZVRyYW5zcGlsZWRFczZNb2R1bGVEZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxvLHIsbil7Z29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kuY2FsbCh0aGlzLGUsdCxvLHIsbil9LGdvb2cuaW5oZXJpdHMoZ29vZy5QcmVUcmFuc3BpbGVkRXM2TW9kdWxlRGVwZW5kZW5jeSxnb29nLlRyYW5zZm9ybWVkRGVwZW5kZW5jeSksZ29vZy5QcmVUcmFuc3BpbGVkRXM2TW9kdWxlRGVwZW5kZW5jeS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxnb29nLkdvb2dNb2R1bGVEZXBlbmRlbmN5PWZ1bmN0aW9uKGUsdCxvLHIsbixzLGkpe2dvb2cuVHJhbnNmb3JtZWREZXBlbmRlbmN5LmNhbGwodGhpcyxlLHQsbyxyLG4pLHRoaXMubmVlZHNUcmFuc3BpbGVfPXMsdGhpcy50cmFuc3BpbGVyXz1pfSxnb29nLmluaGVyaXRzKGdvb2cuR29vZ01vZHVsZURlcGVuZGVuY3ksZ29vZy5UcmFuc2Zvcm1lZERlcGVuZGVuY3kpLGdvb2cuR29vZ01vZHVsZURlcGVuZGVuY3kucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uZWVkc1RyYW5zcGlsZV8mJihlPXRoaXMudHJhbnNwaWxlcl8udHJhbnNwaWxlKGUsdGhpcy5nZXRQYXRoTmFtZSgpKSksZ29vZy5MT0FEX01PRFVMRV9VU0lOR19FVkFMJiZnb29nLmlzRGVmKGdvb2cuZ2xvYmFsLkpTT04pP1wiZ29vZy5sb2FkTW9kdWxlKFwiK2dvb2cuZ2xvYmFsLkpTT04uc3RyaW5naWZ5KGUrXCJcXG4vLyMgc291cmNlVVJMPVwiK3RoaXMucGF0aCtcIlxcblwiKStcIik7XCI6J2dvb2cubG9hZE1vZHVsZShmdW5jdGlvbihleHBvcnRzKSB7XCJ1c2Ugc3RyaWN0XCI7JytlK1wiXFxuO3JldHVybiBleHBvcnRzfSk7XFxuLy8jIHNvdXJjZVVSTD1cIit0aGlzLnBhdGgrXCJcXG5cIn0sZ29vZy5EZWJ1Z0xvYWRlcl8uSVNfT0xEX0lFXz0hKGdvb2cuZ2xvYmFsLmF0b2J8fCFnb29nLmdsb2JhbC5kb2N1bWVudHx8IWdvb2cuZ2xvYmFsLmRvY3VtZW50LmFsbCksZ29vZy5EZWJ1Z0xvYWRlcl8ucHJvdG90eXBlLmFkZERlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0LG8scil7dD10fHxbXSxlPWUucmVwbGFjZSgvXFxcXC9nLFwiL1wiKTt2YXIgbj1nb29nLm5vcm1hbGl6ZVBhdGhfKGdvb2cuYmFzZVBhdGgrZSk7Zm9yKHImJlwiYm9vbGVhblwiIT10eXBlb2Ygcnx8KHI9cj97bW9kdWxlOmdvb2cuTW9kdWxlVHlwZS5HT09HfTp7fSksbz10aGlzLmZhY3RvcnlfLmNyZWF0ZURlcGVuZGVuY3kobixlLHQsbyxyLGdvb2cudHJhbnNwaWxlcl8ubmVlZHNUcmFuc3BpbGUoci5sYW5nfHxcImVzM1wiLHIubW9kdWxlKSksdGhpcy5kZXBlbmRlbmNpZXNfW25dPW8sbz0wO288dC5sZW5ndGg7bysrKXRoaXMuaWRUb1BhdGhfW3Rbb11dPW47dGhpcy5pZFRvUGF0aF9bZV09bn0sZ29vZy5EZXBlbmRlbmN5RmFjdG9yeT1mdW5jdGlvbihlKXt0aGlzLnRyYW5zcGlsZXI9ZX0sZ29vZy5EZXBlbmRlbmN5RmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlRGVwZW5kZW5jeT1mdW5jdGlvbihlLHQsbyxyLG4scyl7cmV0dXJuIG4ubW9kdWxlPT1nb29nLk1vZHVsZVR5cGUuR09PRz9uZXcgZ29vZy5Hb29nTW9kdWxlRGVwZW5kZW5jeShlLHQsbyxyLG4scyx0aGlzLnRyYW5zcGlsZXIpOnM/bmV3IGdvb2cuVHJhbnNwaWxlZERlcGVuZGVuY3koZSx0LG8scixuLHRoaXMudHJhbnNwaWxlcik6bi5tb2R1bGU9PWdvb2cuTW9kdWxlVHlwZS5FUzY/XCJuZXZlclwiPT1nb29nLlRSQU5TUElMRSYmZ29vZy5BU1NVTUVfRVNfTU9EVUxFU19UUkFOU1BJTEVEP25ldyBnb29nLlByZVRyYW5zcGlsZWRFczZNb2R1bGVEZXBlbmRlbmN5KGUsdCxvLHIsbik6bmV3IGdvb2cuRXM2TW9kdWxlRGVwZW5kZW5jeShlLHQsbyxyLG4pOm5ldyBnb29nLkRlcGVuZGVuY3koZSx0LG8scixuKX0sZ29vZy5kZWJ1Z0xvYWRlcl89bmV3IGdvb2cuRGVidWdMb2FkZXJfLGdvb2cubG9hZENsb3N1cmVEZXBzPWZ1bmN0aW9uKCl7Z29vZy5kZWJ1Z0xvYWRlcl8ubG9hZENsb3N1cmVEZXBzKCl9LGdvb2cuc2V0RGVwZW5kZW5jeUZhY3Rvcnk9ZnVuY3Rpb24oZSl7Z29vZy5kZWJ1Z0xvYWRlcl8uc2V0RGVwZW5kZW5jeUZhY3RvcnkoZSl9LGdvb2cuZ2xvYmFsLkNMT1NVUkVfTk9fREVQU3x8Z29vZy5kZWJ1Z0xvYWRlcl8ubG9hZENsb3N1cmVEZXBzKCksZ29vZy5ib290c3RyYXA9ZnVuY3Rpb24oZSx0KXtnb29nLmRlYnVnTG9hZGVyXy5ib290c3RyYXAoZSx0KX0pLGdvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfTkFNRT1cIlwiLGdvb2cuaWRlbnRpdHlfPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxnb29nLmNyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeT1mdW5jdGlvbihlKXt2YXIgdD1udWxsO2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBUcnVzdGVkVHlwZXN8fCFUcnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KXJldHVybiB0O3RyeXt0PVRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koZSx7Y3JlYXRlSFRNTDpnb29nLmlkZW50aXR5XyxjcmVhdGVTY3JpcHQ6Z29vZy5pZGVudGl0eV8sY3JlYXRlU2NyaXB0VVJMOmdvb2cuaWRlbnRpdHlfLGNyZWF0ZVVSTDpnb29nLmlkZW50aXR5X30pfWNhdGNoKGUpe2dvb2cubG9nVG9Db25zb2xlXyhlLm1lc3NhZ2UpfXJldHVybiB0fSxnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZXz1nb29nLlRSVVNURURfVFlQRVNfUE9MSUNZX05BTUU/Z29vZy5jcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3koZ29vZy5UUlVTVEVEX1RZUEVTX1BPTElDWV9OQU1FK1wiI2Jhc2VcIik6bnVsbCxnb29nLm9iamVjdD17fSxnb29nLm9iamVjdC5pcz1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dD8wIT09ZXx8MS9lPT0xL3Q6ZSE9ZSYmdCE9dH0sZ29vZy5vYmplY3QuZm9yRWFjaD1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByIGluIGUpdC5jYWxsKG8sZVtyXSxyLGUpfSxnb29nLm9iamVjdC5maWx0ZXI9ZnVuY3Rpb24oZSx0LG8pe3ZhciByLG49e307Zm9yKHIgaW4gZSl0LmNhbGwobyxlW3JdLHIsZSkmJihuW3JdPWVbcl0pO3JldHVybiBufSxnb29nLm9iamVjdC5tYXA9ZnVuY3Rpb24oZSx0LG8pe3ZhciByLG49e307Zm9yKHIgaW4gZSluW3JdPXQuY2FsbChvLGVbcl0scixlKTtyZXR1cm4gbn0sZ29vZy5vYmplY3Quc29tZT1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByIGluIGUpaWYodC5jYWxsKG8sZVtyXSxyLGUpKXJldHVybiEwO3JldHVybiExfSxnb29nLm9iamVjdC5ldmVyeT1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByIGluIGUpaWYoIXQuY2FsbChvLGVbcl0scixlKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ29vZy5vYmplY3QuZ2V0Q291bnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbz0wO2Zvcih0IGluIGUpbysrO3JldHVybiBvfSxnb29nLm9iamVjdC5nZXRBbnlLZXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpcmV0dXJuIHR9LGdvb2cub2JqZWN0LmdldEFueVZhbHVlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXJldHVybiBlW3RdfSxnb29nLm9iamVjdC5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLm9iamVjdC5jb250YWluc1ZhbHVlKGUsdCl9LGdvb2cub2JqZWN0LmdldFZhbHVlcz1mdW5jdGlvbihlKXt2YXIgdCxvPVtdLHI9MDtmb3IodCBpbiBlKW9bcisrXT1lW3RdO3JldHVybiBvfSxnb29nLm9iamVjdC5nZXRLZXlzPWZ1bmN0aW9uKGUpe3ZhciB0LG89W10scj0wO2Zvcih0IGluIGUpb1tyKytdPXQ7cmV0dXJuIG99LGdvb2cub2JqZWN0LmdldFZhbHVlQnlLZXlzPWZ1bmN0aW9uKGUsdCl7dmFyIG89Z29vZy5pc0FycmF5TGlrZSh0KSxyPW8/dDphcmd1bWVudHM7Zm9yKG89bz8wOjE7bzxyLmxlbmd0aDtvKyspe2lmKG51bGw9PWUpcmV0dXJuO2U9ZVtyW29dXX1yZXR1cm4gZX0sZ29vZy5vYmplY3QuY29udGFpbnNLZXk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9PWUmJnQgaW4gZX0sZ29vZy5vYmplY3QuY29udGFpbnNWYWx1ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKWlmKGVbb109PXQpcmV0dXJuITA7cmV0dXJuITF9LGdvb2cub2JqZWN0LmZpbmRLZXk9ZnVuY3Rpb24oZSx0LG8pe2Zvcih2YXIgciBpbiBlKWlmKHQuY2FsbChvLGVbcl0scixlKSlyZXR1cm4gcn0sZ29vZy5vYmplY3QuZmluZFZhbHVlPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4odD1nb29nLm9iamVjdC5maW5kS2V5KGUsdCxvKSkmJmVbdF19LGdvb2cub2JqZWN0LmlzRW1wdHk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdvb2cub2JqZWN0LmNsZWFyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKWRlbGV0ZSBlW3RdfSxnb29nLm9iamVjdC5yZW1vdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbztyZXR1cm4obz10IGluIGUpJiZkZWxldGUgZVt0XSxvfSxnb29nLm9iamVjdC5hZGQ9ZnVuY3Rpb24oZSx0LG8pe2lmKG51bGwhPT1lJiZ0IGluIGUpdGhyb3cgRXJyb3IoJ1RoZSBvYmplY3QgYWxyZWFkeSBjb250YWlucyB0aGUga2V5IFwiJyt0KydcIicpO2dvb2cub2JqZWN0LnNldChlLHQsbyl9LGdvb2cub2JqZWN0LmdldD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIG51bGwhPT1lJiZ0IGluIGU/ZVt0XTpvfSxnb29nLm9iamVjdC5zZXQ9ZnVuY3Rpb24oZSx0LG8pe2VbdF09b30sZ29vZy5vYmplY3Quc2V0SWZVbmRlZmluZWQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0IGluIGU/ZVt0XTplW3RdPW99LGdvb2cub2JqZWN0LnNldFdpdGhSZXR1cm5WYWx1ZUlmTm90U2V0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gdCBpbiBlP2VbdF06KG89bygpLGVbdF09byl9LGdvb2cub2JqZWN0LmVxdWFscz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiBlKWlmKCEobyBpbiB0KXx8ZVtvXSE9PXRbb10pcmV0dXJuITE7Zm9yKHZhciByIGluIHQpaWYoIShyIGluIGUpKXJldHVybiExO3JldHVybiEwfSxnb29nLm9iamVjdC5jbG9uZT1mdW5jdGlvbihlKXt2YXIgdCxvPXt9O2Zvcih0IGluIGUpb1t0XT1lW3RdO3JldHVybiBvfSxnb29nLm9iamVjdC51bnNhZmVDbG9uZT1mdW5jdGlvbihlKXt2YXIgdD1nb29nLnR5cGVPZihlKTtpZihcIm9iamVjdFwiPT10fHxcImFycmF5XCI9PXQpe2lmKGdvb2cuaXNGdW5jdGlvbihlLmNsb25lKSlyZXR1cm4gZS5jbG9uZSgpO2Zvcih2YXIgbyBpbiB0PVwiYXJyYXlcIj09dD9bXTp7fSxlKXRbb109Z29vZy5vYmplY3QudW5zYWZlQ2xvbmUoZVtvXSk7cmV0dXJuIHR9cmV0dXJuIGV9LGdvb2cub2JqZWN0LnRyYW5zcG9zZT1mdW5jdGlvbihlKXt2YXIgdCxvPXt9O2Zvcih0IGluIGUpb1tlW3RdXT10O3JldHVybiBvfSxnb29nLm9iamVjdC5QUk9UT1RZUEVfRklFTERTXz1cImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZlwiLnNwbGl0KFwiIFwiKSxnb29nLm9iamVjdC5leHRlbmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8scixuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7Zm9yKG8gaW4gcj1hcmd1bWVudHNbbl0pZVtvXT1yW29dO2Zvcih2YXIgcz0wO3M8Z29vZy5vYmplY3QuUFJPVE9UWVBFX0ZJRUxEU18ubGVuZ3RoO3MrKylvPWdvb2cub2JqZWN0LlBST1RPVFlQRV9GSUVMRFNfW3NdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiYoZVtvXT1yW29dKX19LGdvb2cub2JqZWN0LmNyZWF0ZT1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoO2lmKDE9PXQmJmdvb2cuaXNBcnJheShhcmd1bWVudHNbMF0pKXJldHVybiBnb29nLm9iamVjdC5jcmVhdGUuYXBwbHkobnVsbCxhcmd1bWVudHNbMF0pO2lmKHQlMil0aHJvdyBFcnJvcihcIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzXCIpO2Zvcih2YXIgbz17fSxyPTA7cjx0O3IrPTIpb1thcmd1bWVudHNbcl1dPWFyZ3VtZW50c1tyKzFdO3JldHVybiBvfSxnb29nLm9iamVjdC5jcmVhdGVTZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDtpZigxPT10JiZnb29nLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gZ29vZy5vYmplY3QuY3JlYXRlU2V0LmFwcGx5KG51bGwsYXJndW1lbnRzWzBdKTtmb3IodmFyIG89e30scj0wO3I8dDtyKyspb1thcmd1bWVudHNbcl1dPSEwO3JldHVybiBvfSxnb29nLm9iamVjdC5jcmVhdGVJbW11dGFibGVWaWV3PWZ1bmN0aW9uKGUpe3ZhciB0PWU7cmV0dXJuIE9iamVjdC5pc0Zyb3plbiYmIU9iamVjdC5pc0Zyb3plbihlKSYmKHQ9T2JqZWN0LmNyZWF0ZShlKSxPYmplY3QuZnJlZXplKHQpKSx0fSxnb29nLm9iamVjdC5pc0ltbXV0YWJsZVZpZXc9ZnVuY3Rpb24oZSl7cmV0dXJuISFPYmplY3QuaXNGcm96ZW4mJk9iamVjdC5pc0Zyb3plbihlKX0sZ29vZy5vYmplY3QuZ2V0QWxsUHJvcGVydHlOYW1lcz1mdW5jdGlvbihlLHQsbyl7aWYoIWUpcmV0dXJuW107aWYoIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHwhT2JqZWN0LmdldFByb3RvdHlwZU9mKXJldHVybiBnb29nLm9iamVjdC5nZXRLZXlzKGUpO2Zvcih2YXIgcj17fTtlJiYoZSE9PU9iamVjdC5wcm90b3R5cGV8fHQpJiYoZSE9PUZ1bmN0aW9uLnByb3RvdHlwZXx8byk7KXtmb3IodmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkscz0wO3M8bi5sZW5ndGg7cysrKXJbbltzXV09ITA7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSl9cmV0dXJuIGdvb2cub2JqZWN0LmdldEtleXMocil9LGdvb2cub2JqZWN0LmdldFN1cGVyQ2xhc3M9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUucHJvdG90eXBlKSkmJmUuY29uc3RydWN0b3J9LGdvb2cuZGVidWc9e30sZ29vZy5kZWJ1Zy5FcnJvcj1mdW5jdGlvbihlKXtpZihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSlFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGdvb2cuZGVidWcuRXJyb3IpO2Vsc2V7dmFyIHQ9RXJyb3IoKS5zdGFjazt0JiYodGhpcy5zdGFjaz10KX1lJiYodGhpcy5tZXNzYWdlPVN0cmluZyhlKSksdGhpcy5yZXBvcnRFcnJvclRvU2VydmVyPSEwfSxnb29nLmluaGVyaXRzKGdvb2cuZGVidWcuRXJyb3IsRXJyb3IpLGdvb2cuZGVidWcuRXJyb3IucHJvdG90eXBlLm5hbWU9XCJDdXN0b21FcnJvclwiLGdvb2cuZG9tPXt9LGdvb2cuZG9tLk5vZGVUeXBlPXtFTEVNRU5UOjEsQVRUUklCVVRFOjIsVEVYVDozLENEQVRBX1NFQ1RJT046NCxFTlRJVFlfUkVGRVJFTkNFOjUsRU5USVRZOjYsUFJPQ0VTU0lOR19JTlNUUlVDVElPTjo3LENPTU1FTlQ6OCxET0NVTUVOVDo5LERPQ1VNRU5UX1RZUEU6MTAsRE9DVU1FTlRfRlJBR01FTlQ6MTEsTk9UQVRJT046MTJ9LGdvb2cuYXNzZXJ0cz17fSxnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFM9Z29vZy5ERUJVRyxnb29nLmFzc2VydHMuQXNzZXJ0aW9uRXJyb3I9ZnVuY3Rpb24oZSx0KXtnb29nLmRlYnVnLkVycm9yLmNhbGwodGhpcyxnb29nLmFzc2VydHMuc3Vic18oZSx0KSksdGhpcy5tZXNzYWdlUGF0dGVybj1lfSxnb29nLmluaGVyaXRzKGdvb2cuYXNzZXJ0cy5Bc3NlcnRpb25FcnJvcixnb29nLmRlYnVnLkVycm9yKSxnb29nLmFzc2VydHMuQXNzZXJ0aW9uRXJyb3IucHJvdG90eXBlLm5hbWU9XCJBc3NlcnRpb25FcnJvclwiLGdvb2cuYXNzZXJ0cy5ERUZBVUxUX0VSUk9SX0hBTkRMRVI9ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZ29vZy5hc3NlcnRzLmVycm9ySGFuZGxlcl89Z29vZy5hc3NlcnRzLkRFRkFVTFRfRVJST1JfSEFORExFUixnb29nLmFzc2VydHMuc3Vic189ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89XCJcIixyPShlPWUuc3BsaXQoXCIlc1wiKSkubGVuZ3RoLTEsbj0wO248cjtuKyspbys9ZVtuXSsobjx0Lmxlbmd0aD90W25dOlwiJXNcIik7cmV0dXJuIG8rZVtyXX0sZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV89ZnVuY3Rpb24oZSx0LG8scil7dmFyIG49XCJBc3NlcnRpb24gZmFpbGVkXCI7aWYobyl7bis9XCI6IFwiK287dmFyIHM9cn1lbHNlIGUmJihuKz1cIjogXCIrZSxzPXQpO2U9bmV3IGdvb2cuYXNzZXJ0cy5Bc3NlcnRpb25FcnJvcihcIlwiK24sc3x8W10pLGdvb2cuYXNzZXJ0cy5lcnJvckhhbmRsZXJfKGUpfSxnb29nLmFzc2VydHMuc2V0RXJyb3JIYW5kbGVyPWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmKGdvb2cuYXNzZXJ0cy5lcnJvckhhbmRsZXJfPWUpfSxnb29nLmFzc2VydHMuYXNzZXJ0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiYhZSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJcIixudWxsLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0RXhpc3RzPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiZudWxsPT1lJiZnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkIHRvIGV4aXN0OiAlcy5cIixbZV0sdCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpLGV9LGdvb2cuYXNzZXJ0cy5mYWlsPWZ1bmN0aW9uKGUsdCl7Z29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiZnb29nLmFzc2VydHMuZXJyb3JIYW5kbGVyXyhuZXcgZ29vZy5hc3NlcnRzLkFzc2VydGlvbkVycm9yKFwiRmFpbHVyZVwiKyhlP1wiOiBcIitlOlwiXCIpLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSkpfSxnb29nLmFzc2VydHMuYXNzZXJ0TnVtYmVyPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiYhZ29vZy5pc051bWJlcihlKSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBudW1iZXIgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0U3RyaW5nPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiYhZ29vZy5pc1N0cmluZyhlKSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBzdHJpbmcgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0RnVuY3Rpb249ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJiFnb29nLmlzRnVuY3Rpb24oZSkmJmdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgZnVuY3Rpb24gYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0T2JqZWN0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTJiYhZ29vZy5pc09iamVjdChlKSYmZ29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBvYmplY3QgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0QXJyYXk9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFzc2VydHMuRU5BQkxFX0FTU0VSVFMmJiFnb29nLmlzQXJyYXkoZSkmJmdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgYXJyYXkgYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0Qm9vbGVhbj1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyYmIWdvb2cuaXNCb29sZWFuKGUpJiZnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkIGJvb2xlYW4gYnV0IGdvdCAlczogJXMuXCIsW2dvb2cudHlwZU9mKGUpLGVdLHQsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKSxlfSxnb29nLmFzc2VydHMuYXNzZXJ0RWxlbWVudD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIWdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUU3x8Z29vZy5pc09iamVjdChlKSYmZS5ub2RlVHlwZT09Z29vZy5kb20uTm9kZVR5cGUuRUxFTUVOVHx8Z29vZy5hc3NlcnRzLmRvQXNzZXJ0RmFpbHVyZV8oXCJFeHBlY3RlZCBFbGVtZW50IGJ1dCBnb3QgJXM6ICVzLlwiLFtnb29nLnR5cGVPZihlKSxlXSx0LEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSksZX0sZ29vZy5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2Y9ZnVuY3Rpb24oZSx0LG8scil7cmV0dXJuIWdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUU3x8ZSBpbnN0YW5jZW9mIHR8fGdvb2cuYXNzZXJ0cy5kb0Fzc2VydEZhaWx1cmVfKFwiRXhwZWN0ZWQgaW5zdGFuY2VvZiAlcyBidXQgZ290ICVzLlwiLFtnb29nLmFzc2VydHMuZ2V0VHlwZV8odCksZ29vZy5hc3NlcnRzLmdldFR5cGVfKGUpXSxvLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKSksZX0sZ29vZy5hc3NlcnRzLmFzc2VydEZpbml0ZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIWdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUU3x8XCJudW1iZXJcIj09dHlwZW9mIGUmJmlzRmluaXRlKGUpfHxnb29nLmFzc2VydHMuZG9Bc3NlcnRGYWlsdXJlXyhcIkV4cGVjdGVkICVzIHRvIGJlIGEgZmluaXRlIG51bWJlciBidXQgaXQgaXMgbm90LlwiLFtlXSx0LEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKSksZX0sZ29vZy5hc3NlcnRzLmFzc2VydE9iamVjdFByb3RvdHlwZUlzSW50YWN0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIE9iamVjdC5wcm90b3R5cGUpZ29vZy5hc3NlcnRzLmZhaWwoZStcIiBzaG91bGQgbm90IGJlIGVudW1lcmFibGUgaW4gT2JqZWN0LnByb3RvdHlwZS5cIil9LGdvb2cuYXNzZXJ0cy5nZXRUeXBlXz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEZ1bmN0aW9uP2UuZGlzcGxheU5hbWV8fGUubmFtZXx8XCJ1bmtub3duIHR5cGUgbmFtZVwiOmUgaW5zdGFuY2VvZiBPYmplY3Q/ZS5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZXx8ZS5jb25zdHJ1Y3Rvci5uYW1lfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk6bnVsbD09PWU/XCJudWxsXCI6dHlwZW9mIGV9O3ZhciBqc3BiPXtCaW5hcnlDb25zdGFudHM6e30sQ29uc3RCaW5hcnlNZXNzYWdlOmZ1bmN0aW9uKCl7fSxCaW5hcnlNZXNzYWdlOmZ1bmN0aW9uKCl7fX07anNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlPXtJTlZBTElEOi0xLERPVUJMRToxLEZMT0FUOjIsSU5UNjQ6MyxVSU5UNjQ6NCxJTlQzMjo1LEZJWEVENjQ6NixGSVhFRDMyOjcsQk9PTDo4LFNUUklORzo5LEdST1VQOjEwLE1FU1NBR0U6MTEsQllURVM6MTIsVUlOVDMyOjEzLEVOVU06MTQsU0ZJWEVEMzI6MTUsU0ZJWEVENjQ6MTYsU0lOVDMyOjE3LFNJTlQ2NDoxOCxGSEFTSDY0OjMwLFZIQVNINjQ6MzF9LGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlPXtJTlZBTElEOi0xLFZBUklOVDowLEZJWEVENjQ6MSxERUxJTUlURUQ6MixTVEFSVF9HUk9VUDozLEVORF9HUk9VUDo0LEZJWEVEMzI6NX0sanNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlVG9XaXJlVHlwZT1mdW5jdGlvbihlKXt2YXIgdD1qc3BiLkJpbmFyeUNvbnN0YW50cy5GaWVsZFR5cGUsbz1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZTtzd2l0Y2goZSl7Y2FzZSB0LklOVDMyOmNhc2UgdC5JTlQ2NDpjYXNlIHQuVUlOVDMyOmNhc2UgdC5VSU5UNjQ6Y2FzZSB0LlNJTlQzMjpjYXNlIHQuU0lOVDY0OmNhc2UgdC5CT09MOmNhc2UgdC5FTlVNOmNhc2UgdC5WSEFTSDY0OnJldHVybiBvLlZBUklOVDtjYXNlIHQuRE9VQkxFOmNhc2UgdC5GSVhFRDY0OmNhc2UgdC5TRklYRUQ2NDpjYXNlIHQuRkhBU0g2NDpyZXR1cm4gby5GSVhFRDY0O2Nhc2UgdC5TVFJJTkc6Y2FzZSB0Lk1FU1NBR0U6Y2FzZSB0LkJZVEVTOnJldHVybiBvLkRFTElNSVRFRDtjYXNlIHQuRkxPQVQ6Y2FzZSB0LkZJWEVEMzI6Y2FzZSB0LlNGSVhFRDMyOnJldHVybiBvLkZJWEVEMzI7ZGVmYXVsdDpyZXR1cm4gby5JTlZBTElEfX0sanNwYi5CaW5hcnlDb25zdGFudHMuSU5WQUxJRF9GSUVMRF9OVU1CRVI9LTEsanNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQzMl9FUFM9MTQwMTI5ODQ2NDMyNDgxN2UtNjAsanNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQzMl9NSU49MTE3NTQ5NDM1MDgyMjI4NzVlLTU0LGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUFYPTM0MDI4MjM0NjYzODUyODg2ZTIyLGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfRVBTPTVlLTMyNCxqc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X01JTj0yMjI1MDczODU4NTA3MjAxNGUtMzI0LGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUFYPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mixqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMjA9MTA0ODU3Nixqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMjM9ODM4ODYwOCxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzE9MjE0NzQ4MzY0OCxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzI9NDI5NDk2NzI5Nixqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNTI9NDUwMzU5OTYyNzM3MDQ5Nixqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjM9MHg4MDAwMDAwMDAwMDAwMDAwLGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182ND0weDEwMDAwMDAwMDAwMDAwMDAwLGpzcGIuQmluYXJ5Q29uc3RhbnRzLlpFUk9fSEFTSD1cIlxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFwiLGdvb2cuYXJyYXk9e30sZ29vZy5OQVRJVkVfQVJSQVlfUFJPVE9UWVBFUz1nb29nLlRSVVNURURfU0lURSxnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TPTIwMTI8Z29vZy5GRUFUVVJFU0VUX1lFQVIsZ29vZy5hcnJheS5wZWVrPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UubGVuZ3RoLTFdfSxnb29nLmFycmF5Lmxhc3Q9Z29vZy5hcnJheS5wZWVrLGdvb2cuYXJyYXkuaW5kZXhPZj1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLmluZGV4T2YpP2Z1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChlLHQsbyl9OmZ1bmN0aW9uKGUsdCxvKXtpZihvPW51bGw9PW8/MDowPm8/TWF0aC5tYXgoMCxlLmxlbmd0aCtvKTpvLGdvb2cuaXNTdHJpbmcoZSkpcmV0dXJuIGdvb2cuaXNTdHJpbmcodCkmJjE9PXQubGVuZ3RoP2UuaW5kZXhPZih0LG8pOi0xO2Zvcig7bzxlLmxlbmd0aDtvKyspaWYobyBpbiBlJiZlW29dPT09dClyZXR1cm4gbztyZXR1cm4tMX0sZ29vZy5hcnJheS5sYXN0SW5kZXhPZj1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mKT9mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGUsdCxudWxsPT1vP2UubGVuZ3RoLTE6byl9OmZ1bmN0aW9uKGUsdCxvKXtpZigwPihvPW51bGw9PW8/ZS5sZW5ndGgtMTpvKSYmKG89TWF0aC5tYXgoMCxlLmxlbmd0aCtvKSksZ29vZy5pc1N0cmluZyhlKSlyZXR1cm4gZ29vZy5pc1N0cmluZyh0KSYmMT09dC5sZW5ndGg/ZS5sYXN0SW5kZXhPZih0LG8pOi0xO2Zvcig7MDw9bztvLS0paWYobyBpbiBlJiZlW29dPT09dClyZXR1cm4gbztyZXR1cm4tMX0sZ29vZy5hcnJheS5mb3JFYWNoPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuZm9yRWFjaCk/ZnVuY3Rpb24oZSx0LG8pe2dvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSx0LG8pfTpmdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPWUubGVuZ3RoLG49Z29vZy5pc1N0cmluZyhlKT9lLnNwbGl0KFwiXCIpOmUscz0wO3M8cjtzKyspcyBpbiBuJiZ0LmNhbGwobyxuW3NdLHMsZSl9LGdvb2cuYXJyYXkuZm9yRWFjaFJpZ2h0PWZ1bmN0aW9uKGUsdCxvKXt2YXIgcj1lLmxlbmd0aCxuPWdvb2cuaXNTdHJpbmcoZSk/ZS5zcGxpdChcIlwiKTplO2ZvcigtLXI7MDw9cjstLXIpciBpbiBuJiZ0LmNhbGwobyxuW3JdLHIsZSl9LGdvb2cuYXJyYXkuZmlsdGVyPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuZmlsdGVyKT9mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChlLHQsbyl9OmZ1bmN0aW9uKGUsdCxvKXtmb3IodmFyIHI9ZS5sZW5ndGgsbj1bXSxzPTAsaT1nb29nLmlzU3RyaW5nKGUpP2Uuc3BsaXQoXCJcIik6ZSxhPTA7YTxyO2ErKylpZihhIGluIGkpe3ZhciBnPWlbYV07dC5jYWxsKG8sZyxhLGUpJiYobltzKytdPWcpfXJldHVybiBufSxnb29nLmFycmF5Lm1hcD1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLm1hcCk/ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KG51bGwhPWUubGVuZ3RoKSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoZSx0LG8pfTpmdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPWUubGVuZ3RoLG49QXJyYXkocikscz1nb29nLmlzU3RyaW5nKGUpP2Uuc3BsaXQoXCJcIik6ZSxpPTA7aTxyO2krKylpIGluIHMmJihuW2ldPXQuY2FsbChvLHNbaV0saSxlKSk7cmV0dXJuIG59LGdvb2cuYXJyYXkucmVkdWNlPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUucmVkdWNlKT9mdW5jdGlvbihlLHQsbyxyKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksciYmKHQ9Z29vZy5iaW5kKHQscikpLEFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbChlLHQsbyl9OmZ1bmN0aW9uKGUsdCxvLHIpe3ZhciBuPW87cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaChlLChmdW5jdGlvbihvLHMpe249dC5jYWxsKHIsbixvLHMsZSl9KSksbn0sZ29vZy5hcnJheS5yZWR1Y2VSaWdodD1nb29nLk5BVElWRV9BUlJBWV9QUk9UT1RZUEVTJiYoZ29vZy5hcnJheS5BU1NVTUVfTkFUSVZFX0ZVTkNUSU9OU3x8QXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0KT9mdW5jdGlvbihlLHQsbyxyKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT10KSxyJiYodD1nb29nLmJpbmQodCxyKSksQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmNhbGwoZSx0LG8pfTpmdW5jdGlvbihlLHQsbyxyKXt2YXIgbj1vO3JldHVybiBnb29nLmFycmF5LmZvckVhY2hSaWdodChlLChmdW5jdGlvbihvLHMpe249dC5jYWxsKHIsbixvLHMsZSl9KSksbn0sZ29vZy5hcnJheS5zb21lPWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuc29tZSk/ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KG51bGwhPWUubGVuZ3RoKSxBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGUsdCxvKX06ZnVuY3Rpb24oZSx0LG8pe2Zvcih2YXIgcj1lLmxlbmd0aCxuPWdvb2cuaXNTdHJpbmcoZSk/ZS5zcGxpdChcIlwiKTplLHM9MDtzPHI7cysrKWlmKHMgaW4gbiYmdC5jYWxsKG8sbltzXSxzLGUpKXJldHVybiEwO3JldHVybiExfSxnb29nLmFycmF5LmV2ZXJ5PWdvb2cuTkFUSVZFX0FSUkFZX1BST1RPVFlQRVMmJihnb29nLmFycmF5LkFTU1VNRV9OQVRJVkVfRlVOQ1RJT05TfHxBcnJheS5wcm90b3R5cGUuZXZlcnkpP2Z1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwoZSx0LG8pfTpmdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPWUubGVuZ3RoLG49Z29vZy5pc1N0cmluZyhlKT9lLnNwbGl0KFwiXCIpOmUscz0wO3M8cjtzKyspaWYocyBpbiBuJiYhdC5jYWxsKG8sbltzXSxzLGUpKXJldHVybiExO3JldHVybiEwfSxnb29nLmFycmF5LmNvdW50PWZ1bmN0aW9uKGUsdCxvKXt2YXIgcj0wO3JldHVybiBnb29nLmFycmF5LmZvckVhY2goZSwoZnVuY3Rpb24oZSxuLHMpe3QuY2FsbChvLGUsbixzKSYmKytyfSksbykscn0sZ29vZy5hcnJheS5maW5kPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gMD4odD1nb29nLmFycmF5LmZpbmRJbmRleChlLHQsbykpP251bGw6Z29vZy5pc1N0cmluZyhlKT9lLmNoYXJBdCh0KTplW3RdfSxnb29nLmFycmF5LmZpbmRJbmRleD1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPWUubGVuZ3RoLG49Z29vZy5pc1N0cmluZyhlKT9lLnNwbGl0KFwiXCIpOmUscz0wO3M8cjtzKyspaWYocyBpbiBuJiZ0LmNhbGwobyxuW3NdLHMsZSkpcmV0dXJuIHM7cmV0dXJuLTF9LGdvb2cuYXJyYXkuZmluZFJpZ2h0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gMD4odD1nb29nLmFycmF5LmZpbmRJbmRleFJpZ2h0KGUsdCxvKSk/bnVsbDpnb29nLmlzU3RyaW5nKGUpP2UuY2hhckF0KHQpOmVbdF19LGdvb2cuYXJyYXkuZmluZEluZGV4UmlnaHQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciByPWUubGVuZ3RoLG49Z29vZy5pc1N0cmluZyhlKT9lLnNwbGl0KFwiXCIpOmU7Zm9yKC0tcjswPD1yO3ItLSlpZihyIGluIG4mJnQuY2FsbChvLG5bcl0scixlKSlyZXR1cm4gcjtyZXR1cm4tMX0sZ29vZy5hcnJheS5jb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiAwPD1nb29nLmFycmF5LmluZGV4T2YoZSx0KX0sZ29vZy5hcnJheS5pc0VtcHR5PWZ1bmN0aW9uKGUpe3JldHVybiAwPT1lLmxlbmd0aH0sZ29vZy5hcnJheS5jbGVhcj1mdW5jdGlvbihlKXtpZighZ29vZy5pc0FycmF5KGUpKWZvcih2YXIgdD1lLmxlbmd0aC0xOzA8PXQ7dC0tKWRlbGV0ZSBlW3RdO2UubGVuZ3RoPTB9LGdvb2cuYXJyYXkuaW5zZXJ0PWZ1bmN0aW9uKGUsdCl7Z29vZy5hcnJheS5jb250YWlucyhlLHQpfHxlLnB1c2godCl9LGdvb2cuYXJyYXkuaW5zZXJ0QXQ9ZnVuY3Rpb24oZSx0LG8pe2dvb2cuYXJyYXkuc3BsaWNlKGUsbywwLHQpfSxnb29nLmFycmF5Lmluc2VydEFycmF5QXQ9ZnVuY3Rpb24oZSx0LG8pe2dvb2cucGFydGlhbChnb29nLmFycmF5LnNwbGljZSxlLG8sMCkuYXBwbHkobnVsbCx0KX0sZ29vZy5hcnJheS5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24oZSx0LG8pe3ZhciByOzI9PWFyZ3VtZW50cy5sZW5ndGh8fDA+KHI9Z29vZy5hcnJheS5pbmRleE9mKGUsbykpP2UucHVzaCh0KTpnb29nLmFycmF5Lmluc2VydEF0KGUsdCxyKX0sZ29vZy5hcnJheS5yZW1vdmU9ZnVuY3Rpb24oZSx0KXt2YXIgbztyZXR1cm4obz0wPD0odD1nb29nLmFycmF5LmluZGV4T2YoZSx0KSkpJiZnb29nLmFycmF5LnJlbW92ZUF0KGUsdCksb30sZ29vZy5hcnJheS5yZW1vdmVMYXN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA8PSh0PWdvb2cuYXJyYXkubGFzdEluZGV4T2YoZSx0KSkmJihnb29nLmFycmF5LnJlbW92ZUF0KGUsdCksITApfSxnb29nLmFycmF5LnJlbW92ZUF0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9ZS5sZW5ndGgpLDE9PUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChlLHQsMSkubGVuZ3RofSxnb29nLmFycmF5LnJlbW92ZUlmPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gMDw9KHQ9Z29vZy5hcnJheS5maW5kSW5kZXgoZSx0LG8pKSYmKGdvb2cuYXJyYXkucmVtb3ZlQXQoZSx0KSwhMCl9LGdvb2cuYXJyYXkucmVtb3ZlQWxsSWY9ZnVuY3Rpb24oZSx0LG8pe3ZhciByPTA7cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaFJpZ2h0KGUsKGZ1bmN0aW9uKG4scyl7dC5jYWxsKG8sbixzLGUpJiZnb29nLmFycmF5LnJlbW92ZUF0KGUscykmJnIrK30pKSxyfSxnb29nLmFycmF5LmNvbmNhdD1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxhcmd1bWVudHMpfSxnb29nLmFycmF5LmpvaW49ZnVuY3Rpb24oZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sYXJndW1lbnRzKX0sZ29vZy5hcnJheS50b0FycmF5PWZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2lmKDA8dCl7Zm9yKHZhciBvPUFycmF5KHQpLHI9MDtyPHQ7cisrKW9bcl09ZVtyXTtyZXR1cm4gb31yZXR1cm5bXX0sZ29vZy5hcnJheS5jbG9uZT1nb29nLmFycmF5LnRvQXJyYXksZ29vZy5hcnJheS5leHRlbmQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgcj1hcmd1bWVudHNbb107aWYoZ29vZy5pc0FycmF5TGlrZShyKSl7dmFyIG49ZS5sZW5ndGh8fDAscz1yLmxlbmd0aHx8MDtlLmxlbmd0aD1uK3M7Zm9yKHZhciBpPTA7aTxzO2krKyllW24raV09cltpXX1lbHNlIGUucHVzaChyKX19LGdvb2cuYXJyYXkuc3BsaWNlPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KG51bGwhPWUubGVuZ3RoKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGUsZ29vZy5hcnJheS5zbGljZShhcmd1bWVudHMsMSkpfSxnb29nLmFycmF5LnNsaWNlPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksMj49YXJndW1lbnRzLmxlbmd0aD9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLHQpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsdCxvKX0sZ29vZy5hcnJheS5yZW1vdmVEdXBsaWNhdGVzPWZ1bmN0aW9uKGUsdCxvKXt0PXR8fGU7dmFyIHI9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaXNPYmplY3QoZSk/XCJvXCIrZ29vZy5nZXRVaWQoZSk6KHR5cGVvZiBlKS5jaGFyQXQoMCkrZX07bz1vfHxyLHI9e307Zm9yKHZhciBuPTAscz0wO3M8ZS5sZW5ndGg7KXt2YXIgaT1lW3MrK10sYT1vKGkpO09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLGEpfHwoclthXT0hMCx0W24rK109aSl9dC5sZW5ndGg9bn0sZ29vZy5hcnJheS5iaW5hcnlTZWFyY2g9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFycmF5LmJpbmFyeVNlYXJjaF8oZSxvfHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlLCExLHQpfSxnb29nLmFycmF5LmJpbmFyeVNlbGVjdD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGdvb2cuYXJyYXkuYmluYXJ5U2VhcmNoXyhlLHQsITAsdm9pZCAwLG8pfSxnb29nLmFycmF5LmJpbmFyeVNlYXJjaF89ZnVuY3Rpb24oZSx0LG8scixuKXtmb3IodmFyIHMsaT0wLGE9ZS5sZW5ndGg7aTxhOyl7dmFyIGc9aSthPj4xLGw9bz90LmNhbGwobixlW2ddLGcsZSk6dChyLGVbZ10pOzA8bD9pPWcrMTooYT1nLHM9IWwpfXJldHVybiBzP2k6fml9LGdvb2cuYXJyYXkuc29ydD1mdW5jdGlvbihlLHQpe2Uuc29ydCh0fHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlKX0sZ29vZy5hcnJheS5zdGFibGVTb3J0PWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPUFycmF5KGUubGVuZ3RoKSxyPTA7cjxlLmxlbmd0aDtyKyspb1tyXT17aW5kZXg6cix2YWx1ZTplW3JdfTt2YXIgbj10fHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlO2Zvcihnb29nLmFycmF5LnNvcnQobywoZnVuY3Rpb24oZSx0KXtyZXR1cm4gbihlLnZhbHVlLHQudmFsdWUpfHxlLmluZGV4LXQuaW5kZXh9KSkscj0wO3I8ZS5sZW5ndGg7cisrKWVbcl09b1tyXS52YWx1ZX0sZ29vZy5hcnJheS5zb3J0QnlLZXk9ZnVuY3Rpb24oZSx0LG8pe3ZhciByPW98fGdvb2cuYXJyYXkuZGVmYXVsdENvbXBhcmU7Z29vZy5hcnJheS5zb3J0KGUsKGZ1bmN0aW9uKGUsbyl7cmV0dXJuIHIodChlKSx0KG8pKX0pKX0sZ29vZy5hcnJheS5zb3J0T2JqZWN0c0J5S2V5PWZ1bmN0aW9uKGUsdCxvKXtnb29nLmFycmF5LnNvcnRCeUtleShlLChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLG8pfSxnb29nLmFycmF5LmlzU29ydGVkPWZ1bmN0aW9uKGUsdCxvKXt0PXR8fGdvb2cuYXJyYXkuZGVmYXVsdENvbXBhcmU7Zm9yKHZhciByPTE7cjxlLmxlbmd0aDtyKyspe3ZhciBuPXQoZVtyLTFdLGVbcl0pO2lmKDA8bnx8MD09biYmbylyZXR1cm4hMX1yZXR1cm4hMH0sZ29vZy5hcnJheS5lcXVhbHM9ZnVuY3Rpb24oZSx0LG8pe2lmKCFnb29nLmlzQXJyYXlMaWtlKGUpfHwhZ29vZy5pc0FycmF5TGlrZSh0KXx8ZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO3ZhciByPWUubGVuZ3RoO289b3x8Z29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZUVxdWFsaXR5O2Zvcih2YXIgbj0wO248cjtuKyspaWYoIW8oZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH0sZ29vZy5hcnJheS5jb21wYXJlMz1mdW5jdGlvbihlLHQsbyl7bz1vfHxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlO2Zvcih2YXIgcj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCksbj0wO248cjtuKyspe3ZhciBzPW8oZVtuXSx0W25dKTtpZigwIT1zKXJldHVybiBzfXJldHVybiBnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlKGUubGVuZ3RoLHQubGVuZ3RoKX0sZ29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZT1mdW5jdGlvbihlLHQpe3JldHVybiBlPnQ/MTplPHQ/LTE6MH0sZ29vZy5hcnJheS5pbnZlcnNlRGVmYXVsdENvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4tZ29vZy5hcnJheS5kZWZhdWx0Q29tcGFyZShlLHQpfSxnb29nLmFycmF5LmRlZmF1bHRDb21wYXJlRXF1YWxpdHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXR9LGdvb2cuYXJyYXkuYmluYXJ5SW5zZXJ0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gMD4obz1nb29nLmFycmF5LmJpbmFyeVNlYXJjaChlLHQsbykpJiYoZ29vZy5hcnJheS5pbnNlcnRBdChlLHQsLShvKzEpKSwhMCl9LGdvb2cuYXJyYXkuYmluYXJ5UmVtb3ZlPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gMDw9KHQ9Z29vZy5hcnJheS5iaW5hcnlTZWFyY2goZSx0LG8pKSYmZ29vZy5hcnJheS5yZW1vdmVBdChlLHQpfSxnb29nLmFycmF5LmJ1Y2tldD1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPXt9LG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHM9ZVtuXSxpPXQuY2FsbChvLHMsbixlKTtnb29nLmlzRGVmKGkpJiYocltpXXx8KHJbaV09W10pKS5wdXNoKHMpfXJldHVybiByfSxnb29nLmFycmF5LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCxvKXt2YXIgcj17fTtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoKGUsKGZ1bmN0aW9uKG4scyl7clt0LmNhbGwobyxuLHMsZSldPW59KSkscn0sZ29vZy5hcnJheS5yYW5nZT1mdW5jdGlvbihlLHQsbyl7dmFyIHI9W10sbj0wLHM9ZTtpZih2b2lkIDAhPT10JiYobj1lLHM9dCksMD4obz1vfHwxKSoocy1uKSlyZXR1cm5bXTtpZigwPG8pZm9yKGU9bjtlPHM7ZSs9bylyLnB1c2goZSk7ZWxzZSBmb3IoZT1uO2U+cztlKz1vKXIucHVzaChlKTtyZXR1cm4gcn0sZ29vZy5hcnJheS5yZXBlYXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89W10scj0wO3I8dDtyKyspb1tyXT1lO3JldHVybiBvfSxnb29nLmFycmF5LmZsYXR0ZW49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG89MDtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKXt2YXIgcj1hcmd1bWVudHNbb107aWYoZ29vZy5pc0FycmF5KHIpKWZvcih2YXIgbj0wO248ci5sZW5ndGg7bis9ODE5Mil7dmFyIHM9Z29vZy5hcnJheS5zbGljZShyLG4sbis4MTkyKTtzPWdvb2cuYXJyYXkuZmxhdHRlbi5hcHBseShudWxsLHMpO2Zvcih2YXIgaT0wO2k8cy5sZW5ndGg7aSsrKXQucHVzaChzW2ldKX1lbHNlIHQucHVzaChyKX1yZXR1cm4gdH0sZ29vZy5hcnJheS5yb3RhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1lLmxlbmd0aCksZS5sZW5ndGgmJigwPCh0JT1lLmxlbmd0aCk/QXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkoZSxlLnNwbGljZSgtdCx0KSk6MD50JiZBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShlLGUuc3BsaWNlKDAsLXQpKSksZX0sZ29vZy5hcnJheS5tb3ZlSXRlbT1mdW5jdGlvbihlLHQsbyl7Z29vZy5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGUubGVuZ3RoKSxnb29nLmFzc2VydHMuYXNzZXJ0KDA8PW8mJm88ZS5sZW5ndGgpLHQ9QXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKGUsdCwxKSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmNhbGwoZSxvLDAsdFswXSl9LGdvb2cuYXJyYXkuemlwPWZ1bmN0aW9uKGUpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgdD1bXSxvPWFyZ3VtZW50c1swXS5sZW5ndGgscj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspYXJndW1lbnRzW3JdLmxlbmd0aDxvJiYobz1hcmd1bWVudHNbcl0ubGVuZ3RoKTtmb3Iocj0wO3I8bztyKyspe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoO3MrKyluLnB1c2goYXJndW1lbnRzW3NdW3JdKTt0LnB1c2gobil9cmV0dXJuIHR9LGdvb2cuYXJyYXkuc2h1ZmZsZT1mdW5jdGlvbihlLHQpe3Q9dHx8TWF0aC5yYW5kb207Zm9yKHZhciBvPWUubGVuZ3RoLTE7MDxvO28tLSl7dmFyIHI9TWF0aC5mbG9vcih0KCkqKG8rMSkpLG49ZVtvXTtlW29dPWVbcl0sZVtyXT1ufX0sZ29vZy5hcnJheS5jb3B5QnlJbmRleD1mdW5jdGlvbihlLHQpe3ZhciBvPVtdO3JldHVybiBnb29nLmFycmF5LmZvckVhY2godCwoZnVuY3Rpb24odCl7by5wdXNoKGVbdF0pfSkpLG99LGdvb2cuYXJyYXkuY29uY2F0TWFwPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hcnJheS5jb25jYXQuYXBwbHkoW10sZ29vZy5hcnJheS5tYXAoZSx0LG8pKX0sZ29vZy5jcnlwdD17fSxnb29nLmNyeXB0LnN0cmluZ1RvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxvPTAscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lLmNoYXJDb2RlQXQocik7MjU1PG4mJih0W28rK109MjU1Jm4sbj4+PTgpLHRbbysrXT1ufXJldHVybiB0fSxnb29nLmNyeXB0LmJ5dGVBcnJheVRvU3RyaW5nPWZ1bmN0aW9uKGUpe2lmKDgxOTI+PWUubGVuZ3RoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZSk7Zm9yKHZhciB0PVwiXCIsbz0wO288ZS5sZW5ndGg7bys9ODE5Mil7dmFyIHI9Z29vZy5hcnJheS5zbGljZShlLG8sbys4MTkyKTt0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscil9cmV0dXJuIHR9LGdvb2cuY3J5cHQuYnl0ZUFycmF5VG9IZXg9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hcnJheS5tYXAoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIDE8KGU9ZS50b1N0cmluZygxNikpLmxlbmd0aD9lOlwiMFwiK2V9KSkuam9pbih0fHxcIlwiKX0sZ29vZy5jcnlwdC5oZXhUb0J5dGVBcnJheT1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KDA9PWUubGVuZ3RoJTIsXCJLZXkgc3RyaW5nIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIDJcIik7Zm9yKHZhciB0PVtdLG89MDtvPGUubGVuZ3RoO28rPTIpdC5wdXNoKHBhcnNlSW50KGUuc3Vic3RyaW5nKG8sbysyKSwxNikpO3JldHVybiB0fSxnb29nLmNyeXB0LnN0cmluZ1RvVXRmOEJ5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbz0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZS5jaGFyQ29kZUF0KHIpOzEyOD5uP3RbbysrXT1uOigyMDQ4Pm4/dFtvKytdPW4+PjZ8MTkyOig1NTI5Nj09KDY0NTEyJm4pJiZyKzE8ZS5sZW5ndGgmJjU2MzIwPT0oNjQ1MTImZS5jaGFyQ29kZUF0KHIrMSkpPyhuPTY1NTM2KygoMTAyMyZuKTw8MTApKygxMDIzJmUuY2hhckNvZGVBdCgrK3IpKSx0W28rK109bj4+MTh8MjQwLHRbbysrXT1uPj4xMiY2M3wxMjgpOnRbbysrXT1uPj4xMnwyMjQsdFtvKytdPW4+PjYmNjN8MTI4KSx0W28rK109NjMmbnwxMjgpfXJldHVybiB0fSxnb29nLmNyeXB0LnV0ZjhCeXRlQXJyYXlUb1N0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbz0wLHI9MDtvPGUubGVuZ3RoOyl7dmFyIG49ZVtvKytdO2lmKDEyOD5uKXRbcisrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO2Vsc2UgaWYoMTkxPG4mJjIyND5uKXt2YXIgcz1lW28rK107dFtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJm4pPDw2fDYzJnMpfWVsc2UgaWYoMjM5PG4mJjM2NT5uKXtzPWVbbysrXTt2YXIgaT1lW28rK107bj0oKDcmbik8PDE4fCg2MyZzKTw8MTJ8KDYzJmkpPDw2fDYzJmVbbysrXSktNjU1MzYsdFtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKG4+PjEwKSksdFtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTYzMjArKDEwMjMmbikpfWVsc2Ugcz1lW28rK10saT1lW28rK10sdFtyKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1Jm4pPDwxMnwoNjMmcyk8PDZ8NjMmaSl9cmV0dXJuIHQuam9pbihcIlwiKX0sZ29vZy5jcnlwdC54b3JCeXRlQXJyYXk9ZnVuY3Rpb24oZSx0KXtnb29nLmFzc2VydHMuYXNzZXJ0KGUubGVuZ3RoPT10Lmxlbmd0aCxcIlhPUiBhcnJheSBsZW5ndGhzIG11c3QgbWF0Y2hcIik7Zm9yKHZhciBvPVtdLHI9MDtyPGUubGVuZ3RoO3IrKylvLnB1c2goZVtyXV50W3JdKTtyZXR1cm4gb30sZ29vZy5kb20uYXNzZXJ0cz17fSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzTG9jYXRpb249ZnVuY3Rpb24oZSl7aWYoZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTKXt2YXIgdD1nb29nLmRvbS5hc3NlcnRzLmdldFdpbmRvd18oZSk7dCYmKCFlfHwhKGUgaW5zdGFuY2VvZiB0LkxvY2F0aW9uKSYmZSBpbnN0YW5jZW9mIHQuRWxlbWVudCkmJmdvb2cuYXNzZXJ0cy5mYWlsKFwiQXJndW1lbnQgaXMgbm90IGEgTG9jYXRpb24gKG9yIGEgbm9uLUVsZW1lbnQgbW9jayk7IGdvdDogJXNcIixnb29nLmRvbS5hc3NlcnRzLmRlYnVnU3RyaW5nRm9yVHlwZV8oZSkpfXJldHVybiBlfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfPWZ1bmN0aW9uKGUsdCl7aWYoZ29vZy5hc3NlcnRzLkVOQUJMRV9BU1NFUlRTKXt2YXIgbz1nb29nLmRvbS5hc3NlcnRzLmdldFdpbmRvd18oZSk7byYmdm9pZCAwIT09b1t0XSYmKGUmJihlIGluc3RhbmNlb2Ygb1t0XXx8IShlIGluc3RhbmNlb2Ygby5Mb2NhdGlvbnx8ZSBpbnN0YW5jZW9mIG8uRWxlbWVudCkpfHxnb29nLmFzc2VydHMuZmFpbChcIkFyZ3VtZW50IGlzIG5vdCBhICVzIChvciBhIG5vbi1FbGVtZW50LCBub24tTG9jYXRpb24gbW9jayk7IGdvdDogJXNcIix0LGdvb2cuZG9tLmFzc2VydHMuZGVidWdTdHJpbmdGb3JUeXBlXyhlKSkpfXJldHVybiBlfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEFuY2hvckVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxBbmNob3JFbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEJ1dHRvbkVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxCdXR0b25FbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTExpbmtFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MTGlua0VsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MSW1hZ2VFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MSW1hZ2VFbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEF1ZGlvRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTEF1ZGlvRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxWaWRlb0VsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxWaWRlb0VsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MSW5wdXRFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MSW5wdXRFbGVtZW50XCIpfSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTFRleHRBcmVhRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTFRleHRBcmVhRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxDYW52YXNFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzRWxlbWVudFR5cGVfKGUsXCJIVE1MQ2FudmFzRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxFbWJlZEVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxFbWJlZEVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MRm9ybUVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxGb3JtRWxlbWVudFwiKX0sZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxGcmFtZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNFbGVtZW50VHlwZV8oZSxcIkhUTUxGcmFtZUVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MSUZyYW1lRWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTElGcmFtZUVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MT2JqZWN0RWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTE9iamVjdEVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MU2NyaXB0RWxlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0VsZW1lbnRUeXBlXyhlLFwiSFRNTFNjcmlwdEVsZW1lbnRcIil9LGdvb2cuZG9tLmFzc2VydHMuZGVidWdTdHJpbmdGb3JUeXBlXz1mdW5jdGlvbihlKXtpZighZ29vZy5pc09iamVjdChlKSlyZXR1cm4gdm9pZCAwPT09ZT9cInVuZGVmaW5lZFwiOm51bGw9PT1lP1wibnVsbFwiOnR5cGVvZiBlO3RyeXtyZXR1cm4gZS5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZXx8ZS5jb25zdHJ1Y3Rvci5uYW1lfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9Y2F0Y2goZSl7cmV0dXJuXCI8b2JqZWN0IGNvdWxkIG5vdCBiZSBzdHJpbmdpZmllZD5cIn19LGdvb2cuZG9tLmFzc2VydHMuZ2V0V2luZG93Xz1mdW5jdGlvbihlKXt0cnl7dmFyIHQ9ZSYmZS5vd25lckRvY3VtZW50LG89dCYmKHQuZGVmYXVsdFZpZXd8fHQucGFyZW50V2luZG93KTtpZigobz1vfHxnb29nLmdsb2JhbCkuRWxlbWVudCYmby5Mb2NhdGlvbilyZXR1cm4gb31jYXRjaChlKXt9cmV0dXJuIG51bGx9LGdvb2cuZnVuY3Rpb25zPXt9LGdvb2cuZnVuY3Rpb25zLmNvbnN0YW50PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX0sZ29vZy5mdW5jdGlvbnMuRkFMU0U9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZ29vZy5mdW5jdGlvbnMuVFJVRT1mdW5jdGlvbigpe3JldHVybiEwfSxnb29nLmZ1bmN0aW9ucy5OVUxMPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGdvb2cuZnVuY3Rpb25zLmlkZW50aXR5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV9LGdvb2cuZnVuY3Rpb25zLmVycm9yPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IEVycm9yKGUpfX0sZ29vZy5mdW5jdGlvbnMuZmFpbD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aHJvdyBlfX0sZ29vZy5mdW5jdGlvbnMubG9jaz1mdW5jdGlvbihlLHQpe3JldHVybiB0PXR8fDAsZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwLHQpKX19LGdvb2cuZnVuY3Rpb25zLm50aD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzW2VdfX0sZ29vZy5mdW5jdGlvbnMucGFydGlhbFJpZ2h0PWZ1bmN0aW9uKGUsdCl7dmFyIG89QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIHQucHVzaC5hcHBseSh0LG8pLGUuYXBwbHkodGhpcyx0KX19LGdvb2cuZnVuY3Rpb25zLndpdGhSZXR1cm5WYWx1ZT1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmZ1bmN0aW9ucy5zZXF1ZW5jZShlLGdvb2cuZnVuY3Rpb25zLmNvbnN0YW50KHQpKX0sZ29vZy5mdW5jdGlvbnMuZXF1YWxUbz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihvKXtyZXR1cm4gdD9lPT1vOmU9PT1vfX0sZ29vZy5mdW5jdGlvbnMuY29tcG9zZT1mdW5jdGlvbihlLHQpe3ZhciBvPWFyZ3VtZW50cyxyPW8ubGVuZ3RoO3JldHVybiBmdW5jdGlvbigpe3ZhciBlO3ImJihlPW9bci0xXS5hcHBseSh0aGlzLGFyZ3VtZW50cykpO2Zvcih2YXIgdD1yLTI7MDw9dDt0LS0pZT1vW3RdLmNhbGwodGhpcyxlKTtyZXR1cm4gZX19LGdvb2cuZnVuY3Rpb25zLnNlcXVlbmNlPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cyxvPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZSxyPTA7cjxvO3IrKyllPXRbcl0uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlfX0sZ29vZy5mdW5jdGlvbnMuYW5kPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cyxvPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bztlKyspaWYoIXRbZV0uYXBwbHkodGhpcyxhcmd1bWVudHMpKXJldHVybiExO3JldHVybiEwfX0sZ29vZy5mdW5jdGlvbnMub3I9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLG89dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxvO2UrKylpZih0W2VdLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm4hMDtyZXR1cm4hMX19LGdvb2cuZnVuY3Rpb25zLm5vdD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4hZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxnb29nLmZ1bmN0aW9ucy5jcmVhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbz1mdW5jdGlvbigpe307cmV0dXJuIG8ucHJvdG90eXBlPWUucHJvdG90eXBlLG89bmV3IG8sZS5hcHBseShvLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSksb30sZ29vZy5mdW5jdGlvbnMuQ0FDSEVfUkVUVVJOX1ZBTFVFPSEwLGdvb2cuZnVuY3Rpb25zLmNhY2hlUmV0dXJuVmFsdWU9ZnVuY3Rpb24oZSl7dmFyIHQsbz0hMTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5mdW5jdGlvbnMuQ0FDSEVfUkVUVVJOX1ZBTFVFPyhvfHwodD1lKCksbz0hMCksdCk6ZSgpfX0sZ29vZy5mdW5jdGlvbnMub25jZT1mdW5jdGlvbihlKXt2YXIgdD1lO3JldHVybiBmdW5jdGlvbigpe2lmKHQpe3ZhciBlPXQ7dD1udWxsLGUoKX19fSxnb29nLmZ1bmN0aW9ucy5kZWJvdW5jZT1mdW5jdGlvbihlLHQsbyl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24obil7Z29vZy5nbG9iYWwuY2xlYXJUaW1lb3V0KHIpO3ZhciBzPWFyZ3VtZW50cztyPWdvb2cuZ2xvYmFsLnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5hcHBseShvLHMpfSksdCl9fSxnb29nLmZ1bmN0aW9ucy50aHJvdHRsZT1mdW5jdGlvbihlLHQsbyl7dmFyIHI9MCxuPSExLHM9W10saT1mdW5jdGlvbigpe3I9MCxuJiYobj0hMSxhKCkpfSxhPWZ1bmN0aW9uKCl7cj1nb29nLmdsb2JhbC5zZXRUaW1lb3V0KGksdCksZS5hcHBseShvLHMpfTtyZXR1cm4gZnVuY3Rpb24oZSl7cz1hcmd1bWVudHMscj9uPSEwOmEoKX19LGdvb2cuZnVuY3Rpb25zLnJhdGVMaW1pdD1mdW5jdGlvbihlLHQsbyl7dmFyIHI9MCxuPWZ1bmN0aW9uKCl7cj0wfTtyZXR1cm4gZnVuY3Rpb24ocyl7cnx8KHI9Z29vZy5nbG9iYWwuc2V0VGltZW91dChuLHQpLGUuYXBwbHkobyxhcmd1bWVudHMpKX19LGdvb2cuZG9tLkh0bWxFbGVtZW50PWZ1bmN0aW9uKCl7fSxnb29nLmRvbS5UYWdOYW1lPWZ1bmN0aW9uKGUpe3RoaXMudGFnTmFtZV89ZX0sZ29vZy5kb20uVGFnTmFtZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWdOYW1lX30sZ29vZy5kb20uVGFnTmFtZS5BPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQVwiKSxnb29nLmRvbS5UYWdOYW1lLkFCQlI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJBQkJSXCIpLGdvb2cuZG9tLlRhZ05hbWUuQUNST05ZTT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFDUk9OWU1cIiksZ29vZy5kb20uVGFnTmFtZS5BRERSRVNTPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQUREUkVTU1wiKSxnb29nLmRvbS5UYWdOYW1lLkFQUExFVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFQUExFVFwiKSxnb29nLmRvbS5UYWdOYW1lLkFSRUE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJBUkVBXCIpLGdvb2cuZG9tLlRhZ05hbWUuQVJUSUNMRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFSVElDTEVcIiksZ29vZy5kb20uVGFnTmFtZS5BU0lERT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkFTSURFXCIpLGdvb2cuZG9tLlRhZ05hbWUuQVVESU89bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJBVURJT1wiKSxnb29nLmRvbS5UYWdOYW1lLkI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCXCIpLGdvb2cuZG9tLlRhZ05hbWUuQkFTRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkJBU0VcIiksZ29vZy5kb20uVGFnTmFtZS5CQVNFRk9OVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkJBU0VGT05UXCIpLGdvb2cuZG9tLlRhZ05hbWUuQkRJPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQkRJXCIpLGdvb2cuZG9tLlRhZ05hbWUuQkRPPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQkRPXCIpLGdvb2cuZG9tLlRhZ05hbWUuQklHPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQklHXCIpLGdvb2cuZG9tLlRhZ05hbWUuQkxPQ0tRVU9URT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkJMT0NLUVVPVEVcIiksZ29vZy5kb20uVGFnTmFtZS5CT0RZPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQk9EWVwiKSxnb29nLmRvbS5UYWdOYW1lLkJSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQlJcIiksZ29vZy5kb20uVGFnTmFtZS5CVVRUT049bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJCVVRUT05cIiksZ29vZy5kb20uVGFnTmFtZS5DQU5WQVM9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJDQU5WQVNcIiksZ29vZy5kb20uVGFnTmFtZS5DQVBUSU9OPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiQ0FQVElPTlwiKSxnb29nLmRvbS5UYWdOYW1lLkNFTlRFUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNFTlRFUlwiKSxnb29nLmRvbS5UYWdOYW1lLkNJVEU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJDSVRFXCIpLGdvb2cuZG9tLlRhZ05hbWUuQ09ERT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNPREVcIiksZ29vZy5kb20uVGFnTmFtZS5DT0w9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJDT0xcIiksZ29vZy5kb20uVGFnTmFtZS5DT0xHUk9VUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNPTEdST1VQXCIpLGdvb2cuZG9tLlRhZ05hbWUuQ09NTUFORD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkNPTU1BTkRcIiksZ29vZy5kb20uVGFnTmFtZS5EQVRBPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiREFUQVwiKSxnb29nLmRvbS5UYWdOYW1lLkRBVEFMSVNUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiREFUQUxJU1RcIiksZ29vZy5kb20uVGFnTmFtZS5ERD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkREXCIpLGdvb2cuZG9tLlRhZ05hbWUuREVMPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiREVMXCIpLGdvb2cuZG9tLlRhZ05hbWUuREVUQUlMUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRFVEFJTFNcIiksZ29vZy5kb20uVGFnTmFtZS5ERk49bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJERk5cIiksZ29vZy5kb20uVGFnTmFtZS5ESUFMT0c9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJESUFMT0dcIiksZ29vZy5kb20uVGFnTmFtZS5ESVI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJESVJcIiksZ29vZy5kb20uVGFnTmFtZS5ESVY9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJESVZcIiksZ29vZy5kb20uVGFnTmFtZS5ETD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkRMXCIpLGdvb2cuZG9tLlRhZ05hbWUuRFQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJEVFwiKSxnb29nLmRvbS5UYWdOYW1lLkVNPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRU1cIiksZ29vZy5kb20uVGFnTmFtZS5FTUJFRD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkVNQkVEXCIpLGdvb2cuZG9tLlRhZ05hbWUuRklFTERTRVQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGSUVMRFNFVFwiKSxnb29nLmRvbS5UYWdOYW1lLkZJR0NBUFRJT049bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGSUdDQVBUSU9OXCIpLGdvb2cuZG9tLlRhZ05hbWUuRklHVVJFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRklHVVJFXCIpLGdvb2cuZG9tLlRhZ05hbWUuRk9OVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkZPTlRcIiksZ29vZy5kb20uVGFnTmFtZS5GT09URVI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJGT09URVJcIiksZ29vZy5kb20uVGFnTmFtZS5GT1JNPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRk9STVwiKSxnb29nLmRvbS5UYWdOYW1lLkZSQU1FPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiRlJBTUVcIiksZ29vZy5kb20uVGFnTmFtZS5GUkFNRVNFVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkZSQU1FU0VUXCIpLGdvb2cuZG9tLlRhZ05hbWUuSDE9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJIMVwiKSxnb29nLmRvbS5UYWdOYW1lLkgyPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSDJcIiksZ29vZy5kb20uVGFnTmFtZS5IMz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkgzXCIpLGdvb2cuZG9tLlRhZ05hbWUuSDQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJINFwiKSxnb29nLmRvbS5UYWdOYW1lLkg1PW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSDVcIiksZ29vZy5kb20uVGFnTmFtZS5INj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkg2XCIpLGdvb2cuZG9tLlRhZ05hbWUuSEVBRD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkhFQURcIiksZ29vZy5kb20uVGFnTmFtZS5IRUFERVI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJIRUFERVJcIiksZ29vZy5kb20uVGFnTmFtZS5IR1JPVVA9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJIR1JPVVBcIiksZ29vZy5kb20uVGFnTmFtZS5IUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkhSXCIpLGdvb2cuZG9tLlRhZ05hbWUuSFRNTD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkhUTUxcIiksZ29vZy5kb20uVGFnTmFtZS5JPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSVwiKSxnb29nLmRvbS5UYWdOYW1lLklGUkFNRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIklGUkFNRVwiKSxnb29nLmRvbS5UYWdOYW1lLklNRz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIklNR1wiKSxnb29nLmRvbS5UYWdOYW1lLklOUFVUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSU5QVVRcIiksZ29vZy5kb20uVGFnTmFtZS5JTlM9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJJTlNcIiksZ29vZy5kb20uVGFnTmFtZS5JU0lOREVYPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiSVNJTkRFWFwiKSxnb29nLmRvbS5UYWdOYW1lLktCRD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIktCRFwiKSxnb29nLmRvbS5UYWdOYW1lLktFWUdFTj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIktFWUdFTlwiKSxnb29nLmRvbS5UYWdOYW1lLkxBQkVMPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTEFCRUxcIiksZ29vZy5kb20uVGFnTmFtZS5MRUdFTkQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJMRUdFTkRcIiksZ29vZy5kb20uVGFnTmFtZS5MST1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkxJXCIpLGdvb2cuZG9tLlRhZ05hbWUuTElOSz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIkxJTktcIiksZ29vZy5kb20uVGFnTmFtZS5NQUlOPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUFJTlwiKSxnb29nLmRvbS5UYWdOYW1lLk1BUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk1BUFwiKSxnb29nLmRvbS5UYWdOYW1lLk1BUks9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJNQVJLXCIpLGdvb2cuZG9tLlRhZ05hbWUuTUFUSD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk1BVEhcIiksZ29vZy5kb20uVGFnTmFtZS5NRU5VPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUVOVVwiKSxnb29nLmRvbS5UYWdOYW1lLk1FTlVJVEVNPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUVOVUlURU1cIiksZ29vZy5kb20uVGFnTmFtZS5NRVRBPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUVUQVwiKSxnb29nLmRvbS5UYWdOYW1lLk1FVEVSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiTUVURVJcIiksZ29vZy5kb20uVGFnTmFtZS5OQVY9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJOQVZcIiksZ29vZy5kb20uVGFnTmFtZS5OT0ZSQU1FUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk5PRlJBTUVTXCIpLGdvb2cuZG9tLlRhZ05hbWUuTk9TQ1JJUFQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJOT1NDUklQVFwiKSxnb29nLmRvbS5UYWdOYW1lLk9CSkVDVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk9CSkVDVFwiKSxnb29nLmRvbS5UYWdOYW1lLk9MPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiT0xcIiksZ29vZy5kb20uVGFnTmFtZS5PUFRHUk9VUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIk9QVEdST1VQXCIpLGdvb2cuZG9tLlRhZ05hbWUuT1BUSU9OPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiT1BUSU9OXCIpLGdvb2cuZG9tLlRhZ05hbWUuT1VUUFVUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiT1VUUFVUXCIpLGdvb2cuZG9tLlRhZ05hbWUuUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlBcIiksZ29vZy5kb20uVGFnTmFtZS5QQVJBTT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlBBUkFNXCIpLGdvb2cuZG9tLlRhZ05hbWUuUElDVFVSRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlBJQ1RVUkVcIiksZ29vZy5kb20uVGFnTmFtZS5QUkU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJQUkVcIiksZ29vZy5kb20uVGFnTmFtZS5QUk9HUkVTUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlBST0dSRVNTXCIpLGdvb2cuZG9tLlRhZ05hbWUuUT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlFcIiksZ29vZy5kb20uVGFnTmFtZS5SUD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlJQXCIpLGdvb2cuZG9tLlRhZ05hbWUuUlQ9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJSVFwiKSxnb29nLmRvbS5UYWdOYW1lLlJUQz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlJUQ1wiKSxnb29nLmRvbS5UYWdOYW1lLlJVQlk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJSVUJZXCIpLGdvb2cuZG9tLlRhZ05hbWUuUz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNcIiksZ29vZy5kb20uVGFnTmFtZS5TQU1QPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU0FNUFwiKSxnb29nLmRvbS5UYWdOYW1lLlNDUklQVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNDUklQVFwiKSxnb29nLmRvbS5UYWdOYW1lLlNFQ1RJT049bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTRUNUSU9OXCIpLGdvb2cuZG9tLlRhZ05hbWUuU0VMRUNUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU0VMRUNUXCIpLGdvb2cuZG9tLlRhZ05hbWUuU01BTEw9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTTUFMTFwiKSxnb29nLmRvbS5UYWdOYW1lLlNPVVJDRT1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNPVVJDRVwiKSxnb29nLmRvbS5UYWdOYW1lLlNQQU49bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTUEFOXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1RSSUtFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1RSSUtFXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1RST05HPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1RST05HXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1RZTEU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVFlMRVwiKSxnb29nLmRvbS5UYWdOYW1lLlNVQj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlNVQlwiKSxnb29nLmRvbS5UYWdOYW1lLlNVTU1BUlk9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJTVU1NQVJZXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1VQPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1VQXCIpLGdvb2cuZG9tLlRhZ05hbWUuU1ZHPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiU1ZHXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEFCTEU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUQUJMRVwiKSxnb29nLmRvbS5UYWdOYW1lLlRCT0RZPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVEJPRFlcIiksZ29vZy5kb20uVGFnTmFtZS5URD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlREXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEVNUExBVEU9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJURU1QTEFURVwiKSxnb29nLmRvbS5UYWdOYW1lLlRFWFRBUkVBPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVEVYVEFSRUFcIiksZ29vZy5kb20uVGFnTmFtZS5URk9PVD1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRGT09UXCIpLGdvb2cuZG9tLlRhZ05hbWUuVEg9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUSFwiKSxnb29nLmRvbS5UYWdOYW1lLlRIRUFEPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVEhFQURcIiksZ29vZy5kb20uVGFnTmFtZS5USU1FPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVElNRVwiKSxnb29nLmRvbS5UYWdOYW1lLlRJVExFPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVElUTEVcIiksZ29vZy5kb20uVGFnTmFtZS5UUj1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlRSXCIpLGdvb2cuZG9tLlRhZ05hbWUuVFJBQ0s9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJUUkFDS1wiKSxnb29nLmRvbS5UYWdOYW1lLlRUPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVFRcIiksZ29vZy5kb20uVGFnTmFtZS5VPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVVwiKSxnb29nLmRvbS5UYWdOYW1lLlVMPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiVUxcIiksZ29vZy5kb20uVGFnTmFtZS5WQVI9bmV3IGdvb2cuZG9tLlRhZ05hbWUoXCJWQVJcIiksZ29vZy5kb20uVGFnTmFtZS5WSURFTz1uZXcgZ29vZy5kb20uVGFnTmFtZShcIlZJREVPXCIpLGdvb2cuZG9tLlRhZ05hbWUuV0JSPW5ldyBnb29nLmRvbS5UYWdOYW1lKFwiV0JSXCIpLGdvb2cuZG9tLnRhZ3M9e30sZ29vZy5kb20udGFncy5WT0lEX1RBR1NfPXthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGNvbW1hbmQ6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0sZ29vZy5kb20udGFncy5pc1ZvaWRUYWc9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1nb29nLmRvbS50YWdzLlZPSURfVEFHU19bZV19LGdvb2cuaHRtbD17fSxnb29nLmh0bWwudHJ1c3RlZHR5cGVzPXt9LGdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZPWdvb2cuVFJVU1RFRF9UWVBFU19QT0xJQ1lfTkFNRT9nb29nLmNyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeShnb29nLlRSVVNURURfVFlQRVNfUE9MSUNZX05BTUUrXCIjaHRtbFwiKTpudWxsLGdvb2cuc3RyaW5nPXt9LGdvb2cuc3RyaW5nLlR5cGVkU3RyaW5nPWZ1bmN0aW9uKCl7fSxnb29nLnN0cmluZy5Db25zdD1mdW5jdGlvbihlLHQpe3RoaXMuc3RyaW5nQ29uc3RWYWx1ZVdpdGhTZWN1cml0eUNvbnRyYWN0X19nb29nU3RyaW5nU2VjdXJpdHlQcml2YXRlXz1lPT09Z29vZy5zdHJpbmcuQ29uc3QuR09PR19TVFJJTkdfQ09OU1RSVUNUT1JfVE9LRU5fUFJJVkFURV8mJnR8fFwiXCIsdGhpcy5TVFJJTkdfQ09OU1RfVFlQRV9NQVJLRVJfX0dPT0dfU1RSSU5HX1NFQ1VSSVRZX1BSSVZBVEVfPWdvb2cuc3RyaW5nLkNvbnN0LlRZUEVfTUFSS0VSX30sZ29vZy5zdHJpbmcuQ29uc3QucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5zdHJpbmcuQ29uc3QucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdHJpbmdDb25zdFZhbHVlV2l0aFNlY3VyaXR5Q29udHJhY3RfX2dvb2dTdHJpbmdTZWN1cml0eVByaXZhdGVffSxnb29nLnN0cmluZy5Db25zdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIkNvbnN0e1wiK3RoaXMuc3RyaW5nQ29uc3RWYWx1ZVdpdGhTZWN1cml0eUNvbnRyYWN0X19nb29nU3RyaW5nU2VjdXJpdHlQcml2YXRlXytcIn1cIn0sZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5zdHJpbmcuQ29uc3QmJmUuY29uc3RydWN0b3I9PT1nb29nLnN0cmluZy5Db25zdCYmZS5TVFJJTkdfQ09OU1RfVFlQRV9NQVJLRVJfX0dPT0dfU1RSSU5HX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5zdHJpbmcuQ29uc3QuVFlQRV9NQVJLRVJfP2Uuc3RyaW5nQ29uc3RWYWx1ZVdpdGhTZWN1cml0eUNvbnRyYWN0X19nb29nU3RyaW5nU2VjdXJpdHlQcml2YXRlXzooZ29vZy5hc3NlcnRzLmZhaWwoXCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBDb25zdCwgZ290ICdcIitlK1wiJ1wiKSxcInR5cGVfZXJyb3I6Q29uc3RcIil9LGdvb2cuc3RyaW5nLkNvbnN0LmZyb209ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBnb29nLnN0cmluZy5Db25zdChnb29nLnN0cmluZy5Db25zdC5HT09HX1NUUklOR19DT05TVFJVQ1RPUl9UT0tFTl9QUklWQVRFXyxlKX0sZ29vZy5zdHJpbmcuQ29uc3QuVFlQRV9NQVJLRVJfPXt9LGdvb2cuc3RyaW5nLkNvbnN0LkdPT0dfU1RSSU5HX0NPTlNUUlVDVE9SX1RPS0VOX1BSSVZBVEVfPXt9LGdvb2cuc3RyaW5nLkNvbnN0LkVNUFRZPWdvb2cuc3RyaW5nLkNvbnN0LmZyb20oXCJcIiksZ29vZy5odG1sLlNhZmVTY3JpcHQ9ZnVuY3Rpb24oKXt0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTY3JpcHRXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy5TQUZFX1NDUklQVF9UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89Z29vZy5odG1sLlNhZmVTY3JpcHQuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVffSxnb29nLmh0bWwuU2FmZVNjcmlwdC5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz0hMCxnb29nLmh0bWwuU2FmZVNjcmlwdC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89e30sZ29vZy5odG1sLlNhZmVTY3JpcHQuZnJvbUNvbnN0YW50PWZ1bmN0aW9uKGUpe3JldHVybiAwPT09KGU9Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpKS5sZW5ndGg/Z29vZy5odG1sLlNhZmVTY3JpcHQuRU1QVFk6Z29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC5mcm9tQ29uc3RhbnRBbmRBcmdzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPVtdLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKW8ucHVzaChnb29nLmh0bWwuU2FmZVNjcmlwdC5zdHJpbmdpZnlfKGFyZ3VtZW50c1tyXSkpO3JldHVybiBnb29nLmh0bWwuU2FmZVNjcmlwdC5jcmVhdGVTYWZlU2NyaXB0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCIoXCIrZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpK1wiKShcIitvLmpvaW4oXCIsIFwiKStcIik7XCIpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC5mcm9tSnNvbj1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGdvb2cuaHRtbC5TYWZlU2NyaXB0LnN0cmluZ2lmeV8oZSkpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC5wcm90b3R5cGUuZ2V0VHlwZWRTdHJpbmdWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTY3JpcHRXcmFwcGVkVmFsdWVfLnRvU3RyaW5nKCl9LGdvb2cuREVCVUcmJihnb29nLmh0bWwuU2FmZVNjcmlwdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlNhZmVTY3JpcHR7XCIrdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU2NyaXB0V3JhcHBlZFZhbHVlXytcIn1cIn0pLGdvb2cuaHRtbC5TYWZlU2NyaXB0LnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwVHJ1c3RlZFNjcmlwdChlKS50b1N0cmluZygpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC51bndyYXBUcnVzdGVkU2NyaXB0PWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVTY3JpcHQmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuU2FmZVNjcmlwdCYmZS5TQUZFX1NDUklQVF9UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89PT1nb29nLmh0bWwuU2FmZVNjcmlwdC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU2NyaXB0V3JhcHBlZFZhbHVlXzooZ29vZy5hc3NlcnRzLmZhaWwoXCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlU2NyaXB0LCBnb3QgJ1wiK2UrXCInIG9mIHR5cGUgXCIrZ29vZy50eXBlT2YoZSkpLFwidHlwZV9lcnJvcjpTYWZlU2NyaXB0XCIpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC5zdHJpbmdpZnlfPWZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKS5yZXBsYWNlKC88L2csXCJcXFxceDNjXCIpfSxnb29nLmh0bWwuU2FmZVNjcmlwdC5jcmVhdGVTYWZlU2NyaXB0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2U9ZnVuY3Rpb24oZSl7cmV0dXJuKG5ldyBnb29nLmh0bWwuU2FmZVNjcmlwdCkuaW5pdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlXyhlKX0sZ29vZy5odG1sLlNhZmVTY3JpcHQucHJvdG90eXBlLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVNjcmlwdFdyYXBwZWRWYWx1ZV89Z29vZy5odG1sLnRydXN0ZWR0eXBlcy5QUklWQVRFX0RPX05PVF9BQ0NFU1NfT1JfRUxTRV9QT0xJQ1k/Z29vZy5odG1sLnRydXN0ZWR0eXBlcy5QUklWQVRFX0RPX05PVF9BQ0NFU1NfT1JfRUxTRV9QT0xJQ1kuY3JlYXRlU2NyaXB0KGUpOmUsdGhpc30sZ29vZy5odG1sLlNhZmVTY3JpcHQuRU1QVFk9Z29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXCIpLGdvb2cuZnM9e30sZ29vZy5mcy51cmw9e30sZ29vZy5mcy51cmwuY3JlYXRlT2JqZWN0VXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmZzLnVybC5nZXRVcmxPYmplY3RfKCkuY3JlYXRlT2JqZWN0VVJMKGUpfSxnb29nLmZzLnVybC5yZXZva2VPYmplY3RVcmw9ZnVuY3Rpb24oZSl7Z29vZy5mcy51cmwuZ2V0VXJsT2JqZWN0XygpLnJldm9rZU9iamVjdFVSTChlKX0sZ29vZy5mcy51cmwuZ2V0VXJsT2JqZWN0Xz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZnMudXJsLmZpbmRVcmxPYmplY3RfKCk7aWYobnVsbCE9ZSlyZXR1cm4gZTt0aHJvdyBFcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHNlZW0gdG8gc3VwcG9ydCBibG9iIFVSTHNcIil9LGdvb2cuZnMudXJsLmZpbmRVcmxPYmplY3RfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuaXNEZWYoZ29vZy5nbG9iYWwuVVJMKSYmZ29vZy5pc0RlZihnb29nLmdsb2JhbC5VUkwuY3JlYXRlT2JqZWN0VVJMKT9nb29nLmdsb2JhbC5VUkw6Z29vZy5pc0RlZihnb29nLmdsb2JhbC53ZWJraXRVUkwpJiZnb29nLmlzRGVmKGdvb2cuZ2xvYmFsLndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwpP2dvb2cuZ2xvYmFsLndlYmtpdFVSTDpnb29nLmlzRGVmKGdvb2cuZ2xvYmFsLmNyZWF0ZU9iamVjdFVSTCk/Z29vZy5nbG9iYWw6bnVsbH0sZ29vZy5mcy51cmwuYnJvd3NlclN1cHBvcnRzT2JqZWN0VXJscz1mdW5jdGlvbigpe3JldHVybiBudWxsIT1nb29nLmZzLnVybC5maW5kVXJsT2JqZWN0XygpfSxnb29nLmkxOG49e30sZ29vZy5pMThuLmJpZGk9e30sZ29vZy5pMThuLmJpZGkuRk9SQ0VfUlRMPSExLGdvb2cuaTE4bi5iaWRpLklTX1JUTD1nb29nLmkxOG4uYmlkaS5GT1JDRV9SVEx8fChcImFyXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwiZmFcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKXx8XCJoZVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpfHxcIml3XCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwicHNcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKXx8XCJzZFwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpfHxcInVnXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDIpLnRvTG93ZXJDYXNlKCl8fFwidXJcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDAsMikudG9Mb3dlckNhc2UoKXx8XCJ5aVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMCwyKS50b0xvd2VyQ2FzZSgpKSYmKDI9PWdvb2cuTE9DQUxFLmxlbmd0aHx8XCItXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygyLDMpfHxcIl9cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDIsMykpfHwzPD1nb29nLkxPQ0FMRS5sZW5ndGgmJlwiY2tiXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygwLDMpLnRvTG93ZXJDYXNlKCkmJigzPT1nb29nLkxPQ0FMRS5sZW5ndGh8fFwiLVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw0KXx8XCJfXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDQpKXx8Nzw9Z29vZy5MT0NBTEUubGVuZ3RoJiYoXCItXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygyLDMpfHxcIl9cIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDIsMykpJiYoXCJhZGxtXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDcpLnRvTG93ZXJDYXNlKCl8fFwiYXJhYlwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw3KS50b0xvd2VyQ2FzZSgpfHxcImhlYnJcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNykudG9Mb3dlckNhc2UoKXx8XCJua29vXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDcpLnRvTG93ZXJDYXNlKCl8fFwicm9oZ1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw3KS50b0xvd2VyQ2FzZSgpfHxcInRoYWFcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDMsNykudG9Mb3dlckNhc2UoKSl8fDg8PWdvb2cuTE9DQUxFLmxlbmd0aCYmKFwiLVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoMyw0KXx8XCJfXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZygzLDQpKSYmKFwiYWRsbVwiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoNCw4KS50b0xvd2VyQ2FzZSgpfHxcImFyYWJcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDQsOCkudG9Mb3dlckNhc2UoKXx8XCJoZWJyXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZyg0LDgpLnRvTG93ZXJDYXNlKCl8fFwibmtvb1wiPT1nb29nLkxPQ0FMRS5zdWJzdHJpbmcoNCw4KS50b0xvd2VyQ2FzZSgpfHxcInJvaGdcIj09Z29vZy5MT0NBTEUuc3Vic3RyaW5nKDQsOCkudG9Mb3dlckNhc2UoKXx8XCJ0aGFhXCI9PWdvb2cuTE9DQUxFLnN1YnN0cmluZyg0LDgpLnRvTG93ZXJDYXNlKCkpLGdvb2cuaTE4bi5iaWRpLkZvcm1hdD17TFJFOlwi4oCqXCIsUkxFOlwi4oCrXCIsUERGOlwi4oCsXCIsTFJNOlwi4oCOXCIsUkxNOlwi4oCPXCJ9LGdvb2cuaTE4bi5iaWRpLkRpcj17TFRSOjEsUlRMOi0xLE5FVVRSQUw6MH0sZ29vZy5pMThuLmJpZGkuUklHSFQ9XCJyaWdodFwiLGdvb2cuaTE4bi5iaWRpLkxFRlQ9XCJsZWZ0XCIsZ29vZy5pMThuLmJpZGkuSTE4Tl9SSUdIVD1nb29nLmkxOG4uYmlkaS5JU19SVEw/Z29vZy5pMThuLmJpZGkuTEVGVDpnb29nLmkxOG4uYmlkaS5SSUdIVCxnb29nLmkxOG4uYmlkaS5JMThOX0xFRlQ9Z29vZy5pMThuLmJpZGkuSVNfUlRMP2dvb2cuaTE4bi5iaWRpLlJJR0hUOmdvb2cuaTE4bi5iaWRpLkxFRlQsZ29vZy5pMThuLmJpZGkudG9EaXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgZT8wPGU/Z29vZy5pMThuLmJpZGkuRGlyLkxUUjowPmU/Z29vZy5pMThuLmJpZGkuRGlyLlJUTDp0P251bGw6Z29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUw6bnVsbD09ZT9udWxsOmU/Z29vZy5pMThuLmJpZGkuRGlyLlJUTDpnb29nLmkxOG4uYmlkaS5EaXIuTFRSfSxnb29nLmkxOG4uYmlkaS5sdHJDaGFyc189XCJBLVphLXrDgC3DlsOYLcO2w7gtyrjMgC3WkOCkgC3hv7/igI7isIAtXFx1ZDgwMVxcdWQ4MDQtXFx1ZDgzOVxcdWQ4M2MtXFx1ZGJmZu+kgC3vrJzvuIAt77mv77u9Le+/v1wiLGdvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXz1cItaRLduv27ot4KO/4oCPXFx1ZDgwMi1cXHVkODAzXFx1ZDgzYS1cXHVkODNi76ydLe+3v++5sC3vu7xcIixnb29nLmkxOG4uYmlkaS5odG1sU2tpcFJlZ189LzxbXj5dKj58JlteO10rOy9nLGdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXz1mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZShnb29nLmkxOG4uYmlkaS5odG1sU2tpcFJlZ18sXCJcIik6ZX0sZ29vZy5pMThuLmJpZGkucnRsQ2hhclJlZ189bmV3IFJlZ0V4cChcIltcIitnb29nLmkxOG4uYmlkaS5ydGxDaGFyc18rXCJdXCIpLGdvb2cuaTE4bi5iaWRpLmx0ckNoYXJSZWdfPW5ldyBSZWdFeHAoXCJbXCIrZ29vZy5pMThuLmJpZGkubHRyQ2hhcnNfK1wiXVwiKSxnb29nLmkxOG4uYmlkaS5oYXNBbnlSdGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5pMThuLmJpZGkucnRsQ2hhclJlZ18udGVzdChnb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF8oZSx0KSl9LGdvb2cuaTE4bi5iaWRpLmhhc1J0bENoYXI9Z29vZy5pMThuLmJpZGkuaGFzQW55UnRsLGdvb2cuaTE4bi5iaWRpLmhhc0FueUx0cj1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmkxOG4uYmlkaS5sdHJDaGFyUmVnXy50ZXN0KGdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXyhlLHQpKX0sZ29vZy5pMThuLmJpZGkubHRyUmVfPW5ldyBSZWdFeHAoXCJeW1wiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl1cIiksZ29vZy5pMThuLmJpZGkucnRsUmVfPW5ldyBSZWdFeHAoXCJeW1wiK2dvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXytcIl1cIiksZ29vZy5pMThuLmJpZGkuaXNSdGxDaGFyPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmkxOG4uYmlkaS5ydGxSZV8udGVzdChlKX0sZ29vZy5pMThuLmJpZGkuaXNMdHJDaGFyPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmkxOG4uYmlkaS5sdHJSZV8udGVzdChlKX0sZ29vZy5pMThuLmJpZGkuaXNOZXV0cmFsQ2hhcj1mdW5jdGlvbihlKXtyZXR1cm4hZ29vZy5pMThuLmJpZGkuaXNMdHJDaGFyKGUpJiYhZ29vZy5pMThuLmJpZGkuaXNSdGxDaGFyKGUpfSxnb29nLmkxOG4uYmlkaS5sdHJEaXJDaGVja1JlXz1uZXcgUmVnRXhwKFwiXlteXCIrZ29vZy5pMThuLmJpZGkucnRsQ2hhcnNfK1wiXSpbXCIrZ29vZy5pMThuLmJpZGkubHRyQ2hhcnNfK1wiXVwiKSxnb29nLmkxOG4uYmlkaS5ydGxEaXJDaGVja1JlXz1uZXcgUmVnRXhwKFwiXlteXCIrZ29vZy5pMThuLmJpZGkubHRyQ2hhcnNfK1wiXSpbXCIrZ29vZy5pMThuLmJpZGkucnRsQ2hhcnNfK1wiXVwiKSxnb29nLmkxOG4uYmlkaS5zdGFydHNXaXRoUnRsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLnJ0bERpckNoZWNrUmVfLnRlc3QoZ29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkpfSxnb29nLmkxOG4uYmlkaS5pc1J0bFRleHQ9Z29vZy5pMThuLmJpZGkuc3RhcnRzV2l0aFJ0bCxnb29nLmkxOG4uYmlkaS5zdGFydHNXaXRoTHRyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLmx0ckRpckNoZWNrUmVfLnRlc3QoZ29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkpfSxnb29nLmkxOG4uYmlkaS5pc0x0clRleHQ9Z29vZy5pMThuLmJpZGkuc3RhcnRzV2l0aEx0cixnb29nLmkxOG4uYmlkaS5pc1JlcXVpcmVkTHRyUmVfPS9eaHR0cDpcXC9cXC8uKi8sZ29vZy5pMThuLmJpZGkuaXNOZXV0cmFsVGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiBlPWdvb2cuaTE4bi5iaWRpLnN0cmlwSHRtbElmTmVlZGVkXyhlLHQpLGdvb2cuaTE4bi5iaWRpLmlzUmVxdWlyZWRMdHJSZV8udGVzdChlKXx8IWdvb2cuaTE4bi5iaWRpLmhhc0FueUx0cihlKSYmIWdvb2cuaTE4bi5iaWRpLmhhc0FueVJ0bChlKX0sZ29vZy5pMThuLmJpZGkubHRyRXhpdERpckNoZWNrUmVfPW5ldyBSZWdFeHAoXCJbXCIrZ29vZy5pMThuLmJpZGkubHRyQ2hhcnNfK1wiXVteXCIrZ29vZy5pMThuLmJpZGkucnRsQ2hhcnNfK1wiXSokXCIpLGdvb2cuaTE4bi5iaWRpLnJ0bEV4aXREaXJDaGVja1JlXz1uZXcgUmVnRXhwKFwiW1wiK2dvb2cuaTE4bi5iaWRpLnJ0bENoYXJzXytcIl1bXlwiK2dvb2cuaTE4bi5iaWRpLmx0ckNoYXJzXytcIl0qJFwiKSxnb29nLmkxOG4uYmlkaS5lbmRzV2l0aEx0cj1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmkxOG4uYmlkaS5sdHJFeGl0RGlyQ2hlY2tSZV8udGVzdChnb29nLmkxOG4uYmlkaS5zdHJpcEh0bWxJZk5lZWRlZF8oZSx0KSl9LGdvb2cuaTE4bi5iaWRpLmlzTHRyRXhpdFRleHQ9Z29vZy5pMThuLmJpZGkuZW5kc1dpdGhMdHIsZ29vZy5pMThuLmJpZGkuZW5kc1dpdGhSdGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5pMThuLmJpZGkucnRsRXhpdERpckNoZWNrUmVfLnRlc3QoZ29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkpfSxnb29nLmkxOG4uYmlkaS5pc1J0bEV4aXRUZXh0PWdvb2cuaTE4bi5iaWRpLmVuZHNXaXRoUnRsLGdvb2cuaTE4bi5iaWRpLnJ0bExvY2FsZXNSZV89L14oYXJ8Y2tifGR2fGhlfGl3fGZhfG5xb3xwc3xzZHx1Z3x1cnx5aXwuKlstX10oQWRsbXxBcmFifEhlYnJ8Tmtvb3xSb2hnfFRoYWEpKSg/IS4qWy1fXShMYXRufEN5cmwpKCR8LXxfKSkoJHwtfF8pL2ksZ29vZy5pMThuLmJpZGkuaXNSdGxMYW5ndWFnZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkucnRsTG9jYWxlc1JlXy50ZXN0KGUpfSxnb29nLmkxOG4uYmlkaS5icmFja2V0R3VhcmRUZXh0UmVfPS8oXFwoLio/XFwpKyl8KFxcWy4qP1xcXSspfChcXHsuKj9cXH0rKXwoPC4qPz4rKS9nLGdvb2cuaTE4bi5iaWRpLmd1YXJkQnJhY2tldEluVGV4dD1mdW5jdGlvbihlLHQpe3JldHVybiB0PSh2b2lkIDA9PT10P2dvb2cuaTE4bi5iaWRpLmhhc0FueVJ0bChlKTp0KT9nb29nLmkxOG4uYmlkaS5Gb3JtYXQuUkxNOmdvb2cuaTE4bi5iaWRpLkZvcm1hdC5MUk0sZS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLmJyYWNrZXRHdWFyZFRleHRSZV8sdCtcIiQmXCIrdCl9LGdvb2cuaTE4bi5iaWRpLmVuZm9yY2VSdGxJbkh0bWw9ZnVuY3Rpb24oZSl7cmV0dXJuXCI8XCI9PWUuY2hhckF0KDApP2UucmVwbGFjZSgvPFxcdysvLFwiJCYgZGlyPXJ0bFwiKTpcIlxcbjxzcGFuIGRpcj1ydGw+XCIrZStcIjwvc3Bhbj5cIn0sZ29vZy5pMThuLmJpZGkuZW5mb3JjZVJ0bEluVGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkuRm9ybWF0LlJMRStlK2dvb2cuaTE4bi5iaWRpLkZvcm1hdC5QREZ9LGdvb2cuaTE4bi5iaWRpLmVuZm9yY2VMdHJJbkh0bWw9ZnVuY3Rpb24oZSl7cmV0dXJuXCI8XCI9PWUuY2hhckF0KDApP2UucmVwbGFjZSgvPFxcdysvLFwiJCYgZGlyPWx0clwiKTpcIlxcbjxzcGFuIGRpcj1sdHI+XCIrZStcIjwvc3Bhbj5cIn0sZ29vZy5pMThuLmJpZGkuZW5mb3JjZUx0ckluVGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkuRm9ybWF0LkxSRStlK2dvb2cuaTE4bi5iaWRpLkZvcm1hdC5QREZ9LGdvb2cuaTE4bi5iaWRpLmRpbWVuc2lvbnNSZV89LzpcXHMqKFsuXFxkXVsuXFx3XSopXFxzKyhbLlxcZF1bLlxcd10qKVxccysoWy5cXGRdWy5cXHddKilcXHMrKFsuXFxkXVsuXFx3XSopL2csZ29vZy5pMThuLmJpZGkubGVmdFJlXz0vbGVmdC9naSxnb29nLmkxOG4uYmlkaS5yaWdodFJlXz0vcmlnaHQvZ2ksZ29vZy5pMThuLmJpZGkudGVtcFJlXz0vJSUlJS9nLGdvb2cuaTE4bi5iaWRpLm1pcnJvckNTUz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLmRpbWVuc2lvbnNSZV8sXCI6JDEgJDQgJDMgJDJcIikucmVwbGFjZShnb29nLmkxOG4uYmlkaS5sZWZ0UmVfLFwiJSUlJVwiKS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLnJpZ2h0UmVfLGdvb2cuaTE4bi5iaWRpLkxFRlQpLnJlcGxhY2UoZ29vZy5pMThuLmJpZGkudGVtcFJlXyxnb29nLmkxOG4uYmlkaS5SSUdIVCl9LGdvb2cuaTE4bi5iaWRpLmRvdWJsZVF1b3RlU3Vic3RpdHV0ZVJlXz0vKFtcXHUwNTkxLVxcdTA1ZjJdKVwiL2csZ29vZy5pMThuLmJpZGkuc2luZ2xlUXVvdGVTdWJzdGl0dXRlUmVfPS8oW1xcdTA1OTEtXFx1MDVmMl0pJy9nLGdvb2cuaTE4bi5iaWRpLm5vcm1hbGl6ZUhlYnJld1F1b3RlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoZ29vZy5pMThuLmJpZGkuZG91YmxlUXVvdGVTdWJzdGl0dXRlUmVfLFwiJDHXtFwiKS5yZXBsYWNlKGdvb2cuaTE4bi5iaWRpLnNpbmdsZVF1b3RlU3Vic3RpdHV0ZVJlXyxcIiQx17NcIil9LGdvb2cuaTE4bi5iaWRpLndvcmRTZXBhcmF0b3JSZV89L1xccysvLGdvb2cuaTE4bi5iaWRpLmhhc051bWVyYWxzUmVfPS9bXFxkXFx1MDZmMC1cXHUwNmY5XS8sZ29vZy5pMThuLmJpZGkucnRsRGV0ZWN0aW9uVGhyZXNob2xkXz0uNCxnb29nLmkxOG4uYmlkaS5lc3RpbWF0ZURpcmVjdGlvbj1mdW5jdGlvbihlLHQpe3ZhciBvPTAscj0wLG49ITE7Zm9yKGU9Z29vZy5pMThuLmJpZGkuc3RyaXBIdG1sSWZOZWVkZWRfKGUsdCkuc3BsaXQoZ29vZy5pMThuLmJpZGkud29yZFNlcGFyYXRvclJlXyksdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcz1lW3RdO2dvb2cuaTE4bi5iaWRpLnN0YXJ0c1dpdGhSdGwocyk/KG8rKyxyKyspOmdvb2cuaTE4bi5iaWRpLmlzUmVxdWlyZWRMdHJSZV8udGVzdChzKT9uPSEwOmdvb2cuaTE4bi5iaWRpLmhhc0FueUx0cihzKT9yKys6Z29vZy5pMThuLmJpZGkuaGFzTnVtZXJhbHNSZV8udGVzdChzKSYmKG49ITApfXJldHVybiAwPT1yP24/Z29vZy5pMThuLmJpZGkuRGlyLkxUUjpnb29nLmkxOG4uYmlkaS5EaXIuTkVVVFJBTDpvL3I+Z29vZy5pMThuLmJpZGkucnRsRGV0ZWN0aW9uVGhyZXNob2xkXz9nb29nLmkxOG4uYmlkaS5EaXIuUlRMOmdvb2cuaTE4bi5iaWRpLkRpci5MVFJ9LGdvb2cuaTE4bi5iaWRpLmRldGVjdFJ0bERpcmVjdGlvbmFsaXR5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaTE4bi5iaWRpLmVzdGltYXRlRGlyZWN0aW9uKGUsdCk9PWdvb2cuaTE4bi5iaWRpLkRpci5SVEx9LGdvb2cuaTE4bi5iaWRpLnNldEVsZW1lbnREaXJBbmRBbGlnbj1mdW5jdGlvbihlLHQpe2UmJih0PWdvb2cuaTE4bi5iaWRpLnRvRGlyKHQpKSYmKGUuc3R5bGUudGV4dEFsaWduPXQ9PWdvb2cuaTE4bi5iaWRpLkRpci5SVEw/Z29vZy5pMThuLmJpZGkuUklHSFQ6Z29vZy5pMThuLmJpZGkuTEVGVCxlLmRpcj10PT1nb29nLmkxOG4uYmlkaS5EaXIuUlRMP1wicnRsXCI6XCJsdHJcIil9LGdvb2cuaTE4bi5iaWRpLnNldEVsZW1lbnREaXJCeVRleHREaXJlY3Rpb25hbGl0eT1mdW5jdGlvbihlLHQpe3N3aXRjaChnb29nLmkxOG4uYmlkaS5lc3RpbWF0ZURpcmVjdGlvbih0KSl7Y2FzZSBnb29nLmkxOG4uYmlkaS5EaXIuTFRSOmUuZGlyPVwibHRyXCI7YnJlYWs7Y2FzZSBnb29nLmkxOG4uYmlkaS5EaXIuUlRMOmUuZGlyPVwicnRsXCI7YnJlYWs7ZGVmYXVsdDplLnJlbW92ZUF0dHJpYnV0ZShcImRpclwiKX19LGdvb2cuaTE4bi5iaWRpLkRpcmVjdGlvbmFsU3RyaW5nPWZ1bmN0aW9uKCl7fSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsPWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy50cnVzdGVkVVJMXz1udWxsLHRoaXMuVFJVU1RFRF9SRVNPVVJDRV9VUkxfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVffSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnByb3RvdHlwZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nPSEwLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWVfLnRvU3RyaW5nKCl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwucHJvdG90eXBlLmltcGxlbWVudHNHb29nSTE4bkJpZGlEaXJlY3Rpb25hbFN0cmluZz0hMCxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnByb3RvdHlwZS5nZXREaXJlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkuRGlyLkxUUn0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5wcm90b3R5cGUuY2xvbmVXaXRoUGFyYW1zPWZ1bmN0aW9uKGUsdCl7dmFyIG89Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAodGhpcykscj0obz1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLlVSTF9QQVJBTV9QQVJTRVJfLmV4ZWMobykpWzNdfHxcIlwiO3JldHVybiBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmNyZWF0ZVRydXN0ZWRSZXNvdXJjZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKG9bMV0rZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5zdHJpbmdpZnlQYXJhbXNfKFwiP1wiLG9bMl18fFwiXCIsZSkrZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5zdHJpbmdpZnlQYXJhbXNfKFwiI1wiLHIsdCkpfSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlRydXN0ZWRSZXNvdXJjZVVybHtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVRydXN0ZWRSZXNvdXJjZVVybFdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkU2NyaXB0VVJMKGUpLnRvU3RyaW5nKCl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwVHJ1c3RlZFNjcmlwdFVSTD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsJiZlLlRSVVNURURfUkVTT1VSQ0VfVVJMX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz09PWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfP2UucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlVHJ1c3RlZFJlc291cmNlVXJsV3JhcHBlZFZhbHVlXzooZ29vZy5hc3NlcnRzLmZhaWwoXCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBUcnVzdGVkUmVzb3VyY2VVcmwsIGdvdCAnXCIrZStcIicgb2YgdHlwZSBcIitnb29nLnR5cGVPZihlKSksXCJ0eXBlX2Vycm9yOlRydXN0ZWRSZXNvdXJjZVVybFwiKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkVVJMPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRydXN0ZWRVUkxfP2UudHJ1c3RlZFVSTF86Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAoZSl9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuZm9ybWF0PWZ1bmN0aW9uKGUsdCl7dmFyIG89Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpO2lmKCFnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLkJBU0VfVVJMXy50ZXN0KG8pKXRocm93IEVycm9yKFwiSW52YWxpZCBUcnVzdGVkUmVzb3VyY2VVcmwgZm9ybWF0OiBcIitvKTtyZXR1cm4gZT1vLnJlcGxhY2UoZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5GT1JNQVRfTUFSS0VSXywoZnVuY3Rpb24oZSxyKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpdGhyb3cgRXJyb3IoJ0ZvdW5kIG1hcmtlciwgXCInK3IrJ1wiLCBpbiBmb3JtYXQgc3RyaW5nLCBcIicrbysnXCIsIGJ1dCBubyB2YWxpZCBsYWJlbCBtYXBwaW5nIGZvdW5kIGluIGFyZ3M6ICcrSlNPTi5zdHJpbmdpZnkodCkpO3JldHVybihlPXRbcl0paW5zdGFuY2VvZiBnb29nLnN0cmluZy5Db25zdD9nb29nLnN0cmluZy5Db25zdC51bndyYXAoZSk6ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhlKSl9KSksZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5jcmVhdGVUcnVzdGVkUmVzb3VyY2VVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5GT1JNQVRfTUFSS0VSXz0vJXsoXFx3Kyl9L2csZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5CQVNFX1VSTF89L14oKGh0dHBzOik/XFwvXFwvWzAtOWEtei46W1xcXS1dK1xcL3xcXC9bXi9cXFxcXXxbXjovXFxcXCVdK1xcL3xbXjovXFxcXCVdKls/I118YWJvdXQ6YmxhbmsjKS9pLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuVVJMX1BBUkFNX1BBUlNFUl89L14oW14/I10qKShcXD9bXiNdKik/KCNbXFxzXFxTXSopPy8sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5mb3JtYXRXaXRoUGFyYW1zPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiBnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmZvcm1hdChlLHQpLmNsb25lV2l0aFBhcmFtcyhvLHIpfSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5jcmVhdGVUcnVzdGVkUmVzb3VyY2VVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSkpfSxnb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLmZyb21Db25zdGFudHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVwiXCIsbz0wO288ZS5sZW5ndGg7bysrKXQrPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlW29dKTtyZXR1cm4gZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5jcmVhdGVUcnVzdGVkUmVzb3VyY2VVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89e30sZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC5jcmVhdGVUcnVzdGVkUmVzb3VyY2VVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybDtyZXR1cm4gdC5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VUcnVzdGVkUmVzb3VyY2VVcmxXcmFwcGVkVmFsdWVfPWdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZP2dvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZLmNyZWF0ZVNjcmlwdFVSTChlKTplLGdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZJiYodC50cnVzdGVkVVJMXz1nb29nLmh0bWwudHJ1c3RlZHR5cGVzLlBSSVZBVEVfRE9fTk9UX0FDQ0VTU19PUl9FTFNFX1BPTElDWS5jcmVhdGVVUkwoZSkpLHR9LGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuc3RyaW5naWZ5UGFyYW1zXz1mdW5jdGlvbihlLHQsbyl7aWYobnVsbD09bylyZXR1cm4gdDtpZihnb29nLmlzU3RyaW5nKG8pKXJldHVybiBvP2UrZW5jb2RlVVJJQ29tcG9uZW50KG8pOlwiXCI7Zm9yKHZhciByIGluIG8pe3ZhciBuPW9bcl07bj1nb29nLmlzQXJyYXkobik/bjpbbl07Zm9yKHZhciBzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBpPW5bc107bnVsbCE9aSYmKHR8fCh0PWUpLHQrPSh0Lmxlbmd0aD5lLmxlbmd0aD9cIiZcIjpcIlwiKStlbmNvZGVVUklDb21wb25lbnQocikrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpKSkpfX1yZXR1cm4gdH0sZ29vZy5zdHJpbmcuaW50ZXJuYWw9e30sZ29vZy5zdHJpbmcuaW50ZXJuYWwuc3RhcnRzV2l0aD1mdW5jdGlvbihlLHQpe3JldHVybiAwPT1lLmxhc3RJbmRleE9mKHQsMCl9LGdvb2cuc3RyaW5nLmludGVybmFsLmVuZHNXaXRoPWZ1bmN0aW9uKGUsdCl7dmFyIG89ZS5sZW5ndGgtdC5sZW5ndGg7cmV0dXJuIDA8PW8mJmUuaW5kZXhPZih0LG8pPT1vfSxnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbXBhcmUodCxlLnN1YnN0cigwLHQubGVuZ3RoKSl9LGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUVuZHNXaXRoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbXBhcmUodCxlLnN1YnN0cihlLmxlbmd0aC10Lmxlbmd0aCx0Lmxlbmd0aCkpfSxnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVFcXVhbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpPT10LnRvTG93ZXJDYXNlKCl9LGdvb2cuc3RyaW5nLmludGVybmFsLmlzRW1wdHlPcldoaXRlc3BhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuL15bXFxzXFx4YTBdKiQvLnRlc3QoZSl9LGdvb2cuc3RyaW5nLmludGVybmFsLnRyaW09Z29vZy5UUlVTVEVEX1NJVEUmJlN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9OmZ1bmN0aW9uKGUpe3JldHVybi9eW1xcc1xceGEwXSooW1xcc1xcU10qPylbXFxzXFx4YTBdKiQvLmV4ZWMoZSlbMV19LGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT1TdHJpbmcoZSkudG9Mb3dlckNhc2UoKSk8KHQ9U3RyaW5nKHQpLnRvTG93ZXJDYXNlKCkpPy0xOmU9PXQ/MDoxfSxnb29nLnN0cmluZy5pbnRlcm5hbC5uZXdMaW5lVG9Ccj1mdW5jdGlvbihlLHQpe3JldHVybiBlLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikvZyx0P1wiPGJyIC8+XCI6XCI8YnI+XCIpfSxnb29nLnN0cmluZy5pbnRlcm5hbC5odG1sRXNjYXBlPWZ1bmN0aW9uKGUsdCl7aWYodCllPWUucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5BTVBfUkVfLFwiJmFtcDtcIikucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5MVF9SRV8sXCImbHQ7XCIpLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuR1RfUkVfLFwiJmd0O1wiKS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLlFVT1RfUkVfLFwiJnF1b3Q7XCIpLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuU0lOR0xFX1FVT1RFX1JFXyxcIiYjMzk7XCIpLnJlcGxhY2UoZ29vZy5zdHJpbmcuaW50ZXJuYWwuTlVMTF9SRV8sXCImIzA7XCIpO2Vsc2V7aWYoIWdvb2cuc3RyaW5nLmludGVybmFsLkFMTF9SRV8udGVzdChlKSlyZXR1cm4gZTstMSE9ZS5pbmRleE9mKFwiJlwiKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLkFNUF9SRV8sXCImYW1wO1wiKSksLTEhPWUuaW5kZXhPZihcIjxcIikmJihlPWUucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5MVF9SRV8sXCImbHQ7XCIpKSwtMSE9ZS5pbmRleE9mKFwiPlwiKSYmKGU9ZS5yZXBsYWNlKGdvb2cuc3RyaW5nLmludGVybmFsLkdUX1JFXyxcIiZndDtcIikpLC0xIT1lLmluZGV4T2YoJ1wiJykmJihlPWUucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5RVU9UX1JFXyxcIiZxdW90O1wiKSksLTEhPWUuaW5kZXhPZihcIidcIikmJihlPWUucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5TSU5HTEVfUVVPVEVfUkVfLFwiJiMzOTtcIikpLC0xIT1lLmluZGV4T2YoXCJcXDBcIikmJihlPWUucmVwbGFjZShnb29nLnN0cmluZy5pbnRlcm5hbC5OVUxMX1JFXyxcIiYjMDtcIikpfXJldHVybiBlfSxnb29nLnN0cmluZy5pbnRlcm5hbC5BTVBfUkVfPS8mL2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuTFRfUkVfPS88L2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuR1RfUkVfPS8+L2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuUVVPVF9SRV89L1wiL2csZ29vZy5zdHJpbmcuaW50ZXJuYWwuU0lOR0xFX1FVT1RFX1JFXz0vJy9nLGdvb2cuc3RyaW5nLmludGVybmFsLk5VTExfUkVfPS9cXHgwMC9nLGdvb2cuc3RyaW5nLmludGVybmFsLkFMTF9SRV89L1tcXHgwMCY8PlwiJ10vLGdvb2cuc3RyaW5nLmludGVybmFsLndoaXRlc3BhY2VFc2NhcGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcuaW50ZXJuYWwubmV3TGluZVRvQnIoZS5yZXBsYWNlKC8gIC9nLFwiICYjMTYwO1wiKSx0KX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4tMSE9ZS5pbmRleE9mKHQpfSxnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVDb250YWlucz1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jb250YWlucyhlLnRvTG93ZXJDYXNlKCksdC50b0xvd2VyQ2FzZSgpKX0sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZVZlcnNpb25zPWZ1bmN0aW9uKGUsdCl7dmFyIG89MDtlPWdvb2cuc3RyaW5nLmludGVybmFsLnRyaW0oU3RyaW5nKGUpKS5zcGxpdChcIi5cIiksdD1nb29nLnN0cmluZy5pbnRlcm5hbC50cmltKFN0cmluZyh0KSkuc3BsaXQoXCIuXCIpO2Zvcih2YXIgcj1NYXRoLm1heChlLmxlbmd0aCx0Lmxlbmd0aCksbj0wOzA9PW8mJm48cjtuKyspe3ZhciBzPWVbbl18fFwiXCIsaT10W25dfHxcIlwiO2Rve2lmKHM9LyhcXGQqKShcXEQqKSguKikvLmV4ZWMocyl8fFtcIlwiLFwiXCIsXCJcIixcIlwiXSxpPS8oXFxkKikoXFxEKikoLiopLy5leGVjKGkpfHxbXCJcIixcIlwiLFwiXCIsXCJcIl0sMD09c1swXS5sZW5ndGgmJjA9PWlbMF0ubGVuZ3RoKWJyZWFrO289MD09c1sxXS5sZW5ndGg/MDpwYXJzZUludChzWzFdLDEwKTt2YXIgYT0wPT1pWzFdLmxlbmd0aD8wOnBhcnNlSW50KGlbMV0sMTApO289Z29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZUVsZW1lbnRzXyhvLGEpfHxnb29nLnN0cmluZy5pbnRlcm5hbC5jb21wYXJlRWxlbWVudHNfKDA9PXNbMl0ubGVuZ3RoLDA9PWlbMl0ubGVuZ3RoKXx8Z29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZUVsZW1lbnRzXyhzWzJdLGlbMl0pLHM9c1szXSxpPWlbM119d2hpbGUoMD09byl9cmV0dXJuIG99LGdvb2cuc3RyaW5nLmludGVybmFsLmNvbXBhcmVFbGVtZW50c189ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOjB9LGdvb2cuaHRtbC5TYWZlVXJsPWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlVXJsV3JhcHBlZFZhbHVlXz1cIlwiLHRoaXMuU0FGRV9VUkxfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPWdvb2cuaHRtbC5TYWZlVXJsLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFX30sZ29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORz1cImFib3V0OmludmFsaWQjekNsb3N1cmV6XCIsZ29vZy5odG1sLlNhZmVVcmwucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVVcmwucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlVXJsV3JhcHBlZFZhbHVlXy50b1N0cmluZygpfSxnb29nLmh0bWwuU2FmZVVybC5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dJMThuQmlkaURpcmVjdGlvbmFsU3RyaW5nPSEwLGdvb2cuaHRtbC5TYWZlVXJsLnByb3RvdHlwZS5nZXREaXJlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5pMThuLmJpZGkuRGlyLkxUUn0sZ29vZy5ERUJVRyYmKGdvb2cuaHRtbC5TYWZlVXJsLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiU2FmZVVybHtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVVcmxXcmFwcGVkVmFsdWVfK1wifVwifSksZ29vZy5odG1sLlNhZmVVcmwudW53cmFwPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmh0bWwuU2FmZVVybC51bndyYXBUcnVzdGVkVVJMKGUpLnRvU3RyaW5nKCl9LGdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybCYmZS5jb25zdHJ1Y3Rvcj09PWdvb2cuaHRtbC5TYWZlVXJsJiZlLlNBRkVfVVJMX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz09PWdvb2cuaHRtbC5TYWZlVXJsLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz9lLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVVcmxXcmFwcGVkVmFsdWVfOihnb29nLmFzc2VydHMuZmFpbChcImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVVcmwsIGdvdCAnXCIrZStcIicgb2YgdHlwZSBcIitnb29nLnR5cGVPZihlKSksXCJ0eXBlX2Vycm9yOlNhZmVVcmxcIil9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSl9LGdvb2cuaHRtbC5TQUZFX01JTUVfVFlQRV9QQVRURVJOXz0vXig/OmF1ZGlvXFwvKD86M2dwcDJ8M2dwcHxhYWN8TDE2fG1pZGl8bXAzfG1wNHxtcGVnfG9nYXxvZ2d8b3B1c3x4LW00YXx4LXdhdnx3YXZ8d2VibSl8aW1hZ2VcXC8oPzpibXB8Z2lmfGpwZWd8anBnfHBuZ3x0aWZmfHdlYnB8eC1pY29uKXx0ZXh0XFwvY3N2fHZpZGVvXFwvKD86bXBlZ3xtcDR8b2dnfHdlYm18cXVpY2t0aW1lKSkoPzo7XFx3Kz0oPzpcXHcrfFwiW1xcdzs9XStcIikpKiQvaSxnb29nLmh0bWwuU2FmZVVybC5pc1NhZmVNaW1lVHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNBRkVfTUlNRV9UWVBFX1BBVFRFUk5fLnRlc3QoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21CbG9iPWZ1bmN0aW9uKGUpe3JldHVybiBlPWdvb2cuaHRtbC5TQUZFX01JTUVfVFlQRV9QQVRURVJOXy50ZXN0KGUudHlwZSk/Z29vZy5mcy51cmwuY3JlYXRlT2JqZWN0VXJsKGUpOmdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcsZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuREFUQV9VUkxfUEFUVEVSTl89L15kYXRhOihbXixdKik7YmFzZTY0LFthLXowLTkrXFwvXSs9KiQvaSxnb29nLmh0bWwuU2FmZVVybC5mcm9tRGF0YVVybD1mdW5jdGlvbihlKXt2YXIgdD0oZT1lLnJlcGxhY2UoLyglMEF8JTBEKS9nLFwiXCIpKS5tYXRjaChnb29nLmh0bWwuREFUQV9VUkxfUEFUVEVSTl8pO3JldHVybiB0PXQmJmdvb2cuaHRtbC5TQUZFX01JTUVfVFlQRV9QQVRURVJOXy50ZXN0KHRbMV0pLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0P2U6Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyl9LGdvb2cuaHRtbC5TYWZlVXJsLmZyb21UZWxVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZVN0YXJ0c1dpdGgoZSxcInRlbDpcIil8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNJUF9VUkxfUEFUVEVSTl89L15zaXBbc10/OlsrYS16MC05Xy4hJCUmJypcXC89XmB7fH1+LV0rQChbYS16MC05LV0rXFwuKStbYS16MC05XXsyLDYzfSQvaSxnb29nLmh0bWwuU2FmZVVybC5mcm9tU2lwVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmh0bWwuU0lQX1VSTF9QQVRURVJOXy50ZXN0KGRlY29kZVVSSUNvbXBvbmVudChlKSl8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbUZhY2Vib29rTWVzc2VuZ2VyVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoKGUsXCJmYi1tZXNzZW5nZXI6Ly9zaGFyZVwiKXx8KGU9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuU2FmZVVybC5mcm9tV2hhdHNBcHBVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZVN0YXJ0c1dpdGgoZSxcIndoYXRzYXBwOi8vc2VuZFwiKXx8KGU9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpfSxnb29nLmh0bWwuU2FmZVVybC5mcm9tU21zVXJsPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoKGUsXCJzbXM6XCIpJiZnb29nLmh0bWwuU2FmZVVybC5pc1Ntc1VybEJvZHlWYWxpZF8oZSl8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVVcmwuaXNTbXNVcmxCb2R5VmFsaWRfPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaW5kZXhPZihcIiNcIik7aWYoMDx0JiYoZT1lLnN1YnN0cmluZygwLHQpKSwhKHQ9ZS5tYXRjaCgvWz8mXWJvZHk9L2dpKSkpcmV0dXJuITA7aWYoMTx0Lmxlbmd0aClyZXR1cm4hMTtpZighKGU9ZS5tYXRjaCgvWz8mXWJvZHk9KFteJl0qKS8pWzFdKSlyZXR1cm4hMDt0cnl7ZGVjb2RlVVJJQ29tcG9uZW50KGUpfWNhdGNoKGUpe3JldHVybiExfXJldHVybi9eKD86W2EtejAtOVxcLV8ufl18JVswLTlhLWZdezJ9KSskL2kudGVzdChlKX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbVNzaFVybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlU3RhcnRzV2l0aChlLFwic3NoOi8vXCIpfHwoZT1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSxnb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoZSl9LGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQ2hyb21lRXh0ZW5zaW9uVXJsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplRXh0ZW5zaW9uVXJsXygvXmNocm9tZS1leHRlbnNpb246XFwvXFwvKFteXFwvXSspXFwvLyxlLHQpfSxnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUZpcmVmb3hFeHRlbnNpb25Vcmw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVFeHRlbnNpb25VcmxfKC9ebW96LWV4dGVuc2lvbjpcXC9cXC8oW15cXC9dKylcXC8vLGUsdCl9LGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplRWRnZUV4dGVuc2lvblVybD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUV4dGVuc2lvblVybF8oL15tcy1icm93c2VyLWV4dGVuc2lvbjpcXC9cXC8oW15cXC9dKylcXC8vLGUsdCl9LGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplRXh0ZW5zaW9uVXJsXz1mdW5jdGlvbihlLHQsbyl7cmV0dXJuKGU9ZS5leGVjKHQpKT8oZT1lWzFdLC0xPT0obyBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0P1tnb29nLnN0cmluZy5Db25zdC51bndyYXAobyldOm8ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpfSkpKS5pbmRleE9mKGUpJiYodD1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HKSk6dD1nb29nLmh0bWwuU2FmZVVybC5JTk5PQ1VPVVNfU1RSSU5HLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLlNhZmVVcmwuZnJvbVRydXN0ZWRSZXNvdXJjZVVybD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwKGUpKX0sZ29vZy5odG1sLlNBRkVfVVJMX1BBVFRFUk5fPS9eKD86KD86aHR0cHM/fG1haWx0b3xmdHApOnxbXjovPyNdKig/OlsvPyNdfCQpKS9pLGdvb2cuaHRtbC5TYWZlVXJsLlNBRkVfVVJMX1BBVFRFUk49Z29vZy5odG1sLlNBRkVfVVJMX1BBVFRFUk5fLGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/ZTooZT1cIm9iamVjdFwiPT10eXBlb2YgZSYmZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nP2UuZ2V0VHlwZWRTdHJpbmdWYWx1ZSgpOlN0cmluZyhlKSxnb29nLmh0bWwuU0FGRV9VUkxfUEFUVEVSTl8udGVzdChlKXx8KGU9Z29vZy5odG1sLlNhZmVVcmwuSU5OT0NVT1VTX1NUUklORyksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpKX0sZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVBc3NlcnRVbmNoYW5nZWQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsP2U6KGU9XCJvYmplY3RcIj09dHlwZW9mIGUmJmUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz9lLmdldFR5cGVkU3RyaW5nVmFsdWUoKTpTdHJpbmcoZSksdCYmL15kYXRhOi9pLnRlc3QoZSkmJih0PWdvb2cuaHRtbC5TYWZlVXJsLmZyb21EYXRhVXJsKGUpKS5nZXRUeXBlZFN0cmluZ1ZhbHVlKCk9PWU/dDooZ29vZy5hc3NlcnRzLmFzc2VydChnb29nLmh0bWwuU0FGRV9VUkxfUEFUVEVSTl8udGVzdChlKSxcIiVzIGRvZXMgbm90IG1hdGNoIHRoZSBzYWZlIFVSTCBwYXR0ZXJuXCIsZSl8fChlPWdvb2cuaHRtbC5TYWZlVXJsLklOTk9DVU9VU19TVFJJTkcpLGdvb2cuaHRtbC5TYWZlVXJsLmNyZWF0ZVNhZmVVcmxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKSkpfSxnb29nLmh0bWwuU2FmZVVybC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89e30sZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBnb29nLmh0bWwuU2FmZVVybDtyZXR1cm4gdC5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlVXJsV3JhcHBlZFZhbHVlXz1nb29nLmh0bWwudHJ1c3RlZHR5cGVzLlBSSVZBVEVfRE9fTk9UX0FDQ0VTU19PUl9FTFNFX1BPTElDWT9nb29nLmh0bWwudHJ1c3RlZHR5cGVzLlBSSVZBVEVfRE9fTk9UX0FDQ0VTU19PUl9FTFNFX1BPTElDWS5jcmVhdGVVUkwoZSk6ZSx0fSxnb29nLmh0bWwuU2FmZVVybC5BQk9VVF9CTEFOSz1nb29nLmh0bWwuU2FmZVVybC5jcmVhdGVTYWZlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJhYm91dDpibGFua1wiKSxnb29nLmh0bWwuU2FmZVN0eWxlPWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfPVwiXCIsdGhpcy5TQUZFX1NUWUxFX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz1nb29nLmh0bWwuU2FmZVN0eWxlLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFX30sZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUuaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZz0hMCxnb29nLmh0bWwuU2FmZVN0eWxlLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz17fSxnb29nLmh0bWwuU2FmZVN0eWxlLmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSkubGVuZ3RoP2dvb2cuaHRtbC5TYWZlU3R5bGUuRU1QVFk6KGdvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5zdHJpbmcuaW50ZXJuYWwuZW5kc1dpdGgoZSxcIjtcIiksXCJMYXN0IGNoYXJhY3RlciBvZiBzdHlsZSBzdHJpbmcgaXMgbm90ICc7JzogXCIrZSksZ29vZy5hc3NlcnRzLmFzc2VydChnb29nLnN0cmluZy5pbnRlcm5hbC5jb250YWlucyhlLFwiOlwiKSxcIlN0eWxlIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lICc6JywgdG8gc3BlY2lmeSBhIFxcXCJuYW1lOiB2YWx1ZVxcXCIgcGFpcjogXCIrZSksZ29vZy5odG1sLlNhZmVTdHlsZS5jcmVhdGVTYWZlU3R5bGVTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKSl9LGdvb2cuaHRtbC5TYWZlU3R5bGUucHJvdG90eXBlLmdldFR5cGVkU3RyaW5nVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVffSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlNhZmVTdHlsZXtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTdHlsZVdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuU2FmZVN0eWxlLnVud3JhcD1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlU3R5bGUmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuU2FmZVN0eWxlJiZlLlNBRkVfU1RZTEVfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVTdHlsZS5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfOihnb29nLmFzc2VydHMuZmFpbChcImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVTdHlsZSwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVN0eWxlXCIpfSxnb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybihuZXcgZ29vZy5odG1sLlNhZmVTdHlsZSkuaW5pdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlXyhlKX0sZ29vZy5odG1sLlNhZmVTdHlsZS5wcm90b3R5cGUuaW5pdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlXz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVXcmFwcGVkVmFsdWVfPWUsdGhpc30sZ29vZy5odG1sLlNhZmVTdHlsZS5FTVBUWT1nb29nLmh0bWwuU2FmZVN0eWxlLmNyZWF0ZVNhZmVTdHlsZVNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuSU5OT0NVT1VTX1NUUklORz1cInpDbG9zdXJlelwiLGdvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlPWZ1bmN0aW9uKGUpe3ZhciB0LG89XCJcIjtmb3IodCBpbiBlKXtpZighL15bLV9hLXpBLVowLTldKyQvLnRlc3QodCkpdGhyb3cgRXJyb3IoXCJOYW1lIGFsbG93cyBvbmx5IFstX2EtekEtWjAtOV0sIGdvdDogXCIrdCk7dmFyIHI9ZVt0XTtudWxsIT1yJiYobys9dCtcIjpcIisocj1nb29nLmlzQXJyYXkocik/Z29vZy5hcnJheS5tYXAocixnb29nLmh0bWwuU2FmZVN0eWxlLnNhbml0aXplUHJvcGVydHlWYWx1ZV8pLmpvaW4oXCIgXCIpOmdvb2cuaHRtbC5TYWZlU3R5bGUuc2FuaXRpemVQcm9wZXJ0eVZhbHVlXyhyKSkrXCI7XCIpfXJldHVybiBvP2dvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlU2FmZVN0eWxlU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2Uobyk6Z29vZy5odG1sLlNhZmVTdHlsZS5FTVBUWX0sZ29vZy5odG1sLlNhZmVTdHlsZS5zYW5pdGl6ZVByb3BlcnR5VmFsdWVfPWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybClyZXR1cm4ndXJsKFwiJytnb29nLmh0bWwuU2FmZVVybC51bndyYXAoZSkucmVwbGFjZSgvPC9nLFwiJTNjXCIpLnJlcGxhY2UoL1tcXFxcXCJdL2csXCJcXFxcJCZcIikrJ1wiKSc7aWYoZT1lIGluc3RhbmNlb2YgZ29vZy5zdHJpbmcuQ29uc3Q/Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpOmdvb2cuaHRtbC5TYWZlU3R5bGUuc2FuaXRpemVQcm9wZXJ0eVZhbHVlU3RyaW5nXyhTdHJpbmcoZSkpLC9bezt9XS8udGVzdChlKSl0aHJvdyBuZXcgZ29vZy5hc3NlcnRzLkFzc2VydGlvbkVycm9yKFwiVmFsdWUgZG9lcyBub3QgYWxsb3cgW3s7fV0sIGdvdDogJXMuXCIsW2VdKTtyZXR1cm4gZX0sZ29vZy5odG1sLlNhZmVTdHlsZS5zYW5pdGl6ZVByb3BlcnR5VmFsdWVTdHJpbmdfPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZShnb29nLmh0bWwuU2FmZVN0eWxlLkZVTkNUSU9OU19SRV8sXCIkMVwiKS5yZXBsYWNlKGdvb2cuaHRtbC5TYWZlU3R5bGUuRlVOQ1RJT05TX1JFXyxcIiQxXCIpLnJlcGxhY2UoZ29vZy5odG1sLlNhZmVTdHlsZS5VUkxfUkVfLFwidXJsXCIpO3JldHVybiBnb29nLmh0bWwuU2FmZVN0eWxlLlZBTFVFX1JFXy50ZXN0KHQpP2dvb2cuaHRtbC5TYWZlU3R5bGUuQ09NTUVOVF9SRV8udGVzdChlKT8oZ29vZy5hc3NlcnRzLmZhaWwoXCJTdHJpbmcgdmFsdWUgZGlzYWxsb3dzIGNvbW1lbnRzLCBnb3Q6IFwiK2UpLGdvb2cuaHRtbC5TYWZlU3R5bGUuSU5OT0NVT1VTX1NUUklORyk6Z29vZy5odG1sLlNhZmVTdHlsZS5oYXNCYWxhbmNlZFF1b3Rlc18oZSk/Z29vZy5odG1sLlNhZmVTdHlsZS5oYXNCYWxhbmNlZFNxdWFyZUJyYWNrZXRzXyhlKT9nb29nLmh0bWwuU2FmZVN0eWxlLnNhbml0aXplVXJsXyhlKTooZ29vZy5hc3NlcnRzLmZhaWwoXCJTdHJpbmcgdmFsdWUgcmVxdWlyZXMgYmFsYW5jZWQgc3F1YXJlIGJyYWNrZXRzIGFuZCBvbmUgaWRlbnRpZmllciBwZXIgcGFpciBvZiBicmFja2V0cywgZ290OiBcIitlKSxnb29nLmh0bWwuU2FmZVN0eWxlLklOTk9DVU9VU19TVFJJTkcpOihnb29nLmFzc2VydHMuZmFpbChcIlN0cmluZyB2YWx1ZSByZXF1aXJlcyBiYWxhbmNlZCBxdW90ZXMsIGdvdDogXCIrZSksZ29vZy5odG1sLlNhZmVTdHlsZS5JTk5PQ1VPVVNfU1RSSU5HKTooZ29vZy5hc3NlcnRzLmZhaWwoXCJTdHJpbmcgdmFsdWUgYWxsb3dzIG9ubHkgXCIrZ29vZy5odG1sLlNhZmVTdHlsZS5WQUxVRV9BTExPV0VEX0NIQVJTXytcIiBhbmQgc2ltcGxlIGZ1bmN0aW9ucywgZ290OiBcIitlKSxnb29nLmh0bWwuU2FmZVN0eWxlLklOTk9DVU9VU19TVFJJTkcpfSxnb29nLmh0bWwuU2FmZVN0eWxlLmhhc0JhbGFuY2VkUXVvdGVzXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9ITAsbz0hMCxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWUuY2hhckF0KHIpO1wiJ1wiPT1uJiZvP3Q9IXQ6J1wiJz09biYmdCYmKG89IW8pfXJldHVybiB0JiZvfSxnb29nLmh0bWwuU2FmZVN0eWxlLmhhc0JhbGFuY2VkU3F1YXJlQnJhY2tldHNfPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0hMCxvPS9eWy1fYS16QS1aMC05XSQvLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZS5jaGFyQXQocik7aWYoXCJdXCI9PW4pe2lmKHQpcmV0dXJuITE7dD0hMH1lbHNlIGlmKFwiW1wiPT1uKXtpZighdClyZXR1cm4hMTt0PSExfWVsc2UgaWYoIXQmJiFvLnRlc3QobikpcmV0dXJuITF9cmV0dXJuIHR9LGdvb2cuaHRtbC5TYWZlU3R5bGUuVkFMVUVfQUxMT1dFRF9DSEFSU189XCJbLSwuXFxcIiclXyEjIGEtekEtWjAtOVxcXFxbXFxcXF1dXCIsZ29vZy5odG1sLlNhZmVTdHlsZS5WQUxVRV9SRV89bmV3IFJlZ0V4cChcIl5cIitnb29nLmh0bWwuU2FmZVN0eWxlLlZBTFVFX0FMTE9XRURfQ0hBUlNfK1wiKyRcIiksZ29vZy5odG1sLlNhZmVTdHlsZS5VUkxfUkVfPS9cXGIodXJsXFwoWyBcXHRcXG5dKikoJ1sgLSYoLVxcW1xcXS1+XSonfFwiWyAhIy1cXFtcXF0tfl0qXCJ8WyEjLSYqLVxcW1xcXS1+XSopKFsgXFx0XFxuXSpcXCkpL2csZ29vZy5odG1sLlNhZmVTdHlsZS5GVU5DVElPTlNfUkVfPS9cXGIoaHNsfGhzbGF8cmdifHJnYmF8bWF0cml4fGNhbGN8bWlubWF4fGZpdC1jb250ZW50fHJlcGVhdHwocm90YXRlfHNjYWxlfHRyYW5zbGF0ZSkoWHxZfFp8M2QpPylcXChbLSsqLzAtOWEtei4lXFxbXFxdLCBdK1xcKS9nLGdvb2cuaHRtbC5TYWZlU3R5bGUuQ09NTUVOVF9SRV89L1xcL1xcKi8sZ29vZy5odG1sLlNhZmVTdHlsZS5zYW5pdGl6ZVVybF89ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZShnb29nLmh0bWwuU2FmZVN0eWxlLlVSTF9SRV8sKGZ1bmN0aW9uKGUsdCxvLHIpe3ZhciBuPVwiXCI7cmV0dXJuIG89by5yZXBsYWNlKC9eKFsnXCJdKSguKilcXDEkLywoZnVuY3Rpb24oZSx0LG8pe3JldHVybiBuPXQsb30pKSxlPWdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplKG8pLmdldFR5cGVkU3RyaW5nVmFsdWUoKSx0K24rZStuK3J9KSl9LGdvb2cuaHRtbC5TYWZlU3R5bGUuY29uY2F0PWZ1bmN0aW9uKGUpe3ZhciB0PVwiXCIsbz1mdW5jdGlvbihlKXtnb29nLmlzQXJyYXkoZSk/Z29vZy5hcnJheS5mb3JFYWNoKGUsbyk6dCs9Z29vZy5odG1sLlNhZmVTdHlsZS51bndyYXAoZSl9O3JldHVybiBnb29nLmFycmF5LmZvckVhY2goYXJndW1lbnRzLG8pLHQ/Z29vZy5odG1sLlNhZmVTdHlsZS5jcmVhdGVTYWZlU3R5bGVTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KTpnb29nLmh0bWwuU2FmZVN0eWxlLkVNUFRZfSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQ9ZnVuY3Rpb24oKXt0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTdHlsZVNoZWV0V3JhcHBlZFZhbHVlXz1cIlwiLHRoaXMuU0FGRV9TVFlMRV9TSEVFVF9UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFX30sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnByb3RvdHlwZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nPSEwLGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89e30sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LmNyZWF0ZVJ1bGU9ZnVuY3Rpb24oZSx0KXtpZihnb29nLnN0cmluZy5pbnRlcm5hbC5jb250YWlucyhlLFwiPFwiKSl0aHJvdyBFcnJvcihcIlNlbGVjdG9yIGRvZXMgbm90IGFsbG93ICc8JywgZ290OiBcIitlKTt2YXIgbz1lLnJlcGxhY2UoLygnfFwiKSgoPyFcXDEpW15cXHJcXG5cXGZcXFxcXXxcXFxcW1xcc1xcU10pKlxcMS9nLFwiXCIpO2lmKCEvXlstX2EtekEtWjAtOSMuOiogLD4rfltcXF0oKT1eJHxdKyQvLnRlc3QobykpdGhyb3cgRXJyb3IoXCJTZWxlY3RvciBhbGxvd3Mgb25seSBbLV9hLXpBLVowLTkjLjoqICw+K35bXFxcXF0oKT1eJHxdIGFuZCBzdHJpbmdzLCBnb3Q6IFwiK2UpO2lmKCFnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuaGFzQmFsYW5jZWRCcmFja2V0c18obykpdGhyb3cgRXJyb3IoXCIoKSBhbmQgW10gaW4gc2VsZWN0b3IgbXVzdCBiZSBiYWxhbmNlZCwgZ290OiBcIitlKTtyZXR1cm4gdCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlU3R5bGV8fCh0PWdvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlKHQpKSxlPWUrXCJ7XCIrZ29vZy5odG1sLlNhZmVTdHlsZS51bndyYXAodCkucmVwbGFjZSgvPC9nLFwiXFxcXDNDIFwiKStcIn1cIixnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlU2FmZVN0eWxlU2hlZXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShlKX0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0Lmhhc0JhbGFuY2VkQnJhY2tldHNfPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17XCIoXCI6XCIpXCIsXCJbXCI6XCJdXCJ9LG89W10scj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO2lmKHRbbl0pby5wdXNoKHRbbl0pO2Vsc2UgaWYoZ29vZy5vYmplY3QuY29udGFpbnModCxuKSYmby5wb3AoKSE9bilyZXR1cm4hMX1yZXR1cm4gMD09by5sZW5ndGh9LGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jb25jYXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9XCJcIixvPWZ1bmN0aW9uKGUpe2dvb2cuaXNBcnJheShlKT9nb29nLmFycmF5LmZvckVhY2goZSxvKTp0Kz1nb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQudW53cmFwKGUpfTtyZXR1cm4gZ29vZy5hcnJheS5mb3JFYWNoKGFyZ3VtZW50cyxvKSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlU2FmZVN0eWxlU2hlZXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LmZyb21Db25zdGFudD1mdW5jdGlvbihlKXtyZXR1cm4gMD09PShlPWdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSkubGVuZ3RoP2dvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5FTVBUWTooZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnMoZSxcIjxcIiksXCJGb3JiaWRkZW4gJzwnIGNoYXJhY3RlciBpbiBzdHlsZSBzaGVldCBzdHJpbmc6IFwiK2UpLGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGUpKX0sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnByb3RvdHlwZS5nZXRUeXBlZFN0cmluZ1ZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVN0eWxlU2hlZXRXcmFwcGVkVmFsdWVffSxnb29nLkRFQlVHJiYoZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiU2FmZVN0eWxlU2hlZXR7XCIrdGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlU3R5bGVTaGVldFdyYXBwZWRWYWx1ZV8rXCJ9XCJ9KSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQudW53cmFwPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0JiZlLmNvbnN0cnVjdG9yPT09Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0JiZlLlNBRkVfU1RZTEVfU0hFRVRfVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPT09Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz9lLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVTdHlsZVNoZWV0V3JhcHBlZFZhbHVlXzooZ29vZy5hc3NlcnRzLmZhaWwoXCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlU3R5bGVTaGVldCwgZ290ICdcIitlK1wiJyBvZiB0eXBlIFwiK2dvb2cudHlwZU9mKGUpKSxcInR5cGVfZXJyb3I6U2FmZVN0eWxlU2hlZXRcIil9LGdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUpe3JldHVybihuZXcgZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0KS5pbml0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VfKGUpfSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQucHJvdG90eXBlLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZVN0eWxlU2hlZXRXcmFwcGVkVmFsdWVfPWUsdGhpc30sZ29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LkVNUFRZPWdvb2cuaHRtbC5TYWZlU3R5bGVTaGVldC5jcmVhdGVTYWZlU3R5bGVTaGVldFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiXCIpLGdvb2cubGFicz17fSxnb29nLmxhYnMudXNlckFnZW50PXt9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbD17fSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0TmF0aXZlVXNlckFnZW50U3RyaW5nXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXZpZ2F0b3JfKCk7cmV0dXJuIGUmJihlPWUudXNlckFnZW50KT9lOlwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXZpZ2F0b3JfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuZ2xvYmFsLm5hdmlnYXRvcn0sZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLnVzZXJBZ2VudF89Z29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLmdldE5hdGl2ZVVzZXJBZ2VudFN0cmluZ18oKSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuc2V0VXNlckFnZW50PWZ1bmN0aW9uKGUpe2dvb2cubGFicy51c2VyQWdlbnQudXRpbC51c2VyQWdlbnRfPWV8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXROYXRpdmVVc2VyQWdlbnRTdHJpbmdfKCl9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXRVc2VyQWdlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLnVzZXJBZ2VudF99LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudD1mdW5jdGlvbihlKXt2YXIgdD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7cmV0dXJuIGdvb2cuc3RyaW5nLmludGVybmFsLmNvbnRhaW5zKHQsZSl9LGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudElnbm9yZUNhc2U9ZnVuY3Rpb24oZSl7dmFyIHQ9Z29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLmdldFVzZXJBZ2VudCgpO3JldHVybiBnb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVDb250YWlucyh0LGUpfSxnb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89LyhcXHdbXFx3IF0rKVxcLyhbXlxcc10rKVxccyooPzpcXCgoLio/KVxcKSk/L2cscj1bXTt0PW8uZXhlYyhlKTspci5wdXNoKFt0WzFdLHRbMl0sdFszXXx8dm9pZCAwXSk7cmV0dXJuIHJ9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlcj17fSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiT3BlcmFcIil9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaElFXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJUcmlkZW50XCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJNU0lFXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hFZGdlSHRtbF89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiRWRnZVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUNocm9taXVtXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJFZGcvXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYUNocm9taXVtXz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJPUFJcIil9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEZpcmVmb3hfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkZpcmVmb3hcIil8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkZ4aU9TXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hTYWZhcmlfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIlNhZmFyaVwiKSYmIShnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hDaHJvbWVfKCl8fGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaENvYXN0XygpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUh0bWxfKCl8fGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEVkZ2VDaHJvbWl1bV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoT3BlcmFDaHJvbWl1bV8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRmlyZWZveF8oKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzU2lsaygpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJBbmRyb2lkXCIpKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ29hc3RfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkNvYXN0XCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hJb3NXZWJ2aWV3Xz1mdW5jdGlvbigpe3JldHVybihnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGFkXCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGhvbmVcIikpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoU2FmYXJpXygpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXygpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ29hc3RfKCkmJiFnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hGaXJlZm94XygpJiZnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJBcHBsZVdlYktpdFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXz1mdW5jdGlvbigpe3JldHVybihnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDaHJvbWVcIil8fGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkNyaU9TXCIpKSYmIWdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5tYXRjaEVkZ2VIdG1sXygpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hBbmRyb2lkQnJvd3Nlcl89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiQW5kcm9pZFwiKSYmIShnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDaHJvbWUoKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRmlyZWZveCgpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNPcGVyYSgpfHxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNTaWxrKCkpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNPcGVyYT1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hPcGVyYV8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUU9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoSUVfLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0VkZ2U9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoRWRnZUh0bWxfLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0VkZ2VDaHJvbWl1bT1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hFZGdlQ2hyb21pdW1fLGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc09wZXJhQ2hyb21pdW09Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoT3BlcmFDaHJvbWl1bV8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRmlyZWZveD1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hGaXJlZm94Xyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNTYWZhcmk9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoU2FmYXJpXyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDb2FzdD1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hDb2FzdF8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSW9zV2Vidmlldz1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hJb3NXZWJ2aWV3Xyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNDaHJvbWU9Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLm1hdGNoQ2hyb21lXyxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNBbmRyb2lkQnJvd3Nlcj1nb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIubWF0Y2hBbmRyb2lkQnJvd3Nlcl8sZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzU2lsaz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJTaWxrXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuZ2V0VmVyc2lvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGU9Z29vZy5hcnJheS5maW5kKGUsciksb1tlXXx8XCJcIn12YXIgdD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7aWYoZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUUoKSlyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmdldElFVmVyc2lvbl8odCk7dD1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXModCk7dmFyIG89e307Z29vZy5hcnJheS5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUpe29bZVswXV09ZVsxXX0pKTt2YXIgcj1nb29nLnBhcnRpYWwoZ29vZy5vYmplY3QuY29udGFpbnNLZXksbyk7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc09wZXJhKCk/ZShbXCJWZXJzaW9uXCIsXCJPcGVyYVwiXSk6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZSgpP2UoW1wiRWRnZVwiXSk6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZUNocm9taXVtKCk/ZShbXCJFZGdcIl0pOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0Nocm9tZSgpP2UoW1wiQ2hyb21lXCIsXCJDcmlPU1wiXSk6KHQ9dFsyXSkmJnRbMV18fFwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc1ZlcnNpb25PckhpZ2hlcj1mdW5jdGlvbihlKXtyZXR1cm4gMDw9Z29vZy5zdHJpbmcuaW50ZXJuYWwuY29tcGFyZVZlcnNpb25zKGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5nZXRWZXJzaW9uKCksZSl9LGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5nZXRJRVZlcnNpb25fPWZ1bmN0aW9uKGUpe3ZhciB0PS9ydjogKihbXFxkXFwuXSopLy5leGVjKGUpO2lmKHQmJnRbMV0pcmV0dXJuIHRbMV07dD1cIlwiO3ZhciBvPS9NU0lFICsoW1xcZFxcLl0rKS8uZXhlYyhlKTtpZihvJiZvWzFdKWlmKGU9L1RyaWRlbnRcXC8oXFxkLlxcZCkvLmV4ZWMoZSksXCI3LjBcIj09b1sxXSlpZihlJiZlWzFdKXN3aXRjaChlWzFdKXtjYXNlXCI0LjBcIjp0PVwiOC4wXCI7YnJlYWs7Y2FzZVwiNS4wXCI6dD1cIjkuMFwiO2JyZWFrO2Nhc2VcIjYuMFwiOnQ9XCIxMC4wXCI7YnJlYWs7Y2FzZVwiNy4wXCI6dD1cIjExLjBcIn1lbHNlIHQ9XCI3LjBcIjtlbHNlIHQ9b1sxXTtyZXR1cm4gdH0sZ29vZy5odG1sLlNhZmVIdG1sPWZ1bmN0aW9uKCl7dGhpcy5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlSHRtbFdyYXBwZWRWYWx1ZV89XCJcIix0aGlzLlNBRkVfSFRNTF9UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV89Z29vZy5odG1sLlNhZmVIdG1sLlRZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXyx0aGlzLmRpcl89bnVsbH0sZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5pbXBsZW1lbnRzR29vZ0kxOG5CaWRpRGlyZWN0aW9uYWxTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5nZXREaXJlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXJffSxnb29nLmh0bWwuU2FmZUh0bWwucHJvdG90eXBlLmltcGxlbWVudHNHb29nU3RyaW5nVHlwZWRTdHJpbmc9ITAsZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5nZXRUeXBlZFN0cmluZ1ZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZUh0bWxXcmFwcGVkVmFsdWVfLnRvU3RyaW5nKCl9LGdvb2cuREVCVUcmJihnb29nLmh0bWwuU2FmZUh0bWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJTYWZlSHRtbHtcIit0aGlzLnByaXZhdGVEb05vdEFjY2Vzc09yRWxzZVNhZmVIdG1sV3JhcHBlZFZhbHVlXytcIn1cIn0pLGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXBUcnVzdGVkSFRNTChlKS50b1N0cmluZygpfSxnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUw9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZUh0bWwmJmUuY29uc3RydWN0b3I9PT1nb29nLmh0bWwuU2FmZUh0bWwmJmUuU0FGRV9IVE1MX1RZUEVfTUFSS0VSX0dPT0dfSFRNTF9TRUNVUklUWV9QUklWQVRFXz09PWdvb2cuaHRtbC5TYWZlSHRtbC5UWVBFX01BUktFUl9HT09HX0hUTUxfU0VDVVJJVFlfUFJJVkFURV8/ZS5wcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VTYWZlSHRtbFdyYXBwZWRWYWx1ZV86KGdvb2cuYXNzZXJ0cy5mYWlsKFwiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgU2FmZUh0bWwsIGdvdCAnXCIrZStcIicgb2YgdHlwZSBcIitnb29nLnR5cGVPZihlKSksXCJ0eXBlX2Vycm9yOlNhZmVIdG1sXCIpfSxnb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVIdG1sKXJldHVybiBlO3ZhciB0PVwib2JqZWN0XCI9PXR5cGVvZiBlLG89bnVsbDtyZXR1cm4gdCYmZS5pbXBsZW1lbnRzR29vZ0kxOG5CaWRpRGlyZWN0aW9uYWxTdHJpbmcmJihvPWUuZ2V0RGlyZWN0aW9uKCkpLGU9dCYmZS5pbXBsZW1lbnRzR29vZ1N0cmluZ1R5cGVkU3RyaW5nP2UuZ2V0VHlwZWRTdHJpbmdWYWx1ZSgpOlN0cmluZyhlKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLnN0cmluZy5pbnRlcm5hbC5odG1sRXNjYXBlKGUpLG8pfSxnb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZVByZXNlcnZpbmdOZXdsaW5lcz1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlSHRtbD9lOihlPWdvb2cuaHRtbC5TYWZlSHRtbC5odG1sRXNjYXBlKGUpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKGdvb2cuc3RyaW5nLmludGVybmFsLm5ld0xpbmVUb0JyKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGUuZ2V0RGlyZWN0aW9uKCkpKX0sZ29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGVQcmVzZXJ2aW5nTmV3bGluZXNBbmRTcGFjZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZUh0bWw/ZTooZT1nb29nLmh0bWwuU2FmZUh0bWwuaHRtbEVzY2FwZShlKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShnb29nLnN0cmluZy5pbnRlcm5hbC53aGl0ZXNwYWNlRXNjYXBlKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGUuZ2V0RGlyZWN0aW9uKCkpKX0sZ29vZy5odG1sLlNhZmVIdG1sLmZyb209Z29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGUsZ29vZy5odG1sLlNhZmVIdG1sLlZBTElEX05BTUVTX0lOX1RBR189L15bYS16QS1aMC05LV0rJC8sZ29vZy5odG1sLlNhZmVIdG1sLlVSTF9BVFRSSUJVVEVTXz17YWN0aW9uOiEwLGNpdGU6ITAsZGF0YTohMCxmb3JtYWN0aW9uOiEwLGhyZWY6ITAsbWFuaWZlc3Q6ITAscG9zdGVyOiEwLHNyYzohMH0sZ29vZy5odG1sLlNhZmVIdG1sLk5PVF9BTExPV0VEX1RBR19OQU1FU189e0FQUExFVDohMCxCQVNFOiEwLEVNQkVEOiEwLElGUkFNRTohMCxMSU5LOiEwLE1BVEg6ITAsTUVUQTohMCxPQkpFQ1Q6ITAsU0NSSVBUOiEwLFNUWUxFOiEwLFNWRzohMCxURU1QTEFURTohMH0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGdvb2cuaHRtbC5TYWZlSHRtbC52ZXJpZnlUYWdOYW1lKFN0cmluZyhlKSksZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sVGFnU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoU3RyaW5nKGUpLHQsbyl9LGdvb2cuaHRtbC5TYWZlSHRtbC52ZXJpZnlUYWdOYW1lPWZ1bmN0aW9uKGUpe2lmKCFnb29nLmh0bWwuU2FmZUh0bWwuVkFMSURfTkFNRVNfSU5fVEFHXy50ZXN0KGUpKXRocm93IEVycm9yKFwiSW52YWxpZCB0YWcgbmFtZSA8XCIrZStcIj4uXCIpO2lmKGUudG9VcHBlckNhc2UoKWluIGdvb2cuaHRtbC5TYWZlSHRtbC5OT1RfQUxMT1dFRF9UQUdfTkFNRVNfKXRocm93IEVycm9yKFwiVGFnIG5hbWUgPFwiK2UrXCI+IGlzIG5vdCBhbGxvd2VkIGZvciBTYWZlSHRtbC5cIil9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVJZnJhbWU9ZnVuY3Rpb24oZSx0LG8scil7ZSYmZ29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXAoZSk7dmFyIG49e307cmV0dXJuIG4uc3JjPWV8fG51bGwsbi5zcmNkb2M9dCYmZ29vZy5odG1sLlNhZmVIdG1sLnVud3JhcCh0KSxlPWdvb2cuaHRtbC5TYWZlSHRtbC5jb21iaW5lQXR0cmlidXRlcyhuLHtzYW5kYm94OlwiXCJ9LG8pLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFRhZ1NlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiaWZyYW1lXCIsZSxyKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhbmRib3hJZnJhbWU9ZnVuY3Rpb24oZSx0LG8scil7aWYoIWdvb2cuaHRtbC5TYWZlSHRtbC5jYW5Vc2VTYW5kYm94SWZyYW1lKCkpdGhyb3cgRXJyb3IoXCJUaGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHNhbmRib3hlZCBpZnJhbWVzLlwiKTt2YXIgbj17fTtyZXR1cm4gbi5zcmM9ZT9nb29nLmh0bWwuU2FmZVVybC51bndyYXAoZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemUoZSkpOm51bGwsbi5zcmNkb2M9dHx8bnVsbCxuLnNhbmRib3g9XCJcIixlPWdvb2cuaHRtbC5TYWZlSHRtbC5jb21iaW5lQXR0cmlidXRlcyhuLHt9LG8pLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFRhZ1NlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiaWZyYW1lXCIsZSxyKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNhblVzZVNhbmRib3hJZnJhbWU9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5nbG9iYWwuSFRNTElGcmFtZUVsZW1lbnQmJlwic2FuZGJveFwiaW4gZ29vZy5nbG9iYWwuSFRNTElGcmFtZUVsZW1lbnQucHJvdG90eXBlfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2NyaXB0U3JjPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwKGUpLGU9Z29vZy5odG1sLlNhZmVIdG1sLmNvbWJpbmVBdHRyaWJ1dGVzKHtzcmM6ZX0se30sdCksZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sVGFnU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJzY3JpcHRcIixlKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbyBpbiB0KXt2YXIgcj1vLnRvTG93ZXJDYXNlKCk7aWYoXCJsYW5ndWFnZVwiPT1yfHxcInNyY1wiPT1yfHxcInRleHRcIj09cnx8XCJ0eXBlXCI9PXIpdGhyb3cgRXJyb3IoJ0Nhbm5vdCBzZXQgXCInK3IrJ1wiIGF0dHJpYnV0ZScpfWZvcihvPVwiXCIsZT1nb29nLmFycmF5LmNvbmNhdChlKSxyPTA7cjxlLmxlbmd0aDtyKyspbys9Z29vZy5odG1sLlNhZmVTY3JpcHQudW53cmFwKGVbcl0pO3JldHVybiBlPWdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKG8sZ29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUwpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFRhZ1NlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwic2NyaXB0XCIsdCxlKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVN0eWxlPWZ1bmN0aW9uKGUsdCl7dD1nb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXMoe3R5cGU6XCJ0ZXh0L2Nzc1wifSx7fSx0KTt2YXIgbz1cIlwiO2U9Z29vZy5hcnJheS5jb25jYXQoZSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspbys9Z29vZy5odG1sLlNhZmVTdHlsZVNoZWV0LnVud3JhcChlW3JdKTtyZXR1cm4gZT1nb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShvLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcInN0eWxlXCIsdCxlKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZU1ldGFSZWZyZXNoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9Z29vZy5odG1sLlNhZmVVcmwudW53cmFwKGdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplKGUpKSwoZ29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzSUUoKXx8Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzRWRnZSgpKSYmZ29vZy5zdHJpbmcuaW50ZXJuYWwuY29udGFpbnMoZSxcIjtcIikmJihlPVwiJ1wiK2UucmVwbGFjZSgvJy9nLFwiJTI3XCIpK1wiJ1wiKSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcIm1ldGFcIix7XCJodHRwLWVxdWl2XCI6XCJyZWZyZXNoXCIsY29udGVudDoodHx8MCkrXCI7IHVybD1cIitlfSl9LGdvb2cuaHRtbC5TYWZlSHRtbC5nZXRBdHRyTmFtZUFuZFZhbHVlXz1mdW5jdGlvbihlLHQsbyl7aWYobyBpbnN0YW5jZW9mIGdvb2cuc3RyaW5nLkNvbnN0KW89Z29vZy5zdHJpbmcuQ29uc3QudW53cmFwKG8pO2Vsc2UgaWYoXCJzdHlsZVwiPT10LnRvTG93ZXJDYXNlKCkpbz1nb29nLmh0bWwuU2FmZUh0bWwuZ2V0U3R5bGVWYWx1ZV8obyk7ZWxzZXtpZigvXm9uL2kudGVzdCh0KSl0aHJvdyBFcnJvcignQXR0cmlidXRlIFwiJyt0KydcIiByZXF1aXJlcyBnb29nLnN0cmluZy5Db25zdCB2YWx1ZSwgXCInK28rJ1wiIGdpdmVuLicpO2lmKHQudG9Mb3dlckNhc2UoKWluIGdvb2cuaHRtbC5TYWZlSHRtbC5VUkxfQVRUUklCVVRFU18paWYobyBpbnN0YW5jZW9mIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwpbz1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcChvKTtlbHNlIGlmKG8gaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybClvPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcChvKTtlbHNle2lmKCFnb29nLmlzU3RyaW5nKG8pKXRocm93IEVycm9yKCdBdHRyaWJ1dGUgXCInK3QrJ1wiIG9uIHRhZyBcIicrZSsnXCIgcmVxdWlyZXMgZ29vZy5odG1sLlNhZmVVcmwsIGdvb2cuc3RyaW5nLkNvbnN0LCBvciBzdHJpbmcsIHZhbHVlIFwiJytvKydcIiBnaXZlbi4nKTtvPWdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplKG8pLmdldFR5cGVkU3RyaW5nVmFsdWUoKX19cmV0dXJuIG8uaW1wbGVtZW50c0dvb2dTdHJpbmdUeXBlZFN0cmluZyYmKG89by5nZXRUeXBlZFN0cmluZ1ZhbHVlKCkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5pc1N0cmluZyhvKXx8Z29vZy5pc051bWJlcihvKSxcIlN0cmluZyBvciBudW1iZXIgdmFsdWUgZXhwZWN0ZWQsIGdvdCBcIit0eXBlb2YgbytcIiB3aXRoIHZhbHVlOiBcIitvKSx0Kyc9XCInK2dvb2cuc3RyaW5nLmludGVybmFsLmh0bWxFc2NhcGUoU3RyaW5nKG8pKSsnXCInfSxnb29nLmh0bWwuU2FmZUh0bWwuZ2V0U3R5bGVWYWx1ZV89ZnVuY3Rpb24oZSl7aWYoIWdvb2cuaXNPYmplY3QoZSkpdGhyb3cgRXJyb3IoJ1RoZSBcInN0eWxlXCIgYXR0cmlidXRlIHJlcXVpcmVzIGdvb2cuaHRtbC5TYWZlU3R5bGUgb3IgbWFwIG9mIHN0eWxlIHByb3BlcnRpZXMsICcrdHlwZW9mIGUrXCIgZ2l2ZW46IFwiK2UpO3JldHVybiBlIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVTdHlsZXx8KGU9Z29vZy5odG1sLlNhZmVTdHlsZS5jcmVhdGUoZSkpLGdvb2cuaHRtbC5TYWZlU3R5bGUudW53cmFwKGUpfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlV2l0aERpcj1mdW5jdGlvbihlLHQsbyxyKXtyZXR1cm4odD1nb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlKHQsbyxyKSkuZGlyXz1lLHR9LGdvb2cuaHRtbC5TYWZlSHRtbC5qb2luPWZ1bmN0aW9uKGUsdCl7dmFyIG89KGU9Z29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGUoZSkpLmdldERpcmVjdGlvbigpLHI9W10sbj1mdW5jdGlvbihlKXtnb29nLmlzQXJyYXkoZSk/Z29vZy5hcnJheS5mb3JFYWNoKGUsbik6KGU9Z29vZy5odG1sLlNhZmVIdG1sLmh0bWxFc2NhcGUoZSksci5wdXNoKGdvb2cuaHRtbC5TYWZlSHRtbC51bndyYXAoZSkpLGU9ZS5nZXREaXJlY3Rpb24oKSxvPT1nb29nLmkxOG4uYmlkaS5EaXIuTkVVVFJBTD9vPWU6ZSE9Z29vZy5pMThuLmJpZGkuRGlyLk5FVVRSQUwmJm8hPWUmJihvPW51bGwpKX07cmV0dXJuIGdvb2cuYXJyYXkuZm9yRWFjaCh0LG4pLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHIuam9pbihnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwKGUpKSxvKX0sZ29vZy5odG1sLlNhZmVIdG1sLmNvbmNhdD1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5odG1sLlNhZmVIdG1sLmpvaW4oZ29vZy5odG1sLlNhZmVIdG1sLkVNUFRZLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxnb29nLmh0bWwuU2FmZUh0bWwuY29uY2F0V2l0aERpcj1mdW5jdGlvbihlLHQpe3ZhciBvPWdvb2cuaHRtbC5TYWZlSHRtbC5jb25jYXQoZ29vZy5hcnJheS5zbGljZShhcmd1bWVudHMsMSkpO3JldHVybiBvLmRpcl89ZSxvfSxnb29nLmh0bWwuU2FmZUh0bWwuVFlQRV9NQVJLRVJfR09PR19IVE1MX1NFQ1VSSVRZX1BSSVZBVEVfPXt9LGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKG5ldyBnb29nLmh0bWwuU2FmZUh0bWwpLmluaXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZV8oZSx0KX0sZ29vZy5odG1sLlNhZmVIdG1sLnByb3RvdHlwZS5pbml0U2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2VfPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlU2FmZUh0bWxXcmFwcGVkVmFsdWVfPWdvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZP2dvb2cuaHRtbC50cnVzdGVkdHlwZXMuUFJJVkFURV9ET19OT1RfQUNDRVNTX09SX0VMU0VfUE9MSUNZLmNyZWF0ZUhUTUwoZSk6ZSx0aGlzLmRpcl89dCx0aGlzfSxnb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxUYWdTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZT1mdW5jdGlvbihlLHQsbyl7dmFyIHI9bnVsbCxuPVwiPFwiK2UrZ29vZy5odG1sLlNhZmVIdG1sLnN0cmluZ2lmeUF0dHJpYnV0ZXMoZSx0KTtyZXR1cm4gZ29vZy5pc0RlZkFuZE5vdE51bGwobyk/Z29vZy5pc0FycmF5KG8pfHwobz1bb10pOm89W10sZ29vZy5kb20udGFncy5pc1ZvaWRUYWcoZS50b0xvd2VyQ2FzZSgpKT8oZ29vZy5hc3NlcnRzLmFzc2VydCghby5sZW5ndGgsXCJWb2lkIHRhZyA8XCIrZStcIj4gZG9lcyBub3QgYWxsb3cgY29udGVudC5cIiksbis9XCI+XCIpOihyPWdvb2cuaHRtbC5TYWZlSHRtbC5jb25jYXQobyksbis9XCI+XCIrZ29vZy5odG1sLlNhZmVIdG1sLnVud3JhcChyKStcIjwvXCIrZStcIj5cIixyPXIuZ2V0RGlyZWN0aW9uKCkpLChlPXQmJnQuZGlyKSYmKHI9L14obHRyfHJ0bHxhdXRvKSQvaS50ZXN0KGUpP2dvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMOm51bGwpLGdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKG4scil9LGdvb2cuaHRtbC5TYWZlSHRtbC5zdHJpbmdpZnlBdHRyaWJ1dGVzPWZ1bmN0aW9uKGUsdCl7dmFyIG89XCJcIjtpZih0KWZvcih2YXIgciBpbiB0KXtpZighZ29vZy5odG1sLlNhZmVIdG1sLlZBTElEX05BTUVTX0lOX1RBR18udGVzdChyKSl0aHJvdyBFcnJvcignSW52YWxpZCBhdHRyaWJ1dGUgbmFtZSBcIicrcisnXCIuJyk7dmFyIG49dFtyXTtnb29nLmlzRGVmQW5kTm90TnVsbChuKSYmKG8rPVwiIFwiK2dvb2cuaHRtbC5TYWZlSHRtbC5nZXRBdHRyTmFtZUFuZFZhbHVlXyhlLHIsbikpfXJldHVybiBvfSxnb29nLmh0bWwuU2FmZUh0bWwuY29tYmluZUF0dHJpYnV0ZXM9ZnVuY3Rpb24oZSx0LG8pe3ZhciByLG49e307Zm9yKHIgaW4gZSlnb29nLmFzc2VydHMuYXNzZXJ0KHIudG9Mb3dlckNhc2UoKT09cixcIk11c3QgYmUgbG93ZXIgY2FzZVwiKSxuW3JdPWVbcl07Zm9yKHIgaW4gdClnb29nLmFzc2VydHMuYXNzZXJ0KHIudG9Mb3dlckNhc2UoKT09cixcIk11c3QgYmUgbG93ZXIgY2FzZVwiKSxuW3JdPXRbcl07Zm9yKHIgaW4gbyl7dmFyIHM9ci50b0xvd2VyQ2FzZSgpO2lmKHMgaW4gZSl0aHJvdyBFcnJvcignQ2Fubm90IG92ZXJyaWRlIFwiJytzKydcIiBhdHRyaWJ1dGUsIGdvdCBcIicrcisnXCIgd2l0aCB2YWx1ZSBcIicrb1tyXSsnXCInKTtzIGluIHQmJmRlbGV0ZSBuW3NdLG5bcl09b1tyXX1yZXR1cm4gbn0sZ29vZy5odG1sLlNhZmVIdG1sLkRPQ1RZUEVfSFRNTD1nb29nLmh0bWwuU2FmZUh0bWwuY3JlYXRlU2FmZUh0bWxTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZShcIjwhRE9DVFlQRSBodG1sPlwiLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwuU2FmZUh0bWwuRU1QVFk9Z29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UoXCJcIixnb29nLmkxOG4uYmlkaS5EaXIuTkVVVFJBTCksZ29vZy5odG1sLlNhZmVIdG1sLkJSPWdvb2cuaHRtbC5TYWZlSHRtbC5jcmVhdGVTYWZlSHRtbFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKFwiPGJyPlwiLGdvb2cuaTE4bi5iaWRpLkRpci5ORVVUUkFMKSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnM9e30sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVIdG1sRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVIdG1sLmNyZWF0ZVNhZmVIdG1sU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCxvfHxudWxsKX0sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVTY3JpcHRGcm9tU3RyaW5nS25vd25Ub1NhdGlzZnlUeXBlQ29udHJhY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVTY3JpcHQuY3JlYXRlU2FmZVNjcmlwdFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHQpfSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMuc2FmZVN0eWxlRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnRTdHJpbmcoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpLFwibXVzdCBwcm92aWRlIGp1c3RpZmljYXRpb25cIiksZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuaXNFbXB0eU9yV2hpdGVzcGFjZShnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSkpLFwibXVzdCBwcm92aWRlIG5vbi1lbXB0eSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuaHRtbC5TYWZlU3R5bGUuY3JlYXRlU2FmZVN0eWxlU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuaHRtbC51bmNoZWNrZWRjb252ZXJzaW9ucy5zYWZlU3R5bGVTaGVldEZyb21TdHJpbmdLbm93blRvU2F0aXNmeVR5cGVDb250cmFjdD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0U3RyaW5nKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSxcIm11c3QgcHJvdmlkZSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoIWdvb2cuc3RyaW5nLmludGVybmFsLmlzRW1wdHlPcldoaXRlc3BhY2UoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpKSxcIm11c3QgcHJvdmlkZSBub24tZW1wdHkganVzdGlmaWNhdGlvblwiKSxnb29nLmh0bWwuU2FmZVN0eWxlU2hlZXQuY3JlYXRlU2FmZVN0eWxlU2hlZXRTZWN1cml0eVByaXZhdGVEb05vdEFjY2Vzc09yRWxzZSh0KX0sZ29vZy5odG1sLnVuY2hlY2tlZGNvbnZlcnNpb25zLnNhZmVVcmxGcm9tU3RyaW5nS25vd25Ub1NhdGlzZnlUeXBlQ29udHJhY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydFN0cmluZyhnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSksXCJtdXN0IHByb3ZpZGUganVzdGlmaWNhdGlvblwiKSxnb29nLmFzc2VydHMuYXNzZXJ0KCFnb29nLnN0cmluZy5pbnRlcm5hbC5pc0VtcHR5T3JXaGl0ZXNwYWNlKGdvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChlKSksXCJtdXN0IHByb3ZpZGUgbm9uLWVtcHR5IGp1c3RpZmljYXRpb25cIiksZ29vZy5odG1sLlNhZmVVcmwuY3JlYXRlU2FmZVVybFNlY3VyaXR5UHJpdmF0ZURvTm90QWNjZXNzT3JFbHNlKHQpfSxnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMudHJ1c3RlZFJlc291cmNlVXJsRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnRTdHJpbmcoZ29vZy5zdHJpbmcuQ29uc3QudW53cmFwKGUpLFwibXVzdCBwcm92aWRlIGp1c3RpZmljYXRpb25cIiksZ29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy5zdHJpbmcuaW50ZXJuYWwuaXNFbXB0eU9yV2hpdGVzcGFjZShnb29nLnN0cmluZy5Db25zdC51bndyYXAoZSkpLFwibXVzdCBwcm92aWRlIG5vbi1lbXB0eSBqdXN0aWZpY2F0aW9uXCIpLGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwuY3JlYXRlVHJ1c3RlZFJlc291cmNlVXJsU2VjdXJpdHlQcml2YXRlRG9Ob3RBY2Nlc3NPckVsc2UodCl9LGdvb2cuZG9tLnNhZmU9e30sZ29vZy5kb20uc2FmZS5JbnNlcnRBZGphY2VudEh0bWxQb3NpdGlvbj17QUZURVJCRUdJTjpcImFmdGVyYmVnaW5cIixBRlRFUkVORDpcImFmdGVyZW5kXCIsQkVGT1JFQkVHSU46XCJiZWZvcmViZWdpblwiLEJFRk9SRUVORDpcImJlZm9yZWVuZFwifSxnb29nLmRvbS5zYWZlLmluc2VydEFkamFjZW50SHRtbD1mdW5jdGlvbihlLHQsbyl7ZS5pbnNlcnRBZGphY2VudEhUTUwodCxnb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwobykpfSxnb29nLmRvbS5zYWZlLlNFVF9JTk5FUl9IVE1MX0RJU0FMTE9XRURfVEFHU189e01BVEg6ITAsU0NSSVBUOiEwLFNUWUxFOiEwLFNWRzohMCxURU1QTEFURTohMH0sZ29vZy5kb20uc2FmZS5pc0lubmVySHRtbENsZWFudXBSZWN1cnNpdmVfPWdvb2cuZnVuY3Rpb25zLmNhY2hlUmV0dXJuVmFsdWUoKGZ1bmN0aW9uKCl7aWYoZ29vZy5ERUJVRyYmXCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50KXJldHVybiExO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3JldHVybiB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLGUuYXBwZW5kQ2hpbGQodCksIShnb29nLkRFQlVHJiYhZS5maXJzdENoaWxkfHwodD1lLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCxlLmlubmVySFRNTD1nb29nLmh0bWwuU2FmZUh0bWwudW53cmFwVHJ1c3RlZEhUTUwoZ29vZy5odG1sLlNhZmVIdG1sLkVNUFRZKSx0LnBhcmVudEVsZW1lbnQpKX0pKSxnb29nLmRvbS5zYWZlLnVuc2FmZVNldElubmVySHRtbERvTm90VXNlT3JFbHNlPWZ1bmN0aW9uKGUsdCl7aWYoZ29vZy5kb20uc2FmZS5pc0lubmVySHRtbENsZWFudXBSZWN1cnNpdmVfKCkpZm9yKDtlLmxhc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmxhc3RDaGlsZCk7ZS5pbm5lckhUTUw9Z29vZy5odG1sLlNhZmVIdG1sLnVud3JhcFRydXN0ZWRIVE1MKHQpfSxnb29nLmRvbS5zYWZlLnNldElubmVySHRtbD1mdW5jdGlvbihlLHQpe2lmKGdvb2cuYXNzZXJ0cy5FTkFCTEVfQVNTRVJUUyl7dmFyIG89ZS50YWdOYW1lLnRvVXBwZXJDYXNlKCk7aWYoZ29vZy5kb20uc2FmZS5TRVRfSU5ORVJfSFRNTF9ESVNBTExPV0VEX1RBR1NfW29dKXRocm93IEVycm9yKFwiZ29vZy5kb20uc2FmZS5zZXRJbm5lckh0bWwgY2Fubm90IGJlIHVzZWQgdG8gc2V0IGNvbnRlbnQgb2YgXCIrZS50YWdOYW1lK1wiLlwiKX1nb29nLmRvbS5zYWZlLnVuc2FmZVNldElubmVySHRtbERvTm90VXNlT3JFbHNlKGUsdCl9LGdvb2cuZG9tLnNhZmUuc2V0T3V0ZXJIdG1sPWZ1bmN0aW9uKGUsdCl7ZS5vdXRlckhUTUw9Z29vZy5odG1sLlNhZmVIdG1sLnVud3JhcFRydXN0ZWRIVE1MKHQpfSxnb29nLmRvbS5zYWZlLnNldEZvcm1FbGVtZW50QWN0aW9uPWZ1bmN0aW9uKGUsdCl7dD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEZvcm1FbGVtZW50KGUpLmFjdGlvbj1nb29nLmh0bWwuU2FmZVVybC51bndyYXBUcnVzdGVkVVJMKHQpfSxnb29nLmRvbS5zYWZlLnNldEJ1dHRvbkZvcm1BY3Rpb249ZnVuY3Rpb24oZSx0KXt0PXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD90Omdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpLGdvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNIVE1MQnV0dG9uRWxlbWVudChlKS5mb3JtQWN0aW9uPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0SW5wdXRGb3JtQWN0aW9uPWZ1bmN0aW9uKGUsdCl7dD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTElucHV0RWxlbWVudChlKS5mb3JtQWN0aW9uPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0U3R5bGU9ZnVuY3Rpb24oZSx0KXtlLnN0eWxlLmNzc1RleHQ9Z29vZy5odG1sLlNhZmVTdHlsZS51bndyYXAodCl9LGdvb2cuZG9tLnNhZmUuZG9jdW1lbnRXcml0ZT1mdW5jdGlvbihlLHQpe2Uud3JpdGUoZ29vZy5odG1sLlNhZmVIdG1sLnVud3JhcFRydXN0ZWRIVE1MKHQpKX0sZ29vZy5kb20uc2FmZS5zZXRBbmNob3JIcmVmPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxBbmNob3JFbGVtZW50KGUpLHQ9dCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5TYWZlVXJsP3Q6Z29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVBc3NlcnRVbmNoYW5nZWQodCksZS5ocmVmPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0SW1hZ2VTcmM9ZnVuY3Rpb24oZSx0KXtpZihnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEltYWdlRWxlbWVudChlKSwhKHQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybCkpe3ZhciBvPS9eZGF0YTppbWFnZVxcLy9pLnRlc3QodCk7dD1nb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0LG8pfWUuc3JjPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0QXVkaW9TcmM9ZnVuY3Rpb24oZSx0KXtpZihnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEF1ZGlvRWxlbWVudChlKSwhKHQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybCkpe3ZhciBvPS9eZGF0YTphdWRpb1xcLy9pLnRlc3QodCk7dD1nb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0LG8pfWUuc3JjPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0VmlkZW9TcmM9ZnVuY3Rpb24oZSx0KXtpZihnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTFZpZGVvRWxlbWVudChlKSwhKHQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybCkpe3ZhciBvPS9eZGF0YTp2aWRlb1xcLy9pLnRlc3QodCk7dD1nb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0LG8pfWUuc3JjPWdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0RW1iZWRTcmM9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEVtYmVkRWxlbWVudChlKSxlLnNyYz1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcFRydXN0ZWRTY3JpcHRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0RnJhbWVTcmM9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTEZyYW1lRWxlbWVudChlKSxlLnNyYz1nb29nLmh0bWwuVHJ1c3RlZFJlc291cmNlVXJsLnVud3JhcFRydXN0ZWRVUkwodCl9LGdvb2cuZG9tLnNhZmUuc2V0SWZyYW1lU3JjPWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxJRnJhbWVFbGVtZW50KGUpLGUuc3JjPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwVHJ1c3RlZFVSTCh0KX0sZ29vZy5kb20uc2FmZS5zZXRJZnJhbWVTcmNkb2M9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTElGcmFtZUVsZW1lbnQoZSksZS5zcmNkb2M9Z29vZy5odG1sLlNhZmVIdG1sLnVud3JhcFRydXN0ZWRIVE1MKHQpfSxnb29nLmRvbS5zYWZlLnNldExpbmtIcmVmQW5kUmVsPWZ1bmN0aW9uKGUsdCxvKXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTExpbmtFbGVtZW50KGUpLGUucmVsPW8sZ29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlQ29udGFpbnMobyxcInN0eWxlc2hlZXRcIik/KGdvb2cuYXNzZXJ0cy5hc3NlcnQodCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwsJ1VSTCBtdXN0IGJlIFRydXN0ZWRSZXNvdXJjZVVybCBiZWNhdXNlIFwicmVsXCIgY29udGFpbnMgXCJzdHlsZXNoZWV0XCInKSxlLmhyZWY9Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkVVJMKHQpKTplLmhyZWY9dCBpbnN0YW5jZW9mIGdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmw/Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkVVJMKHQpOnQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD9nb29nLmh0bWwuU2FmZVVybC51bndyYXBUcnVzdGVkVVJMKHQpOmdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwoZ29vZy5odG1sLlNhZmVVcmwuc2FuaXRpemVBc3NlcnRVbmNoYW5nZWQodCkpfSxnb29nLmRvbS5zYWZlLnNldE9iamVjdERhdGE9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTE9iamVjdEVsZW1lbnQoZSksZS5kYXRhPWdvb2cuaHRtbC5UcnVzdGVkUmVzb3VyY2VVcmwudW53cmFwVHJ1c3RlZFNjcmlwdFVSTCh0KX0sZ29vZy5kb20uc2FmZS5zZXRTY3JpcHRTcmM9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzSFRNTFNjcmlwdEVsZW1lbnQoZSksZS5zcmM9Z29vZy5odG1sLlRydXN0ZWRSZXNvdXJjZVVybC51bndyYXBUcnVzdGVkU2NyaXB0VVJMKHQpLCh0PWdvb2cuZ2V0U2NyaXB0Tm9uY2UoKSkmJmUuc2V0QXR0cmlidXRlKFwibm9uY2VcIix0KX0sZ29vZy5kb20uc2FmZS5zZXRTY3JpcHRDb250ZW50PWZ1bmN0aW9uKGUsdCl7Z29vZy5kb20uYXNzZXJ0cy5hc3NlcnRJc0hUTUxTY3JpcHRFbGVtZW50KGUpLGUudGV4dD1nb29nLmh0bWwuU2FmZVNjcmlwdC51bndyYXBUcnVzdGVkU2NyaXB0KHQpLCh0PWdvb2cuZ2V0U2NyaXB0Tm9uY2UoKSkmJmUuc2V0QXR0cmlidXRlKFwibm9uY2VcIix0KX0sZ29vZy5kb20uc2FmZS5zZXRMb2NhdGlvbkhyZWY9ZnVuY3Rpb24oZSx0KXtnb29nLmRvbS5hc3NlcnRzLmFzc2VydElzTG9jYXRpb24oZSksdD10IGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/dDpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZCh0KSxlLmhyZWY9Z29vZy5odG1sLlNhZmVVcmwudW53cmFwVHJ1c3RlZFVSTCh0KX0sZ29vZy5kb20uc2FmZS5hc3NpZ25Mb2NhdGlvbj1mdW5jdGlvbihlLHQpe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNMb2NhdGlvbihlKSx0PXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD90Omdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpLGUuYXNzaWduKGdvb2cuaHRtbC5TYWZlVXJsLnVud3JhcFRydXN0ZWRVUkwodCkpfSxnb29nLmRvbS5zYWZlLnJlcGxhY2VMb2NhdGlvbj1mdW5jdGlvbihlLHQpe2dvb2cuZG9tLmFzc2VydHMuYXNzZXJ0SXNMb2NhdGlvbihlKSx0PXQgaW5zdGFuY2VvZiBnb29nLmh0bWwuU2FmZVVybD90Omdvb2cuaHRtbC5TYWZlVXJsLnNhbml0aXplQXNzZXJ0VW5jaGFuZ2VkKHQpLGUucmVwbGFjZShnb29nLmh0bWwuU2FmZVVybC51bndyYXBUcnVzdGVkVVJMKHQpKX0sZ29vZy5kb20uc2FmZS5vcGVuSW5XaW5kb3c9ZnVuY3Rpb24oZSx0LG8scixuKXtyZXR1cm4gZT1lIGluc3RhbmNlb2YgZ29vZy5odG1sLlNhZmVVcmw/ZTpnb29nLmh0bWwuU2FmZVVybC5zYW5pdGl6ZUFzc2VydFVuY2hhbmdlZChlKSwodHx8Z29vZy5nbG9iYWwpLm9wZW4oZ29vZy5odG1sLlNhZmVVcmwudW53cmFwVHJ1c3RlZFVSTChlKSxvP2dvb2cuc3RyaW5nLkNvbnN0LnVud3JhcChvKTpcIlwiLHIsbil9LGdvb2cuZG9tLnNhZmUucGFyc2VGcm9tU3RyaW5nSHRtbD1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmRvbS5zYWZlLnBhcnNlRnJvbVN0cmluZyhlLHQsXCJ0ZXh0L2h0bWxcIil9LGdvb2cuZG9tLnNhZmUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gZS5wYXJzZUZyb21TdHJpbmcoZ29vZy5odG1sLlNhZmVIdG1sLnVud3JhcFRydXN0ZWRIVE1MKHQpLG8pfSxnb29nLmRvbS5zYWZlLmNyZWF0ZUltYWdlRnJvbUJsb2I9ZnVuY3Rpb24oZSl7aWYoIS9eaW1hZ2VcXC8uKi9nLnRlc3QoZS50eXBlKSl0aHJvdyBFcnJvcihcImdvb2cuZG9tLnNhZmUuY3JlYXRlSW1hZ2VGcm9tQmxvYiBvbmx5IGFjY2VwdHMgTUlNRSB0eXBlIGltYWdlLy4qLlwiKTt2YXIgdD1nb29nLmdsb2JhbC5VUkwuY3JlYXRlT2JqZWN0VVJMKGUpO3JldHVybihlPW5ldyBnb29nLmdsb2JhbC5JbWFnZSkub25sb2FkPWZ1bmN0aW9uKCl7Z29vZy5nbG9iYWwuVVJMLnJldm9rZU9iamVjdFVSTCh0KX0sZ29vZy5kb20uc2FmZS5zZXRJbWFnZVNyYyhlLGdvb2cuaHRtbC51bmNoZWNrZWRjb252ZXJzaW9ucy5zYWZlVXJsRnJvbVN0cmluZ0tub3duVG9TYXRpc2Z5VHlwZUNvbnRyYWN0KGdvb2cuc3RyaW5nLkNvbnN0LmZyb20oXCJJbWFnZSBibG9iIFVSTC5cIiksdCkpLGV9LGdvb2cuc3RyaW5nLkRFVEVDVF9ET1VCTEVfRVNDQVBJTkc9ITEsZ29vZy5zdHJpbmcuRk9SQ0VfTk9OX0RPTV9IVE1MX1VORVNDQVBJTkc9ITEsZ29vZy5zdHJpbmcuVW5pY29kZT17TkJTUDpcIsKgXCJ9LGdvb2cuc3RyaW5nLnN0YXJ0c1dpdGg9Z29vZy5zdHJpbmcuaW50ZXJuYWwuc3RhcnRzV2l0aCxnb29nLnN0cmluZy5lbmRzV2l0aD1nb29nLnN0cmluZy5pbnRlcm5hbC5lbmRzV2l0aCxnb29nLnN0cmluZy5jYXNlSW5zZW5zaXRpdmVTdGFydHNXaXRoPWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZVN0YXJ0c1dpdGgsZ29vZy5zdHJpbmcuY2FzZUluc2Vuc2l0aXZlRW5kc1dpdGg9Z29vZy5zdHJpbmcuaW50ZXJuYWwuY2FzZUluc2Vuc2l0aXZlRW5kc1dpdGgsZ29vZy5zdHJpbmcuY2FzZUluc2Vuc2l0aXZlRXF1YWxzPWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUVxdWFscyxnb29nLnN0cmluZy5zdWJzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPWUuc3BsaXQoXCIlc1wiKSxyPVwiXCIsbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7bi5sZW5ndGgmJjE8by5sZW5ndGg7KXIrPW8uc2hpZnQoKStuLnNoaWZ0KCk7cmV0dXJuIHIrby5qb2luKFwiJXNcIil9LGdvb2cuc3RyaW5nLmNvbGxhcHNlV2hpdGVzcGFjZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXFxzXFx4YTBdKy9nLFwiIFwiKS5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLFwiXCIpfSxnb29nLnN0cmluZy5pc0VtcHR5T3JXaGl0ZXNwYWNlPWdvb2cuc3RyaW5nLmludGVybmFsLmlzRW1wdHlPcldoaXRlc3BhY2UsZ29vZy5zdHJpbmcuaXNFbXB0eVN0cmluZz1mdW5jdGlvbihlKXtyZXR1cm4gMD09ZS5sZW5ndGh9LGdvb2cuc3RyaW5nLmlzRW1wdHk9Z29vZy5zdHJpbmcuaXNFbXB0eU9yV2hpdGVzcGFjZSxnb29nLnN0cmluZy5pc0VtcHR5T3JXaGl0ZXNwYWNlU2FmZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuaXNFbXB0eU9yV2hpdGVzcGFjZShnb29nLnN0cmluZy5tYWtlU2FmZShlKSl9LGdvb2cuc3RyaW5nLmlzRW1wdHlTYWZlPWdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2VTYWZlLGdvb2cuc3RyaW5nLmlzQnJlYWtpbmdXaGl0ZXNwYWNlPWZ1bmN0aW9uKGUpe3JldHVybiEvW15cXHRcXG5cXHIgXS8udGVzdChlKX0sZ29vZy5zdHJpbmcuaXNBbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4hL1teYS16QS1aXS8udGVzdChlKX0sZ29vZy5zdHJpbmcuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3JldHVybiEvW14wLTldLy50ZXN0KGUpfSxnb29nLnN0cmluZy5pc0FscGhhTnVtZXJpYz1mdW5jdGlvbihlKXtyZXR1cm4hL1teYS16QS1aMC05XS8udGVzdChlKX0sZ29vZy5zdHJpbmcuaXNTcGFjZT1mdW5jdGlvbihlKXtyZXR1cm5cIiBcIj09ZX0sZ29vZy5zdHJpbmcuaXNVbmljb2RlQ2hhcj1mdW5jdGlvbihlKXtyZXR1cm4gMT09ZS5sZW5ndGgmJlwiIFwiPD1lJiZcIn5cIj49ZXx8XCLCgFwiPD1lJiZcIu+/vVwiPj1lfSxnb29nLnN0cmluZy5zdHJpcE5ld2xpbmVzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyhcXHJcXG58XFxyfFxcbikrL2csXCIgXCIpfSxnb29nLnN0cmluZy5jYW5vbmljYWxpemVOZXdsaW5lcz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC8oXFxyXFxufFxccnxcXG4pL2csXCJcXG5cIil9LGdvb2cuc3RyaW5nLm5vcm1hbGl6ZVdoaXRlc3BhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXFx4YTB8XFxzL2csXCIgXCIpfSxnb29nLnN0cmluZy5ub3JtYWxpemVTcGFjZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvXFx4YTB8WyBcXHRdKy9nLFwiIFwiKX0sZ29vZy5zdHJpbmcuY29sbGFwc2VCcmVha2luZ1NwYWNlcz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXFx0XFxyXFxuIF0rL2csXCIgXCIpLnJlcGxhY2UoL15bXFx0XFxyXFxuIF0rfFtcXHRcXHJcXG4gXSskL2csXCJcIil9LGdvb2cuc3RyaW5nLnRyaW09Z29vZy5zdHJpbmcuaW50ZXJuYWwudHJpbSxnb29nLnN0cmluZy50cmltTGVmdD1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9eW1xcc1xceGEwXSsvLFwiXCIpfSxnb29nLnN0cmluZy50cmltUmlnaHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xcc1xceGEwXSskLyxcIlwiKX0sZ29vZy5zdHJpbmcuY2FzZUluc2Vuc2l0aXZlQ29tcGFyZT1nb29nLnN0cmluZy5pbnRlcm5hbC5jYXNlSW5zZW5zaXRpdmVDb21wYXJlLGdvb2cuc3RyaW5nLm51bWJlckF3YXJlQ29tcGFyZV89ZnVuY3Rpb24oZSx0LG8pe2lmKGU9PXQpcmV0dXJuIDA7aWYoIWUpcmV0dXJuLTE7aWYoIXQpcmV0dXJuIDE7Zm9yKHZhciByPWUudG9Mb3dlckNhc2UoKS5tYXRjaChvKSxuPXQudG9Mb3dlckNhc2UoKS5tYXRjaChvKSxzPU1hdGgubWluKHIubGVuZ3RoLG4ubGVuZ3RoKSxpPTA7aTxzO2krKyl7bz1yW2ldO3ZhciBhPW5baV07aWYobyE9YSlyZXR1cm4gZT1wYXJzZUludChvLDEwKSwhaXNOYU4oZSkmJih0PXBhcnNlSW50KGEsMTApLCFpc05hTih0KSYmZS10KT9lLXQ6bzxhPy0xOjF9cmV0dXJuIHIubGVuZ3RoIT1uLmxlbmd0aD9yLmxlbmd0aC1uLmxlbmd0aDplPHQ/LTE6MX0sZ29vZy5zdHJpbmcuaW50QXdhcmVDb21wYXJlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuc3RyaW5nLm51bWJlckF3YXJlQ29tcGFyZV8oZSx0LC9cXGQrfFxcRCsvZyl9LGdvb2cuc3RyaW5nLmZsb2F0QXdhcmVDb21wYXJlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuc3RyaW5nLm51bWJlckF3YXJlQ29tcGFyZV8oZSx0LC9cXGQrfFxcLlxcZCt8XFxEKy9nKX0sZ29vZy5zdHJpbmcubnVtZXJhdGVDb21wYXJlPWdvb2cuc3RyaW5nLmZsb2F0QXdhcmVDb21wYXJlLGdvb2cuc3RyaW5nLnVybEVuY29kZT1mdW5jdGlvbihlKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhlKSl9LGdvb2cuc3RyaW5nLnVybERlY29kZT1mdW5jdGlvbihlKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUucmVwbGFjZSgvXFwrL2csXCIgXCIpKX0sZ29vZy5zdHJpbmcubmV3TGluZVRvQnI9Z29vZy5zdHJpbmcuaW50ZXJuYWwubmV3TGluZVRvQnIsZ29vZy5zdHJpbmcuaHRtbEVzY2FwZT1mdW5jdGlvbihlLHQpe3JldHVybiBlPWdvb2cuc3RyaW5nLmludGVybmFsLmh0bWxFc2NhcGUoZSx0KSxnb29nLnN0cmluZy5ERVRFQ1RfRE9VQkxFX0VTQ0FQSU5HJiYoZT1lLnJlcGxhY2UoZ29vZy5zdHJpbmcuRV9SRV8sXCImIzEwMTtcIikpLGV9LGdvb2cuc3RyaW5nLkVfUkVfPS9lL2csZ29vZy5zdHJpbmcudW5lc2NhcGVFbnRpdGllcz1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5zdHJpbmcuY29udGFpbnMoZSxcIiZcIik/IWdvb2cuc3RyaW5nLkZPUkNFX05PTl9ET01fSFRNTF9VTkVTQ0FQSU5HJiZcImRvY3VtZW50XCJpbiBnb29nLmdsb2JhbD9nb29nLnN0cmluZy51bmVzY2FwZUVudGl0aWVzVXNpbmdEb21fKGUpOmdvb2cuc3RyaW5nLnVuZXNjYXBlUHVyZVhtbEVudGl0aWVzXyhlKTplfSxnb29nLnN0cmluZy51bmVzY2FwZUVudGl0aWVzV2l0aERvY3VtZW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuc3RyaW5nLmNvbnRhaW5zKGUsXCImXCIpP2dvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXNVc2luZ0RvbV8oZSx0KTplfSxnb29nLnN0cmluZy51bmVzY2FwZUVudGl0aWVzVXNpbmdEb21fPWZ1bmN0aW9uKGUsdCl7dmFyIG89e1wiJmFtcDtcIjpcIiZcIixcIiZsdDtcIjpcIjxcIixcIiZndDtcIjpcIj5cIixcIiZxdW90O1wiOidcIid9LHI9dD90LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik6Z29vZy5nbG9iYWwuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gZS5yZXBsYWNlKGdvb2cuc3RyaW5nLkhUTUxfRU5USVRZX1BBVFRFUk5fLChmdW5jdGlvbihlLHQpe3ZhciBuPW9bZV07cmV0dXJuIG58fChcIiNcIj09dC5jaGFyQXQoMCkmJih0PU51bWJlcihcIjBcIit0LnN1YnN0cigxKSksaXNOYU4odCl8fChuPVN0cmluZy5mcm9tQ2hhckNvZGUodCkpKSxufHwoZ29vZy5kb20uc2FmZS5zZXRJbm5lckh0bWwocixnb29nLmh0bWwudW5jaGVja2VkY29udmVyc2lvbnMuc2FmZUh0bWxGcm9tU3RyaW5nS25vd25Ub1NhdGlzZnlUeXBlQ29udHJhY3QoZ29vZy5zdHJpbmcuQ29uc3QuZnJvbShcIlNpbmdsZSBIVE1MIGVudGl0eS5cIiksZStcIiBcIikpLG49ci5maXJzdENoaWxkLm5vZGVWYWx1ZS5zbGljZSgwLC0xKSksb1tlXT1uKX0pKX0sZ29vZy5zdHJpbmcudW5lc2NhcGVQdXJlWG1sRW50aXRpZXNfPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyYoW147XSspOy9nLChmdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlXCJhbXBcIjpyZXR1cm5cIiZcIjtjYXNlXCJsdFwiOnJldHVyblwiPFwiO2Nhc2VcImd0XCI6cmV0dXJuXCI+XCI7Y2FzZVwicXVvdFwiOnJldHVybidcIic7ZGVmYXVsdDpyZXR1cm5cIiNcIiE9dC5jaGFyQXQoMCl8fCh0PU51bWJlcihcIjBcIit0LnN1YnN0cigxKSksaXNOYU4odCkpP2U6U3RyaW5nLmZyb21DaGFyQ29kZSh0KX19KSl9LGdvb2cuc3RyaW5nLkhUTUxfRU5USVRZX1BBVFRFUk5fPS8mKFteO1xcczwmXSspOz8vZyxnb29nLnN0cmluZy53aGl0ZXNwYWNlRXNjYXBlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGdvb2cuc3RyaW5nLm5ld0xpbmVUb0JyKGUucmVwbGFjZSgvICAvZyxcIiAmIzE2MDtcIiksdCl9LGdvb2cuc3RyaW5nLnByZXNlcnZlU3BhY2VzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyhefFtcXG4gXSkgL2csXCIkMVwiK2dvb2cuc3RyaW5nLlVuaWNvZGUuTkJTUCl9LGdvb2cuc3RyaW5nLnN0cmlwUXVvdGVzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPXQubGVuZ3RoLHI9MDtyPG87cisrKXt2YXIgbj0xPT1vP3Q6dC5jaGFyQXQocik7aWYoZS5jaGFyQXQoMCk9PW4mJmUuY2hhckF0KGUubGVuZ3RoLTEpPT1uKXJldHVybiBlLnN1YnN0cmluZygxLGUubGVuZ3RoLTEpfXJldHVybiBlfSxnb29nLnN0cmluZy50cnVuY2F0ZT1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIG8mJihlPWdvb2cuc3RyaW5nLnVuZXNjYXBlRW50aXRpZXMoZSkpLGUubGVuZ3RoPnQmJihlPWUuc3Vic3RyaW5nKDAsdC0zKStcIi4uLlwiKSxvJiYoZT1nb29nLnN0cmluZy5odG1sRXNjYXBlKGUpKSxlfSxnb29nLnN0cmluZy50cnVuY2F0ZU1pZGRsZT1mdW5jdGlvbihlLHQsbyxyKXtpZihvJiYoZT1nb29nLnN0cmluZy51bmVzY2FwZUVudGl0aWVzKGUpKSxyJiZlLmxlbmd0aD50KXtyPnQmJihyPXQpO3ZhciBuPWUubGVuZ3RoLXI7ZT1lLnN1YnN0cmluZygwLHQtcikrXCIuLi5cIitlLnN1YnN0cmluZyhuKX1lbHNlIGUubGVuZ3RoPnQmJihyPU1hdGguZmxvb3IodC8yKSxuPWUubGVuZ3RoLXIsZT1lLnN1YnN0cmluZygwLHIrdCUyKStcIi4uLlwiK2Uuc3Vic3RyaW5nKG4pKTtyZXR1cm4gbyYmKGU9Z29vZy5zdHJpbmcuaHRtbEVzY2FwZShlKSksZX0sZ29vZy5zdHJpbmcuc3BlY2lhbEVzY2FwZUNoYXJzXz17XCJcXDBcIjpcIlxcXFwwXCIsXCJcXGJcIjpcIlxcXFxiXCIsXCJcXGZcIjpcIlxcXFxmXCIsXCJcXG5cIjpcIlxcXFxuXCIsXCJcXHJcIjpcIlxcXFxyXCIsXCJcXHRcIjpcIlxcXFx0XCIsXCJcXHZcIjpcIlxcXFx4MEJcIiwnXCInOidcXFxcXCInLFwiXFxcXFwiOlwiXFxcXFxcXFxcIixcIjxcIjpcIlxcXFx1MDAzQ1wifSxnb29nLnN0cmluZy5qc0VzY2FwZUNhY2hlXz17XCInXCI6XCJcXFxcJ1wifSxnb29nLnN0cmluZy5xdW90ZT1mdW5jdGlvbihlKXtlPVN0cmluZyhlKTtmb3IodmFyIHQ9WydcIiddLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIHI9ZS5jaGFyQXQobyksbj1yLmNoYXJDb2RlQXQoMCk7dFtvKzFdPWdvb2cuc3RyaW5nLnNwZWNpYWxFc2NhcGVDaGFyc19bcl18fCgzMTxuJiYxMjc+bj9yOmdvb2cuc3RyaW5nLmVzY2FwZUNoYXIocikpfXJldHVybiB0LnB1c2goJ1wiJyksdC5qb2luKFwiXCIpfSxnb29nLnN0cmluZy5lc2NhcGVTdHJpbmc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG89MDtvPGUubGVuZ3RoO28rKyl0W29dPWdvb2cuc3RyaW5nLmVzY2FwZUNoYXIoZS5jaGFyQXQobykpO3JldHVybiB0LmpvaW4oXCJcIil9LGdvb2cuc3RyaW5nLmVzY2FwZUNoYXI9ZnVuY3Rpb24oZSl7aWYoZSBpbiBnb29nLnN0cmluZy5qc0VzY2FwZUNhY2hlXylyZXR1cm4gZ29vZy5zdHJpbmcuanNFc2NhcGVDYWNoZV9bZV07aWYoZSBpbiBnb29nLnN0cmluZy5zcGVjaWFsRXNjYXBlQ2hhcnNfKXJldHVybiBnb29nLnN0cmluZy5qc0VzY2FwZUNhY2hlX1tlXT1nb29nLnN0cmluZy5zcGVjaWFsRXNjYXBlQ2hhcnNfW2VdO3ZhciB0PWUuY2hhckNvZGVBdCgwKTtpZigzMTx0JiYxMjc+dCl2YXIgbz1lO2Vsc2UgMjU2PnQ/KG89XCJcXFxceFwiLCgxNj50fHwyNTY8dCkmJihvKz1cIjBcIikpOihvPVwiXFxcXHVcIiw0MDk2PnQmJihvKz1cIjBcIikpLG8rPXQudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGdvb2cuc3RyaW5nLmpzRXNjYXBlQ2FjaGVfW2VdPW99LGdvb2cuc3RyaW5nLmNvbnRhaW5zPWdvb2cuc3RyaW5nLmludGVybmFsLmNvbnRhaW5zLGdvb2cuc3RyaW5nLmNhc2VJbnNlbnNpdGl2ZUNvbnRhaW5zPWdvb2cuc3RyaW5nLmludGVybmFsLmNhc2VJbnNlbnNpdGl2ZUNvbnRhaW5zLGdvb2cuc3RyaW5nLmNvdW50T2Y9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmdD9lLnNwbGl0KHQpLmxlbmd0aC0xOjB9LGdvb2cuc3RyaW5nLnJlbW92ZUF0PWZ1bmN0aW9uKGUsdCxvKXt2YXIgcj1lO3JldHVybiAwPD10JiZ0PGUubGVuZ3RoJiYwPG8mJihyPWUuc3Vic3RyKDAsdCkrZS5zdWJzdHIodCtvLGUubGVuZ3RoLXQtbykpLHJ9LGdvb2cuc3RyaW5nLnJlbW92ZT1mdW5jdGlvbihlLHQpe3JldHVybiBlLnJlcGxhY2UodCxcIlwiKX0sZ29vZy5zdHJpbmcucmVtb3ZlQWxsPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9bmV3IFJlZ0V4cChnb29nLnN0cmluZy5yZWdFeHBFc2NhcGUodCksXCJnXCIpLGUucmVwbGFjZSh0LFwiXCIpfSxnb29nLnN0cmluZy5yZXBsYWNlQWxsPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gdD1uZXcgUmVnRXhwKGdvb2cuc3RyaW5nLnJlZ0V4cEVzY2FwZSh0KSxcImdcIiksZS5yZXBsYWNlKHQsby5yZXBsYWNlKC9cXCQvZyxcIiQkJCRcIikpfSxnb29nLnN0cmluZy5yZWdFeHBFc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC8oWy0oKVxcW1xcXXt9Kz8qLiRcXF58LDojPCFcXFxcXSkvZyxcIlxcXFwkMVwiKS5yZXBsYWNlKC9cXHgwOC9nLFwiXFxcXHgwOFwiKX0sZ29vZy5zdHJpbmcucmVwZWF0PVN0cmluZy5wcm90b3R5cGUucmVwZWF0P2Z1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmVwZWF0KHQpfTpmdW5jdGlvbihlLHQpe3JldHVybiBBcnJheSh0KzEpLmpvaW4oZSl9LGdvb2cuc3RyaW5nLnBhZE51bWJlcj1mdW5jdGlvbihlLHQsbyl7cmV0dXJuLTE9PShvPShlPWdvb2cuaXNEZWYobyk/ZS50b0ZpeGVkKG8pOlN0cmluZyhlKSkuaW5kZXhPZihcIi5cIikpJiYobz1lLmxlbmd0aCksZ29vZy5zdHJpbmcucmVwZWF0KFwiMFwiLE1hdGgubWF4KDAsdC1vKSkrZX0sZ29vZy5zdHJpbmcubWFrZVNhZmU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/XCJcIjpTdHJpbmcoZSl9LGdvb2cuc3RyaW5nLmJ1aWxkU3RyaW5nPWZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuam9pbi5jYWxsKGFyZ3VtZW50cyxcIlwiKX0sZ29vZy5zdHJpbmcuZ2V0UmFuZG9tU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZmxvb3IoMjE0NzQ4MzY0OCpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikrTWF0aC5hYnMoTWF0aC5mbG9vcigyMTQ3NDgzNjQ4Kk1hdGgucmFuZG9tKCkpXmdvb2cubm93KCkpLnRvU3RyaW5nKDM2KX0sZ29vZy5zdHJpbmcuY29tcGFyZVZlcnNpb25zPWdvb2cuc3RyaW5nLmludGVybmFsLmNvbXBhcmVWZXJzaW9ucyxnb29nLnN0cmluZy5oYXNoQ29kZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxvPTA7bzxlLmxlbmd0aDsrK28pdD0zMSp0K2UuY2hhckNvZGVBdChvKT4+PjA7cmV0dXJuIHR9LGdvb2cuc3RyaW5nLnVuaXF1ZVN0cmluZ0NvdW50ZXJfPTIxNDc0ODM2NDgqTWF0aC5yYW5kb20oKXwwLGdvb2cuc3RyaW5nLmNyZWF0ZVVuaXF1ZVN0cmluZz1mdW5jdGlvbigpe3JldHVyblwiZ29vZ19cIitnb29nLnN0cmluZy51bmlxdWVTdHJpbmdDb3VudGVyXysrfSxnb29nLnN0cmluZy50b051bWJlcj1mdW5jdGlvbihlKXt2YXIgdD1OdW1iZXIoZSk7cmV0dXJuIDA9PXQmJmdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2UoZSk/TmFOOnR9LGdvb2cuc3RyaW5nLmlzTG93ZXJDYW1lbENhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuL15bYS16XSsoW0EtWl1bYS16XSopKiQvLnRlc3QoZSl9LGdvb2cuc3RyaW5nLmlzVXBwZXJDYW1lbENhc2U9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW0EtWl1bYS16XSopKyQvLnRlc3QoZSl9LGdvb2cuc3RyaW5nLnRvQ2FtZWxDYXNlPWZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvXFwtKFthLXpdKS9nLChmdW5jdGlvbihlLHQpe3JldHVybiB0LnRvVXBwZXJDYXNlKCl9KSl9LGdvb2cuc3RyaW5nLnRvU2VsZWN0b3JDYXNlPWZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvKFtBLVpdKS9nLFwiLSQxXCIpLnRvTG93ZXJDYXNlKCl9LGdvb2cuc3RyaW5nLnRvVGl0bGVDYXNlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9Z29vZy5pc1N0cmluZyh0KT9nb29nLnN0cmluZy5yZWdFeHBFc2NhcGUodCk6XCJcXFxcc1wiLGUucmVwbGFjZShuZXcgUmVnRXhwKFwiKF5cIisodD9cInxbXCIrdCtcIl0rXCI6XCJcIikrXCIpKFthLXpdKVwiLFwiZ1wiKSwoZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0K28udG9VcHBlckNhc2UoKX0pKX0sZ29vZy5zdHJpbmcuY2FwaXRhbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUuY2hhckF0KDApKS50b1VwcGVyQ2FzZSgpK1N0cmluZyhlLnN1YnN0cigxKSkudG9Mb3dlckNhc2UoKX0sZ29vZy5zdHJpbmcucGFyc2VJbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGlzRmluaXRlKGUpJiYoZT1TdHJpbmcoZSkpLGdvb2cuaXNTdHJpbmcoZSk/L15cXHMqLT8weC9pLnRlc3QoZSk/cGFyc2VJbnQoZSwxNik6cGFyc2VJbnQoZSwxMCk6TmFOfSxnb29nLnN0cmluZy5zcGxpdExpbWl0PWZ1bmN0aW9uKGUsdCxvKXtlPWUuc3BsaXQodCk7Zm9yKHZhciByPVtdOzA8byYmZS5sZW5ndGg7KXIucHVzaChlLnNoaWZ0KCkpLG8tLTtyZXR1cm4gZS5sZW5ndGgmJnIucHVzaChlLmpvaW4odCkpLHJ9LGdvb2cuc3RyaW5nLmxhc3RDb21wb25lbnQ9ZnVuY3Rpb24oZSx0KXtpZighdClyZXR1cm4gZTtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9W3RdKTtmb3IodmFyIG89LTEscj0wO3I8dC5sZW5ndGg7cisrKWlmKFwiXCIhPXRbcl0pe3ZhciBuPWUubGFzdEluZGV4T2YodFtyXSk7bj5vJiYobz1uKX1yZXR1cm4tMT09bz9lOmUuc2xpY2UobysxKX0sZ29vZy5zdHJpbmcuZWRpdERpc3RhbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG89W10scj1bXTtpZihlPT10KXJldHVybiAwO2lmKCFlLmxlbmd0aHx8IXQubGVuZ3RoKXJldHVybiBNYXRoLm1heChlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCsxO24rKylvW25dPW47Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7clswXT1uKzE7Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspcltzKzFdPU1hdGgubWluKHJbc10rMSxvW3MrMV0rMSxvW3NdK051bWJlcihlW25dIT10W3NdKSk7Zm9yKHM9MDtzPG8ubGVuZ3RoO3MrKylvW3NdPXJbc119cmV0dXJuIHJbdC5sZW5ndGhdfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZT17fSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc1ByZXN0bz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJQcmVzdG9cIil9LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVHJpZGVudD1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJUcmlkZW50XCIpfHxnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJNU0lFXCIpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0VkZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiRWRnZVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNXZWJLaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50SWdub3JlQ2FzZShcIldlYktpdFwiKSYmIWdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzRWRnZSgpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0dlY2tvPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIkdlY2tvXCIpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNXZWJLaXQoKSYmIWdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVHJpZGVudCgpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuaXNFZGdlKCl9LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmdldFZlcnNpb249ZnVuY3Rpb24oKXt2YXIgZT1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCk7aWYoZSl7ZT1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZXh0cmFjdFZlcnNpb25UdXBsZXMoZSk7dmFyIHQsbz1nb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5nZXRFbmdpbmVUdXBsZV8oZSk7aWYobylyZXR1cm5cIkdlY2tvXCI9PW9bMF0/Z29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0VmVyc2lvbkZvcktleV8oZSxcIkZpcmVmb3hcIik6b1sxXTtpZigoZT1lWzBdKSYmKHQ9ZVsyXSkmJih0PS9UcmlkZW50XFwvKFteXFxzO10rKS8uZXhlYyh0KSkpcmV0dXJuIHRbMV19cmV0dXJuXCJcIn0sZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0RW5naW5lVHVwbGVfPWZ1bmN0aW9uKGUpe2lmKCFnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0VkZ2UoKSlyZXR1cm4gZVsxXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG89ZVt0XTtpZihcIkVkZ2VcIj09b1swXSlyZXR1cm4gb319LGdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzVmVyc2lvbk9ySGlnaGVyPWZ1bmN0aW9uKGUpe3JldHVybiAwPD1nb29nLnN0cmluZy5jb21wYXJlVmVyc2lvbnMoZ29vZy5sYWJzLnVzZXJBZ2VudC5lbmdpbmUuZ2V0VmVyc2lvbigpLGUpfSxnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5nZXRWZXJzaW9uRm9yS2V5Xz1mdW5jdGlvbihlLHQpe3JldHVybihlPWdvb2cuYXJyYXkuZmluZChlLChmdW5jdGlvbihlKXtyZXR1cm4gdD09ZVswXX0pKSkmJmVbMV18fFwiXCJ9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm09e30sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0FuZHJvaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiQW5kcm9pZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwb2Q9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBvZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwaG9uZT1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUGhvbmVcIikmJiFnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJpUG9kXCIpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBhZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiaVBhZFwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lvcz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBob25lKCl8fGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJcGFkKCl8fGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJcG9kKCl9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNNYWNpbnRvc2g9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiTWFjaW50b3NoXCIpfSxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzTGludXg9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiTGludXhcIil9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNXaW5kb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudChcIldpbmRvd3NcIil9LGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNDaHJvbWVPUz1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDck9TXCIpfSxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQ2hyb21lY2FzdD1mdW5jdGlvbigpe3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnV0aWwubWF0Y2hVc2VyQWdlbnQoXCJDcktleVwiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0thaU9TPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudElnbm9yZUNhc2UoXCJLYWlPU1wiKX0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0dvMlBob25lPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5tYXRjaFVzZXJBZ2VudElnbm9yZUNhc2UoXCJHQUZQXCIpfSxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmdldFZlcnNpb249ZnVuY3Rpb24oKXt2YXIgZT1nb29nLmxhYnMudXNlckFnZW50LnV0aWwuZ2V0VXNlckFnZW50KCksdD1cIlwiO3JldHVybiBnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzV2luZG93cygpP3Q9KGU9KHQ9L1dpbmRvd3MgKD86TlR8UGhvbmUpIChbMC05Ll0rKS8pLmV4ZWMoZSkpP2VbMV06XCIwLjBcIjpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSW9zKCk/dD0oZT0odD0vKD86aVBob25lfGlQb2R8aVBhZHxDUFUpXFxzK09TXFxzKyhcXFMrKS8pLmV4ZWMoZSkpJiZlWzFdLnJlcGxhY2UoL18vZyxcIi5cIik6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc01hY2ludG9zaCgpP3Q9KGU9KHQ9L01hYyBPUyBYIChbMC05Xy5dKykvKS5leGVjKGUpKT9lWzFdLnJlcGxhY2UoL18vZyxcIi5cIik6XCIxMFwiOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNLYWlPUygpP3Q9KGU9KHQ9Lyg/OkthaU9TKVxcLyhcXFMrKS9pKS5leGVjKGUpKSYmZVsxXTpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQW5kcm9pZCgpP3Q9KGU9KHQ9L0FuZHJvaWRcXHMrKFteXFwpO10rKShcXCl8OykvKS5leGVjKGUpKSYmZVsxXTpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQ2hyb21lT1MoKSYmKHQ9KGU9KHQ9Lyg/OkNyT1NcXHMrKD86aTY4Nnx4ODZfNjQpXFxzKyhbMC05Ll0rKSkvKS5leGVjKGUpKSYmZVsxXSksdHx8XCJcIn0sZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc1ZlcnNpb25PckhpZ2hlcj1mdW5jdGlvbihlKXtyZXR1cm4gMDw9Z29vZy5zdHJpbmcuY29tcGFyZVZlcnNpb25zKGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uZ2V0VmVyc2lvbigpLGUpfSxnb29nLnJlZmxlY3Q9e30sZ29vZy5yZWZsZWN0Lm9iamVjdD1mdW5jdGlvbihlLHQpe3JldHVybiB0fSxnb29nLnJlZmxlY3Qub2JqZWN0UHJvcGVydHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZX0sZ29vZy5yZWZsZWN0LnNpbmtWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5yZWZsZWN0LnNpbmtWYWx1ZVtcIiBcIl0oZSksZX0sZ29vZy5yZWZsZWN0LnNpbmtWYWx1ZVtcIiBcIl09Z29vZy5udWxsRnVuY3Rpb24sZ29vZy5yZWZsZWN0LmNhbkFjY2Vzc1Byb3BlcnR5PWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBnb29nLnJlZmxlY3Quc2lua1ZhbHVlKGVbdF0pLCEwfWNhdGNoKGUpe31yZXR1cm4hMX0sZ29vZy5yZWZsZWN0LmNhY2hlPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiByPXI/cih0KTp0LE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpP2Vbcl06ZVtyXT1vKHQpfSxnb29nLnVzZXJBZ2VudD17fSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSUU9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX0VER0U9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX0dFQ0tPPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9XRUJLSVQ9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX01PQklMRV9XRUJLSVQ9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX09QRVJBPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9BTllfVkVSU0lPTj0hMSxnb29nLnVzZXJBZ2VudC5CUk9XU0VSX0tOT1dOXz1nb29nLnVzZXJBZ2VudC5BU1NVTUVfSUV8fGdvb2cudXNlckFnZW50LkFTU1VNRV9FREdFfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfR0VDS098fGdvb2cudXNlckFnZW50LkFTU1VNRV9NT0JJTEVfV0VCS0lUfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfV0VCS0lUfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfT1BFUkEsZ29vZy51c2VyQWdlbnQuZ2V0VXNlckFnZW50U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQudXRpbC5nZXRVc2VyQWdlbnQoKX0sZ29vZy51c2VyQWdlbnQuZ2V0TmF2aWdhdG9yVHlwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5nbG9iYWwubmF2aWdhdG9yfHxudWxsfSxnb29nLnVzZXJBZ2VudC5nZXROYXZpZ2F0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy51c2VyQWdlbnQuZ2V0TmF2aWdhdG9yVHlwZWQoKX0sZ29vZy51c2VyQWdlbnQuT1BFUkE9Z29vZy51c2VyQWdlbnQuQlJPV1NFUl9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX09QRVJBOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc09wZXJhKCksZ29vZy51c2VyQWdlbnQuSUU9Z29vZy51c2VyQWdlbnQuQlJPV1NFUl9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lFOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0lFKCksZ29vZy51c2VyQWdlbnQuRURHRT1nb29nLnVzZXJBZ2VudC5CUk9XU0VSX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfRURHRTpnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0VkZ2UoKSxnb29nLnVzZXJBZ2VudC5FREdFX09SX0lFPWdvb2cudXNlckFnZW50LkVER0V8fGdvb2cudXNlckFnZW50LklFLGdvb2cudXNlckFnZW50LkdFQ0tPPWdvb2cudXNlckFnZW50LkJST1dTRVJfS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9HRUNLTzpnb29nLmxhYnMudXNlckFnZW50LmVuZ2luZS5pc0dlY2tvKCksZ29vZy51c2VyQWdlbnQuV0VCS0lUPWdvb2cudXNlckFnZW50LkJST1dTRVJfS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9XRUJLSVR8fGdvb2cudXNlckFnZW50LkFTU1VNRV9NT0JJTEVfV0VCS0lUOmdvb2cubGFicy51c2VyQWdlbnQuZW5naW5lLmlzV2ViS2l0KCksZ29vZy51c2VyQWdlbnQuaXNNb2JpbGVfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cudXNlckFnZW50LldFQktJVCYmZ29vZy5sYWJzLnVzZXJBZ2VudC51dGlsLm1hdGNoVXNlckFnZW50KFwiTW9iaWxlXCIpfSxnb29nLnVzZXJBZ2VudC5NT0JJTEU9Z29vZy51c2VyQWdlbnQuQVNTVU1FX01PQklMRV9XRUJLSVR8fGdvb2cudXNlckFnZW50LmlzTW9iaWxlXygpLGdvb2cudXNlckFnZW50LlNBRkFSST1nb29nLnVzZXJBZ2VudC5XRUJLSVQsZ29vZy51c2VyQWdlbnQuZGV0ZXJtaW5lUGxhdGZvcm1fPWZ1bmN0aW9uKCl7dmFyIGU9Z29vZy51c2VyQWdlbnQuZ2V0TmF2aWdhdG9yVHlwZWQoKTtyZXR1cm4gZSYmZS5wbGF0Zm9ybXx8XCJcIn0sZ29vZy51c2VyQWdlbnQuUExBVEZPUk09Z29vZy51c2VyQWdlbnQuZGV0ZXJtaW5lUGxhdGZvcm1fKCksZ29vZy51c2VyQWdlbnQuQVNTVU1FX01BQz0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfV0lORE9XUz0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfTElOVVg9ITEsZ29vZy51c2VyQWdlbnQuQVNTVU1FX1gxMT0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5EUk9JRD0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBIT05FPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9JUEFEPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9JUE9EPSExLGdvb2cudXNlckFnZW50LkFTU1VNRV9LQUlPUz0hMSxnb29nLnVzZXJBZ2VudC5BU1NVTUVfR08yUEhPTkU9ITEsZ29vZy51c2VyQWdlbnQuUExBVEZPUk1fS05PV05fPWdvb2cudXNlckFnZW50LkFTU1VNRV9NQUN8fGdvb2cudXNlckFnZW50LkFTU1VNRV9XSU5ET1dTfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfTElOVVh8fGdvb2cudXNlckFnZW50LkFTU1VNRV9YMTF8fGdvb2cudXNlckFnZW50LkFTU1VNRV9BTkRST0lEfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBIT05FfHxnb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBBRHx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQT0QsZ29vZy51c2VyQWdlbnQuTUFDPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfTUFDOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNNYWNpbnRvc2goKSxnb29nLnVzZXJBZ2VudC5XSU5ET1dTPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfV0lORE9XUzpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzV2luZG93cygpLGdvb2cudXNlckFnZW50LmlzTGVnYWN5TGludXhfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNMaW51eCgpfHxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQ2hyb21lT1MoKX0sZ29vZy51c2VyQWdlbnQuTElOVVg9Z29vZy51c2VyQWdlbnQuUExBVEZPUk1fS05PV05fP2dvb2cudXNlckFnZW50LkFTU1VNRV9MSU5VWDpnb29nLnVzZXJBZ2VudC5pc0xlZ2FjeUxpbnV4XygpLGdvb2cudXNlckFnZW50LmlzWDExXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cudXNlckFnZW50LmdldE5hdmlnYXRvclR5cGVkKCk7cmV0dXJuISFlJiZnb29nLnN0cmluZy5jb250YWlucyhlLmFwcFZlcnNpb258fFwiXCIsXCJYMTFcIil9LGdvb2cudXNlckFnZW50LlgxMT1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX1gxMTpnb29nLnVzZXJBZ2VudC5pc1gxMV8oKSxnb29nLnVzZXJBZ2VudC5BTkRST0lEPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5EUk9JRDpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzQW5kcm9pZCgpLGdvb2cudXNlckFnZW50LklQSE9ORT1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQSE9ORTpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBob25lKCksZ29vZy51c2VyQWdlbnQuSVBBRD1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQQUQ6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQoKSxnb29nLnVzZXJBZ2VudC5JUE9EPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfSVBPRDpnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBvZCgpLGdvb2cudXNlckFnZW50LklPUz1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQSE9ORXx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0lQQUR8fGdvb2cudXNlckFnZW50LkFTU1VNRV9JUE9EOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNJb3MoKSxnb29nLnVzZXJBZ2VudC5LQUlPUz1nb29nLnVzZXJBZ2VudC5QTEFURk9STV9LTk9XTl8/Z29vZy51c2VyQWdlbnQuQVNTVU1FX0tBSU9TOmdvb2cubGFicy51c2VyQWdlbnQucGxhdGZvcm0uaXNLYWlPUygpLGdvb2cudXNlckFnZW50LkdPMlBIT05FPWdvb2cudXNlckFnZW50LlBMQVRGT1JNX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5BU1NVTUVfR08yUEhPTkU6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0dvMlBob25lKCksZ29vZy51c2VyQWdlbnQuZGV0ZXJtaW5lVmVyc2lvbl89ZnVuY3Rpb24oKXt2YXIgZT1cIlwiLHQ9Z29vZy51c2VyQWdlbnQuZ2V0VmVyc2lvblJlZ2V4UmVzdWx0XygpO3JldHVybiB0JiYoZT10P3RbMV06XCJcIiksZ29vZy51c2VyQWdlbnQuSUUmJm51bGwhPSh0PWdvb2cudXNlckFnZW50LmdldERvY3VtZW50TW9kZV8oKSkmJnQ+cGFyc2VGbG9hdChlKT9TdHJpbmcodCk6ZX0sZ29vZy51c2VyQWdlbnQuZ2V0VmVyc2lvblJlZ2V4UmVzdWx0Xz1mdW5jdGlvbigpe3ZhciBlPWdvb2cudXNlckFnZW50LmdldFVzZXJBZ2VudFN0cmluZygpO3JldHVybiBnb29nLnVzZXJBZ2VudC5HRUNLTz8vcnY6KFteXFwpO10rKShcXCl8OykvLmV4ZWMoZSk6Z29vZy51c2VyQWdlbnQuRURHRT8vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGUpOmdvb2cudXNlckFnZW50LklFPy9cXGIoPzpNU0lFfHJ2KVs6IF0oW15cXCk7XSspKFxcKXw7KS8uZXhlYyhlKTpnb29nLnVzZXJBZ2VudC5XRUJLSVQ/L1dlYktpdFxcLyhcXFMrKS8uZXhlYyhlKTpnb29nLnVzZXJBZ2VudC5PUEVSQT8vKD86VmVyc2lvbilbIFxcL10/KFxcUyspLy5leGVjKGUpOnZvaWQgMH0sZ29vZy51c2VyQWdlbnQuZ2V0RG9jdW1lbnRNb2RlXz1mdW5jdGlvbigpe3ZhciBlPWdvb2cuZ2xvYmFsLmRvY3VtZW50O3JldHVybiBlP2UuZG9jdW1lbnRNb2RlOnZvaWQgMH0sZ29vZy51c2VyQWdlbnQuVkVSU0lPTj1nb29nLnVzZXJBZ2VudC5kZXRlcm1pbmVWZXJzaW9uXygpLGdvb2cudXNlckFnZW50LmNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZ29vZy5zdHJpbmcuY29tcGFyZVZlcnNpb25zKGUsdCl9LGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyQ2FjaGVfPXt9LGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnVzZXJBZ2VudC5BU1NVTUVfQU5ZX1ZFUlNJT058fGdvb2cucmVmbGVjdC5jYWNoZShnb29nLnVzZXJBZ2VudC5pc1ZlcnNpb25PckhpZ2hlckNhY2hlXyxlLChmdW5jdGlvbigpe3JldHVybiAwPD1nb29nLnN0cmluZy5jb21wYXJlVmVyc2lvbnMoZ29vZy51c2VyQWdlbnQuVkVSU0lPTixlKX0pKX0sZ29vZy51c2VyQWdlbnQuaXNWZXJzaW9uPWdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyLGdvb2cudXNlckFnZW50LmlzRG9jdW1lbnRNb2RlT3JIaWdoZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlcihnb29nLnVzZXJBZ2VudC5ET0NVTUVOVF9NT0RFKT49ZX0sZ29vZy51c2VyQWdlbnQuaXNEb2N1bWVudE1vZGU9Z29vZy51c2VyQWdlbnQuaXNEb2N1bWVudE1vZGVPckhpZ2hlcixnb29nLnVzZXJBZ2VudC5ET0NVTUVOVF9NT0RFPWZ1bmN0aW9uKCl7aWYoZ29vZy5nbG9iYWwuZG9jdW1lbnQmJmdvb2cudXNlckFnZW50LklFKXJldHVybiBnb29nLnVzZXJBZ2VudC5nZXREb2N1bWVudE1vZGVfKCl9KCksZ29vZy51c2VyQWdlbnQucHJvZHVjdD17fSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9GSVJFRk9YPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQSE9ORT0hMSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9JUEFEPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0FORFJPSUQ9ITEsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfQ0hST01FPSExLGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSST0hMSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fPWdvb2cudXNlckFnZW50LkFTU1VNRV9JRXx8Z29vZy51c2VyQWdlbnQuQVNTVU1FX0VER0V8fGdvb2cudXNlckFnZW50LkFTU1VNRV9PUEVSQXx8Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfRklSRUZPWHx8Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfSVBIT05FfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9JUEFEfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9BTkRST0lEfHxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9DSFJPTUV8fGdvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSSSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0Lk9QRVJBPWdvb2cudXNlckFnZW50Lk9QRVJBLGdvb2cudXNlckFnZW50LnByb2R1Y3QuSUU9Z29vZy51c2VyQWdlbnQuSUUsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5FREdFPWdvb2cudXNlckFnZW50LkVER0UsZ29vZy51c2VyQWdlbnQucHJvZHVjdC5GSVJFRk9YPWdvb2cudXNlckFnZW50LnByb2R1Y3QuUFJPRFVDVF9LTk9XTl8/Z29vZy51c2VyQWdlbnQucHJvZHVjdC5BU1NVTUVfRklSRUZPWDpnb29nLmxhYnMudXNlckFnZW50LmJyb3dzZXIuaXNGaXJlZm94KCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5pc0lwaG9uZU9ySXBvZF89ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwaG9uZSgpfHxnb29nLmxhYnMudXNlckFnZW50LnBsYXRmb3JtLmlzSXBvZCgpfSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LklQSE9ORT1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQSE9ORTpnb29nLnVzZXJBZ2VudC5wcm9kdWN0LmlzSXBob25lT3JJcG9kXygpLGdvb2cudXNlckFnZW50LnByb2R1Y3QuSVBBRD1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX0lQQUQ6Z29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lwYWQoKSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFORFJPSUQ9Z29vZy51c2VyQWdlbnQucHJvZHVjdC5QUk9EVUNUX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9BTkRST0lEOmdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc0FuZHJvaWRCcm93c2VyKCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5DSFJPTUU9Z29vZy51c2VyQWdlbnQucHJvZHVjdC5QUk9EVUNUX0tOT1dOXz9nb29nLnVzZXJBZ2VudC5wcm9kdWN0LkFTU1VNRV9DSFJPTUU6Z29vZy5sYWJzLnVzZXJBZ2VudC5icm93c2VyLmlzQ2hyb21lKCksZ29vZy51c2VyQWdlbnQucHJvZHVjdC5pc1NhZmFyaURlc2t0b3BfPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cubGFicy51c2VyQWdlbnQuYnJvd3Nlci5pc1NhZmFyaSgpJiYhZ29vZy5sYWJzLnVzZXJBZ2VudC5wbGF0Zm9ybS5pc0lvcygpfSxnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSST1nb29nLnVzZXJBZ2VudC5wcm9kdWN0LlBST0RVQ1RfS05PV05fP2dvb2cudXNlckFnZW50LnByb2R1Y3QuQVNTVU1FX1NBRkFSSTpnb29nLnVzZXJBZ2VudC5wcm9kdWN0LmlzU2FmYXJpRGVza3RvcF8oKSxnb29nLmNyeXB0LmJhc2U2ND17fSxnb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl89XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiLGdvb2cuY3J5cHQuYmFzZTY0LkVOQ09ERURfVkFMUz1nb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl8rXCIrLz1cIixnb29nLmNyeXB0LmJhc2U2NC5FTkNPREVEX1ZBTFNfV0VCU0FGRT1nb29nLmNyeXB0LmJhc2U2NC5ERUZBVUxUX0FMUEhBQkVUX0NPTU1PTl8rXCItXy5cIixnb29nLmNyeXB0LmJhc2U2NC5BbHBoYWJldD17REVGQVVMVDowLE5PX1BBRERJTkc6MSxXRUJTQUZFOjIsV0VCU0FGRV9ET1RfUEFERElORzozLFdFQlNBRkVfTk9fUEFERElORzo0fSxnb29nLmNyeXB0LmJhc2U2NC5wYWRkaW5nQ2hhcnNfPVwiPS5cIixnb29nLmNyeXB0LmJhc2U2NC5pc1BhZGRpbmdfPWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLnN0cmluZy5jb250YWlucyhnb29nLmNyeXB0LmJhc2U2NC5wYWRkaW5nQ2hhcnNfLGUpfSxnb29nLmNyeXB0LmJhc2U2NC5ieXRlVG9DaGFyTWFwc189e307Z29vZy5jcnlwdC5iYXNlNjQuY2hhclRvQnl0ZU1hcF89bnVsbCxnb29nLmNyeXB0LmJhc2U2NC5BU1NVTUVfTkFUSVZFX1NVUFBPUlRfPWdvb2cudXNlckFnZW50LkdFQ0tPfHxnb29nLnVzZXJBZ2VudC5XRUJLSVQmJiFnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSSXx8Z29vZy51c2VyQWdlbnQuT1BFUkEsZ29vZy5jcnlwdC5iYXNlNjQuSEFTX05BVElWRV9FTkNPREVfPWdvb2cuY3J5cHQuYmFzZTY0LkFTU1VNRV9OQVRJVkVfU1VQUE9SVF98fFwiZnVuY3Rpb25cIj09dHlwZW9mIGdvb2cuZ2xvYmFsLmJ0b2EsZ29vZy5jcnlwdC5iYXNlNjQuSEFTX05BVElWRV9ERUNPREVfPWdvb2cuY3J5cHQuYmFzZTY0LkFTU1VNRV9OQVRJVkVfU1VQUE9SVF98fCFnb29nLnVzZXJBZ2VudC5wcm9kdWN0LlNBRkFSSSYmIWdvb2cudXNlckFnZW50LklFJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBnb29nLmdsb2JhbC5hdG9iLGdvb2cuY3J5cHQuYmFzZTY0LmVuY29kZUJ5dGVBcnJheT1mdW5jdGlvbihlLHQpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZ29vZy5pc0FycmF5TGlrZShlKSxcImVuY29kZUJ5dGVBcnJheSB0YWtlcyBhbiBhcnJheSBhcyBhIHBhcmFtZXRlclwiKSx2b2lkIDA9PT10JiYodD1nb29nLmNyeXB0LmJhc2U2NC5BbHBoYWJldC5ERUZBVUxUKSxnb29nLmNyeXB0LmJhc2U2NC5pbml0XygpLHQ9Z29vZy5jcnlwdC5iYXNlNjQuYnl0ZVRvQ2hhck1hcHNfW3RdO2Zvcih2YXIgbz1bXSxyPTA7cjxlLmxlbmd0aDtyKz0zKXt2YXIgbj1lW3JdLHM9cisxPGUubGVuZ3RoLGk9cz9lW3IrMV06MCxhPXIrMjxlLmxlbmd0aCxnPWE/ZVtyKzJdOjAsbD1uPj4yO249KDMmbik8PDR8aT4+NCxpPSgxNSZpKTw8MnxnPj42LGcmPTYzLGF8fChnPTY0LHN8fChpPTY0KSksby5wdXNoKHRbbF0sdFtuXSx0W2ldfHxcIlwiLHRbZ118fFwiXCIpfXJldHVybiBvLmpvaW4oXCJcIil9LGdvb2cuY3J5cHQuYmFzZTY0LmVuY29kZVN0cmluZz1mdW5jdGlvbihlLHQpe3JldHVybiBnb29nLmNyeXB0LmJhc2U2NC5IQVNfTkFUSVZFX0VOQ09ERV8mJiF0P2dvb2cuZ2xvYmFsLmJ0b2EoZSk6Z29vZy5jcnlwdC5iYXNlNjQuZW5jb2RlQnl0ZUFycmF5KGdvb2cuY3J5cHQuc3RyaW5nVG9CeXRlQXJyYXkoZSksdCl9LGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZz1mdW5jdGlvbihlLHQpe2lmKGdvb2cuY3J5cHQuYmFzZTY0LkhBU19OQVRJVkVfREVDT0RFXyYmIXQpcmV0dXJuIGdvb2cuZ2xvYmFsLmF0b2IoZSk7dmFyIG89XCJcIjtyZXR1cm4gZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nSW50ZXJuYWxfKGUsKGZ1bmN0aW9uKGUpe28rPVN0cmluZy5mcm9tQ2hhckNvZGUoZSl9KSksb30sZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nVG9CeXRlQXJyYXk9ZnVuY3Rpb24oZSx0KXt2YXIgbz1bXTtyZXR1cm4gZ29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nSW50ZXJuYWxfKGUsKGZ1bmN0aW9uKGUpe28ucHVzaChlKX0pKSxvfSxnb29nLmNyeXB0LmJhc2U2NC5kZWNvZGVTdHJpbmdUb1VpbnQ4QXJyYXk9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydCghZ29vZy51c2VyQWdlbnQuSUV8fGdvb2cudXNlckFnZW50LmlzVmVyc2lvbk9ySGlnaGVyKFwiMTBcIiksXCJCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgdHlwZWQgYXJyYXlzXCIpO3ZhciB0PWUubGVuZ3RoLG89Myp0LzQ7byUzP289TWF0aC5mbG9vcihvKTpnb29nLmNyeXB0LmJhc2U2NC5pc1BhZGRpbmdfKGVbdC0xXSkmJihvPWdvb2cuY3J5cHQuYmFzZTY0LmlzUGFkZGluZ18oZVt0LTJdKT9vLTI6by0xKTt2YXIgcj1uZXcgVWludDhBcnJheShvKSxuPTA7cmV0dXJuIGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ0ludGVybmFsXyhlLChmdW5jdGlvbihlKXtyW24rK109ZX0pKSxyLnN1YmFycmF5KDAsbil9LGdvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ0ludGVybmFsXz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8odCl7Zm9yKDtyPGUubGVuZ3RoOyl7dmFyIG89ZS5jaGFyQXQocisrKSxuPWdvb2cuY3J5cHQuYmFzZTY0LmNoYXJUb0J5dGVNYXBfW29dO2lmKG51bGwhPW4pcmV0dXJuIG47aWYoIWdvb2cuc3RyaW5nLmlzRW1wdHlPcldoaXRlc3BhY2UobykpdGhyb3cgRXJyb3IoXCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiBcIitvKX1yZXR1cm4gdH1nb29nLmNyeXB0LmJhc2U2NC5pbml0XygpO2Zvcih2YXIgcj0wOzspe3ZhciBuPW8oLTEpLHM9bygwKSxpPW8oNjQpLGE9byg2NCk7aWYoNjQ9PT1hJiYtMT09PW4pYnJlYWs7dChuPDwyfHM+PjQpLDY0IT1pJiYodChzPDw0JjI0MHxpPj4yKSw2NCE9YSYmdChpPDw2JjE5MnxhKSl9fSxnb29nLmNyeXB0LmJhc2U2NC5pbml0Xz1mdW5jdGlvbigpe2lmKCFnb29nLmNyeXB0LmJhc2U2NC5jaGFyVG9CeXRlTWFwXyl7Z29vZy5jcnlwdC5iYXNlNjQuY2hhclRvQnl0ZU1hcF89e307Zm9yKHZhciBlPWdvb2cuY3J5cHQuYmFzZTY0LkRFRkFVTFRfQUxQSEFCRVRfQ09NTU9OXy5zcGxpdChcIlwiKSx0PVtcIisvPVwiLFwiKy9cIixcIi1fPVwiLFwiLV8uXCIsXCItX1wiXSxvPTA7NT5vO28rKyl7dmFyIHI9ZS5jb25jYXQodFtvXS5zcGxpdChcIlwiKSk7Z29vZy5jcnlwdC5iYXNlNjQuYnl0ZVRvQ2hhck1hcHNfW29dPXI7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBzPXJbbl0saT1nb29nLmNyeXB0LmJhc2U2NC5jaGFyVG9CeXRlTWFwX1tzXTt2b2lkIDA9PT1pP2dvb2cuY3J5cHQuYmFzZTY0LmNoYXJUb0J5dGVNYXBfW3NdPW46Z29vZy5hc3NlcnRzLmFzc2VydChpPT09bil9fX19LGpzcGIudXRpbHM9e30sanNwYi51dGlscy5zcGxpdDY0TG93PTAsanNwYi51dGlscy5zcGxpdDY0SGlnaD0wLGpzcGIudXRpbHMuc3BsaXRVaW50NjQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZT4+PjA7ZT1NYXRoLmZsb29yKChlLXQpL2pzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMik+Pj4wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz10LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9ZX0sanNwYi51dGlscy5zcGxpdEludDY0PWZ1bmN0aW9uKGUpe3ZhciB0PTA+ZSxvPShlPU1hdGguYWJzKGUpKT4+PjA7ZT1NYXRoLmZsb29yKChlLW8pL2pzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksZT4+Pj0wLHQmJihlPX5lPj4+MCw0Mjk0OTY3Mjk1PChvPTErKH5vPj4+MCkpJiYobz0wLDQyOTQ5NjcyOTU8KytlJiYoZT0wKSkpLGpzcGIudXRpbHMuc3BsaXQ2NExvdz1vLGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9ZX0sanNwYi51dGlscy5zcGxpdFppZ3phZzY0PWZ1bmN0aW9uKGUpe3ZhciB0PTA+ZTtlPTIqTWF0aC5hYnMoZSksanNwYi51dGlscy5zcGxpdFVpbnQ2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbz1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3QmJigwPT1lPzA9PW8/bz1lPTQyOTQ5NjcyOTU6KG8tLSxlPTQyOTQ5NjcyOTUpOmUtLSksanNwYi51dGlscy5zcGxpdDY0TG93PWUsanNwYi51dGlscy5zcGxpdDY0SGlnaD1vfSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQzMj1mdW5jdGlvbihlKXt2YXIgdD0wPmU/MTowO2lmKDA9PT0oZT10Py1lOmUpKTA8MS9lPyhqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PTApOihqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PTIxNDc0ODM2NDgpO2Vsc2UgaWYoaXNOYU4oZSkpanNwYi51dGlscy5zcGxpdDY0SGlnaD0wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz0yMTQ3NDgzNjQ3O2Vsc2UgaWYoZT5qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDMyX01BWClqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PSh0PDwzMXwyMTM5MDk1MDQwKT4+PjA7ZWxzZSBpZihlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUlOKWU9TWF0aC5yb3VuZChlL01hdGgucG93KDIsLTE0OSkpLGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9MCxqc3BiLnV0aWxzLnNwbGl0NjRMb3c9KHQ8PDMxfGUpPj4+MDtlbHNle3ZhciBvPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpO2UqPU1hdGgucG93KDIsLW8pLDE2Nzc3MjE2PD0oZT1NYXRoLnJvdW5kKGUqanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIzKSkmJisrbyxqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPTAsanNwYi51dGlscy5zcGxpdDY0TG93PSh0PDwzMXxvKzEyNzw8MjN8ODM4ODYwNyZlKT4+PjB9fSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQ2ND1mdW5jdGlvbihlKXt2YXIgdD0wPmU/MTowO2lmKDA9PT0oZT10Py1lOmUpKWpzcGIudXRpbHMuc3BsaXQ2NEhpZ2g9MDwxL2U/MDoyMTQ3NDgzNjQ4LGpzcGIudXRpbHMuc3BsaXQ2NExvdz0wO2Vsc2UgaWYoaXNOYU4oZSkpanNwYi51dGlscy5zcGxpdDY0SGlnaD0yMTQ3NDgzNjQ3LGpzcGIudXRpbHMuc3BsaXQ2NExvdz00Mjk0OTY3Mjk1O2Vsc2UgaWYoZT5qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X01BWClqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPSh0PDwzMXwyMTQ2NDM1MDcyKT4+PjAsanNwYi51dGlscy5zcGxpdDY0TG93PTA7ZWxzZSBpZihlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUlOKXt2YXIgbz1lL01hdGgucG93KDIsLTEwNzQpO2U9by9qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIsanNwYi51dGlscy5zcGxpdDY0SGlnaD0odDw8MzF8ZSk+Pj4wLGpzcGIudXRpbHMuc3BsaXQ2NExvdz1vPj4+MH1lbHNle3ZhciByPTA7aWYoMjw9KG89ZSkpZm9yKDsyPD1vJiYxMDIzPnI7KXIrKyxvLz0yO2Vsc2UgZm9yKDsxPm8mJi0xMDIyPHI7KW8qPTIsci0tO2U9KG89ZSpNYXRoLnBvdygyLC1yKSkqanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzIwJjEwNDg1NzUsbz1vKmpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT181Mj4+PjAsanNwYi51dGlscy5zcGxpdDY0SGlnaD0odDw8MzF8cisxMDIzPDwyMHxlKT4+PjAsanNwYi51dGlscy5zcGxpdDY0TG93PW99fSxqc3BiLnV0aWxzLnNwbGl0SGFzaDY0PWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2hhckNvZGVBdCgwKSxvPWUuY2hhckNvZGVBdCgxKSxyPWUuY2hhckNvZGVBdCgyKSxuPWUuY2hhckNvZGVBdCgzKSxzPWUuY2hhckNvZGVBdCg0KSxpPWUuY2hhckNvZGVBdCg1KSxhPWUuY2hhckNvZGVBdCg2KTtlPWUuY2hhckNvZGVBdCg3KSxqc3BiLnV0aWxzLnNwbGl0NjRMb3c9dCsobzw8OCkrKHI8PDE2KSsobjw8MjQpPj4+MCxqc3BiLnV0aWxzLnNwbGl0NjRIaWdoPXMrKGk8PDgpKyhhPDwxNikrKGU8PDI0KT4+PjB9LGpzcGIudXRpbHMuam9pblVpbnQ2ND1mdW5jdGlvbihlLHQpe3JldHVybiB0KmpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMisoZT4+PjApfSxqc3BiLnV0aWxzLmpvaW5JbnQ2ND1mdW5jdGlvbihlLHQpe3ZhciBvPTIxNDc0ODM2NDgmdDtyZXR1cm4gbyYmKHQ9fnQ+Pj4wLDA9PShlPTErfmU+Pj4wKSYmKHQ9dCsxPj4+MCkpLGU9anNwYi51dGlscy5qb2luVWludDY0KGUsdCksbz8tZTplfSxqc3BiLnV0aWxzLnRvWmlnemFnNjQ9ZnVuY3Rpb24oZSx0LG8pe3ZhciByPXQ+PjMxO3JldHVybiBvKGU8PDFeciwodDw8MXxlPj4+MzEpXnIpfSxqc3BiLnV0aWxzLmpvaW5aaWd6YWc2ND1mdW5jdGlvbihlLHQpe3JldHVybiBqc3BiLnV0aWxzLmZyb21aaWd6YWc2NChlLHQsanNwYi51dGlscy5qb2luSW50NjQpfSxqc3BiLnV0aWxzLmZyb21aaWd6YWc2ND1mdW5jdGlvbihlLHQsbyl7dmFyIHI9LSgxJmUpO3JldHVybiBvKChlPj4+MXx0PDwzMSlecix0Pj4+MV5yKX0sanNwYi51dGlscy5qb2luRmxvYXQzMj1mdW5jdGlvbihlLHQpe3Q9MiooZT4+MzEpKzE7dmFyIG89ZT4+PjIzJjI1NTtyZXR1cm4gZSY9ODM4ODYwNywyNTU9PW8/ZT9OYU46MS8wKnQ6MD09bz90Kk1hdGgucG93KDIsLTE0OSkqZTp0Kk1hdGgucG93KDIsby0xNTApKihlK01hdGgucG93KDIsMjMpKX0sanNwYi51dGlscy5qb2luRmxvYXQ2ND1mdW5jdGlvbihlLHQpe3ZhciBvPTIqKHQ+PjMxKSsxLHI9dD4+PjIwJjIwNDc7cmV0dXJuIGU9anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKigxMDQ4NTc1JnQpK2UsMjA0Nz09cj9lP05hTjoxLzAqbzowPT1yP28qTWF0aC5wb3coMiwtMTA3NCkqZTpvKk1hdGgucG93KDIsci0xMDc1KSooZStqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNTIpfSxqc3BiLnV0aWxzLmpvaW5IYXNoNjQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlPj4+MCYyNTUsZT4+PjgmMjU1LGU+Pj4xNiYyNTUsZT4+PjI0JjI1NSx0Pj4+MCYyNTUsdD4+PjgmMjU1LHQ+Pj4xNiYyNTUsdD4+PjI0JjI1NSl9LGpzcGIudXRpbHMuRElHSVRTPVwiMDEyMzQ1Njc4OWFiY2RlZlwiLnNwbGl0KFwiXCIpLGpzcGIudXRpbHMuWkVST19DSEFSX0NPREVfPTQ4LGpzcGIudXRpbHMuQV9DSEFSX0NPREVfPTk3LGpzcGIudXRpbHMuam9pblVuc2lnbmVkRGVjaW1hbFN0cmluZz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZT1lP1N0cmluZyhlKTpcIlwiLHQ/XCIwMDAwMDAwXCIuc2xpY2UoZS5sZW5ndGgpK2U6ZX1pZigyMDk3MTUxPj10KXJldHVyblwiXCIranNwYi51dGlscy5qb2luVWludDY0KGUsdCk7dmFyIHI9KGU+Pj4yNHx0PDw4KT4+PjAmMTY3NzcyMTU7cmV0dXJuIGU9KDE2Nzc3MjE1JmUpKzY3NzcyMTYqcis2NzEwNjU2Kih0PXQ+PjE2JjY1NTM1KSxyKz04MTQ3NDk3KnQsdCo9MiwxZTc8PWUmJihyKz1NYXRoLmZsb29yKGUvMWU3KSxlJT0xZTcpLDFlNzw9ciYmKHQrPU1hdGguZmxvb3Ioci8xZTcpLHIlPTFlNyksbyh0LDApK28ocix0KStvKGUsMSl9LGpzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmc9ZnVuY3Rpb24oZSx0KXt2YXIgbz0yMTQ3NDgzNjQ4JnQ7cmV0dXJuIG8mJih0PX50KygwPT0oZT0xK35lPj4+MCk/MTowKT4+PjApLGU9anNwYi51dGlscy5qb2luVW5zaWduZWREZWNpbWFsU3RyaW5nKGUsdCksbz9cIi1cIitlOmV9LGpzcGIudXRpbHMuaGFzaDY0VG9EZWNpbWFsU3RyaW5nPWZ1bmN0aW9uKGUsdCl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbz1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3JldHVybiB0P2pzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmcoZSxvKTpqc3BiLnV0aWxzLmpvaW5VbnNpZ25lZERlY2ltYWxTdHJpbmcoZSxvKX0sanNwYi51dGlscy5oYXNoNjRBcnJheVRvRGVjaW1hbFN0cmluZ3M9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89QXJyYXkoZS5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoO3IrKylvW3JdPWpzcGIudXRpbHMuaGFzaDY0VG9EZWNpbWFsU3RyaW5nKGVbcl0sdCk7cmV0dXJuIG99LGpzcGIudXRpbHMuZGVjaW1hbFN0cmluZ1RvSGFzaDY0PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSx0KXtmb3IodmFyIG89MDs4Pm8mJigxIT09ZXx8MDx0KTtvKyspdD1lKnJbb10rdCxyW29dPTI1NSZ0LHQ+Pj49OH1nb29nLmFzc2VydHMuYXNzZXJ0KDA8ZS5sZW5ndGgpO3ZhciBvPSExO1wiLVwiPT09ZVswXSYmKG89ITAsZT1lLnNsaWNlKDEpKTtmb3IodmFyIHI9WzAsMCwwLDAsMCwwLDAsMF0sbj0wO248ZS5sZW5ndGg7bisrKXQoMTAsZS5jaGFyQ29kZUF0KG4pLWpzcGIudXRpbHMuWkVST19DSEFSX0NPREVfKTtyZXR1cm4gbyYmKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7OD5lO2UrKylyW2VdPTI1NSZ+cltlXX0oKSx0KDEsMSkpLGdvb2cuY3J5cHQuYnl0ZUFycmF5VG9TdHJpbmcocil9LGpzcGIudXRpbHMuc3BsaXREZWNpbWFsU3RyaW5nPWZ1bmN0aW9uKGUpe2pzcGIudXRpbHMuc3BsaXRIYXNoNjQoanNwYi51dGlscy5kZWNpbWFsU3RyaW5nVG9IYXNoNjQoZSkpfSxqc3BiLnV0aWxzLnRvSGV4RGlnaXRfPWZ1bmN0aW9uKGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDEwPmU/anNwYi51dGlscy5aRVJPX0NIQVJfQ09ERV8rZTpqc3BiLnV0aWxzLkFfQ0hBUl9DT0RFXy0xMCtlKX0sanNwYi51dGlscy5mcm9tSGV4Q2hhckNvZGVfPWZ1bmN0aW9uKGUpe3JldHVybiBlPj1qc3BiLnV0aWxzLkFfQ0hBUl9DT0RFXz9lLWpzcGIudXRpbHMuQV9DSEFSX0NPREVfKzEwOmUtanNwYi51dGlscy5aRVJPX0NIQVJfQ09ERV99LGpzcGIudXRpbHMuaGFzaDY0VG9IZXhTdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9QXJyYXkoMTgpO3RbMF09XCIwXCIsdFsxXT1cInhcIjtmb3IodmFyIG89MDs4Pm87bysrKXt2YXIgcj1lLmNoYXJDb2RlQXQoNy1vKTt0WzIqbysyXT1qc3BiLnV0aWxzLnRvSGV4RGlnaXRfKHI+PjQpLHRbMipvKzNdPWpzcGIudXRpbHMudG9IZXhEaWdpdF8oMTUmcil9cmV0dXJuIHQuam9pbihcIlwiKX0sanNwYi51dGlscy5oZXhTdHJpbmdUb0hhc2g2ND1mdW5jdGlvbihlKXtlPWUudG9Mb3dlckNhc2UoKSxnb29nLmFzc2VydHMuYXNzZXJ0KDE4PT1lLmxlbmd0aCksZ29vZy5hc3NlcnRzLmFzc2VydChcIjBcIj09ZVswXSksZ29vZy5hc3NlcnRzLmFzc2VydChcInhcIj09ZVsxXSk7Zm9yKHZhciB0PVwiXCIsbz0wOzg+bztvKyspe3ZhciByPWpzcGIudXRpbHMuZnJvbUhleENoYXJDb2RlXyhlLmNoYXJDb2RlQXQoMipvKzIpKSxuPWpzcGIudXRpbHMuZnJvbUhleENoYXJDb2RlXyhlLmNoYXJDb2RlQXQoMipvKzMpKTt0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTYqcituKSt0fXJldHVybiB0fSxqc3BiLnV0aWxzLmhhc2g2NFRvTnVtYmVyPWZ1bmN0aW9uKGUsdCl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSxlPWpzcGIudXRpbHMuc3BsaXQ2NExvdzt2YXIgbz1qc3BiLnV0aWxzLnNwbGl0NjRIaWdoO3JldHVybiB0P2pzcGIudXRpbHMuam9pbkludDY0KGUsbyk6anNwYi51dGlscy5qb2luVWludDY0KGUsbyl9LGpzcGIudXRpbHMubnVtYmVyVG9IYXNoNjQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSxqc3BiLnV0aWxzLmpvaW5IYXNoNjQoanNwYi51dGlscy5zcGxpdDY0TG93LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLnV0aWxzLmNvdW50VmFyaW50cz1mdW5jdGlvbihlLHQsbyl7Zm9yKHZhciByPTAsbj10O248bztuKyspcis9ZVtuXT4+NztyZXR1cm4gby10LXJ9LGpzcGIudXRpbHMuY291bnRWYXJpbnRGaWVsZHM9ZnVuY3Rpb24oZSx0LG8scil7dmFyIG49MDtpZigxMjg+KHI9OCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCkpZm9yKDt0PG8mJmVbdCsrXT09cjspZm9yKG4rKzs7KXt2YXIgcz1lW3QrK107aWYoMD09KDEyOCZzKSlicmVha31lbHNlIGZvcig7dDxvOyl7Zm9yKHM9cjsxMjg8czspe2lmKGVbdF0hPSgxMjcmc3wxMjgpKXJldHVybiBuO3QrKyxzPj49N31pZihlW3QrK10hPXMpYnJlYWs7Zm9yKG4rKzswIT0oMTI4JihzPWVbdCsrXSkpOyk7fXJldHVybiBufSxqc3BiLnV0aWxzLmNvdW50Rml4ZWRGaWVsZHNfPWZ1bmN0aW9uKGUsdCxvLHIsbil7dmFyIHM9MDtpZigxMjg+cilmb3IoO3Q8byYmZVt0KytdPT1yOylzKyssdCs9bjtlbHNlIGZvcig7dDxvOyl7Zm9yKHZhciBpPXI7MTI4PGk7KXtpZihlW3QrK10hPSgxMjcmaXwxMjgpKXJldHVybiBzO2k+Pj03fWlmKGVbdCsrXSE9aSlicmVhaztzKyssdCs9bn1yZXR1cm4gc30sanNwYi51dGlscy5jb3VudEZpeGVkMzJGaWVsZHM9ZnVuY3Rpb24oZSx0LG8scil7cmV0dXJuIGpzcGIudXRpbHMuY291bnRGaXhlZEZpZWxkc18oZSx0LG8sOCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIsNCl9LGpzcGIudXRpbHMuY291bnRGaXhlZDY0RmllbGRzPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiBqc3BiLnV0aWxzLmNvdW50Rml4ZWRGaWVsZHNfKGUsdCxvLDgqcitqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0LDgpfSxqc3BiLnV0aWxzLmNvdW50RGVsaW1pdGVkRmllbGRzPWZ1bmN0aW9uKGUsdCxvLHIpe3ZhciBuPTA7Zm9yKHI9OCpyK2pzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRDt0PG87KXtmb3IodmFyIHM9cjsxMjg8czspe2lmKGVbdCsrXSE9KDEyNyZzfDEyOCkpcmV0dXJuIG47cz4+PTd9aWYoZVt0KytdIT1zKWJyZWFrO24rKztmb3IodmFyIGk9MCxhPTE7aSs9KDEyNyYocz1lW3QrK10pKSphLGEqPTEyOCwwIT0oMTI4JnMpOyk7dCs9aX1yZXR1cm4gbn0sanNwYi51dGlscy5kZWJ1Z0J5dGVzVG9UZXh0Rm9ybWF0PWZ1bmN0aW9uKGUpe3ZhciB0PSdcIic7aWYoZSl7ZT1qc3BiLnV0aWxzLmJ5dGVTb3VyY2VUb1VpbnQ4QXJyYXkoZSk7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspdCs9XCJcXFxceFwiLDE2PmVbb10mJih0Kz1cIjBcIiksdCs9ZVtvXS50b1N0cmluZygxNil9cmV0dXJuIHQrJ1wiJ30sanNwYi51dGlscy5kZWJ1Z1NjYWxhclRvVGV4dEZvcm1hdD1mdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9nb29nLnN0cmluZy5xdW90ZShlKTplLnRvU3RyaW5nKCl9LGpzcGIudXRpbHMuc3RyaW5nVG9CeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKSxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciByPWUuY2hhckNvZGVBdChvKTtpZigyNTU8cil0aHJvdyBFcnJvcihcIkNvbnZlcnNpb24gZXJyb3I6IHN0cmluZyBjb250YWlucyBjb2RlcG9pbnQgb3V0c2lkZSBvZiBieXRlIHJhbmdlXCIpO3Rbb109cn1yZXR1cm4gdH0sanNwYi51dGlscy5ieXRlU291cmNlVG9VaW50OEFycmF5PWZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9lOmUuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcnx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIEJ1ZmZlciYmZS5jb25zdHJ1Y3Rvcj09PUJ1ZmZlcnx8ZS5jb25zdHJ1Y3Rvcj09PUFycmF5P25ldyBVaW50OEFycmF5KGUpOmUuY29uc3RydWN0b3I9PT1TdHJpbmc/Z29vZy5jcnlwdC5iYXNlNjQuZGVjb2RlU3RyaW5nVG9VaW50OEFycmF5KGUpOihnb29nLmFzc2VydHMuZmFpbChcIlR5cGUgbm90IGNvbnZlcnRpYmxlIHRvIFVpbnQ4QXJyYXkuXCIpLG5ldyBVaW50OEFycmF5KDApKX0sanNwYi5CaW5hcnlEZWNvZGVyPWZ1bmN0aW9uKGUsdCxvKXt0aGlzLmJ5dGVzXz1udWxsLHRoaXMuY3Vyc29yXz10aGlzLmVuZF89dGhpcy5zdGFydF89MCx0aGlzLmVycm9yXz0hMSxlJiZ0aGlzLnNldEJsb2NrKGUsdCxvKX0sanNwYi5CaW5hcnlEZWNvZGVyLmluc3RhbmNlQ2FjaGVfPVtdLGpzcGIuQmluYXJ5RGVjb2Rlci5hbGxvYz1mdW5jdGlvbihlLHQsbyl7aWYoanNwYi5CaW5hcnlEZWNvZGVyLmluc3RhbmNlQ2FjaGVfLmxlbmd0aCl7dmFyIHI9anNwYi5CaW5hcnlEZWNvZGVyLmluc3RhbmNlQ2FjaGVfLnBvcCgpO3JldHVybiBlJiZyLnNldEJsb2NrKGUsdCxvKSxyfXJldHVybiBuZXcganNwYi5CaW5hcnlEZWNvZGVyKGUsdCxvKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5mcmVlPWZ1bmN0aW9uKCl7dGhpcy5jbGVhcigpLDEwMD5qc3BiLkJpbmFyeURlY29kZXIuaW5zdGFuY2VDYWNoZV8ubGVuZ3RoJiZqc3BiLkJpbmFyeURlY29kZXIuaW5zdGFuY2VDYWNoZV8ucHVzaCh0aGlzKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBqc3BiLkJpbmFyeURlY29kZXIuYWxsb2ModGhpcy5ieXRlc18sdGhpcy5zdGFydF8sdGhpcy5lbmRfLXRoaXMuc3RhcnRfKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuYnl0ZXNfPW51bGwsdGhpcy5jdXJzb3JfPXRoaXMuZW5kXz10aGlzLnN0YXJ0Xz0wLHRoaXMuZXJyb3JfPSExfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ5dGVzX30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5zZXRCbG9jaz1mdW5jdGlvbihlLHQsbyl7dGhpcy5ieXRlc189anNwYi51dGlscy5ieXRlU291cmNlVG9VaW50OEFycmF5KGUpLHRoaXMuc3RhcnRfPXZvaWQgMCE9PXQ/dDowLHRoaXMuZW5kXz12b2lkIDAhPT1vP3RoaXMuc3RhcnRfK286dGhpcy5ieXRlc18ubGVuZ3RoLHRoaXMuY3Vyc29yXz10aGlzLnN0YXJ0X30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5nZXRFbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmRffSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnNldEVuZD1mdW5jdGlvbihlKXt0aGlzLmVuZF89ZX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuY3Vyc29yXz10aGlzLnN0YXJ0X30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5nZXRDdXJzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJzb3JffSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnNldEN1cnNvcj1mdW5jdGlvbihlKXt0aGlzLmN1cnNvcl89ZX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5hZHZhbmNlPWZ1bmN0aW9uKGUpe3RoaXMuY3Vyc29yXys9ZSxnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5hdEVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnNvcl89PXRoaXMuZW5kX30sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5wYXN0RW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3Vyc29yXz50aGlzLmVuZF99LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuZ2V0RXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcl98fDA+dGhpcy5jdXJzb3JffHx0aGlzLmN1cnNvcl8+dGhpcy5lbmRffSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTcGxpdFZhcmludDY0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xMjgsbz0wLHI9MCxuPTA7ND5uJiYxMjg8PXQ7bisrKW98PSgxMjcmKHQ9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKytdKSk8PDcqbjtpZigxMjg8PXQmJihvfD0oMTI3Jih0PXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysrXSkpPDwyOCxyfD0oMTI3JnQpPj40KSwxMjg8PXQpZm9yKG49MDs1Pm4mJjEyODw9dDtuKyspcnw9KDEyNyYodD10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rK10pKTw8NypuKzM7aWYoMTI4PnQpcmV0dXJuIGUobz4+PjAscj4+PjApO2dvb2cuYXNzZXJ0cy5mYWlsKFwiRmFpbGVkIHRvIHJlYWQgdmFyaW50LCBlbmNvZGluZyBpcyBpbnZhbGlkLlwiKSx0aGlzLmVycm9yXz0hMH0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRaaWd6YWdWYXJpbnQ2ND1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWFkU3BsaXRWYXJpbnQ2NCgoZnVuY3Rpb24odCxvKXtyZXR1cm4ganNwYi51dGlscy5mcm9tWmlnemFnNjQodCxvLGUpfSkpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTcGxpdEZpeGVkNjQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5ieXRlc18sbz10aGlzLmN1cnNvcl87dGhpcy5jdXJzb3JfKz04O2Zvcih2YXIgcj0wLG49MCxzPW8rNztzPj1vO3MtLSlyPXI8PDh8dFtzXSxuPW48PDh8dFtzKzRdO3JldHVybiBlKHIsbil9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUuc2tpcFZhcmludD1mdW5jdGlvbigpe2Zvcig7MTI4JnRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yX107KXRoaXMuY3Vyc29yXysrO3RoaXMuY3Vyc29yXysrfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnVuc2tpcFZhcmludD1mdW5jdGlvbihlKXtmb3IoOzEyODxlOyl0aGlzLmN1cnNvcl8tLSxlPj4+PTc7dGhpcy5jdXJzb3JfLS19LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVuc2lnbmVkVmFyaW50MzI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzXyx0PWVbdGhpcy5jdXJzb3JfKzBdLG89MTI3JnQ7cmV0dXJuIDEyOD50Pyh0aGlzLmN1cnNvcl8rPTEsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksbyk6KG98PSgxMjcmKHQ9ZVt0aGlzLmN1cnNvcl8rMV0pKTw8NywxMjg+dD8odGhpcy5jdXJzb3JfKz0yLGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLG8pOihvfD0oMTI3Jih0PWVbdGhpcy5jdXJzb3JfKzJdKSk8PDE0LDEyOD50Pyh0aGlzLmN1cnNvcl8rPTMsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksbyk6KG98PSgxMjcmKHQ9ZVt0aGlzLmN1cnNvcl8rM10pKTw8MjEsMTI4PnQ/KHRoaXMuY3Vyc29yXys9NCxnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSxvKToob3w9KDE1Jih0PWVbdGhpcy5jdXJzb3JfKzRdKSk8PDI4LDEyOD50Pyh0aGlzLmN1cnNvcl8rPTUsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksbz4+PjApOih0aGlzLmN1cnNvcl8rPTUsMTI4PD1lW3RoaXMuY3Vyc29yXysrXSYmMTI4PD1lW3RoaXMuY3Vyc29yXysrXSYmMTI4PD1lW3RoaXMuY3Vyc29yXysrXSYmMTI4PD1lW3RoaXMuY3Vyc29yXysrXSYmMTI4PD1lW3RoaXMuY3Vyc29yXysrXSYmZ29vZy5hc3NlcnRzLmFzc2VydCghMSksZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksbykpKSkpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTaWduZWRWYXJpbnQzMj1qc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVbnNpZ25lZFZhcmludDMyLGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVuc2lnbmVkVmFyaW50MzJTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkVW5zaWduZWRWYXJpbnQzMigpLnRvU3RyaW5nKCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFNpZ25lZFZhcmludDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNpZ25lZFZhcmludDMyKCkudG9TdHJpbmcoKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkWmlnemFnVmFyaW50MzI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7cmV0dXJuIGU+Pj4xXi0oMSZlKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVW5zaWduZWRWYXJpbnQ2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pblVpbnQ2NCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVuc2lnbmVkVmFyaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLmpvaW5VbnNpZ25lZERlY2ltYWxTdHJpbmcpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTaWduZWRWYXJpbnQ2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFZhcmludDY0KGpzcGIudXRpbHMuam9pbkludDY0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU2lnbmVkVmFyaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLmpvaW5TaWduZWREZWNpbWFsU3RyaW5nKX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkWmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLmpvaW5aaWd6YWc2NCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFppZ3phZ1ZhcmludEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTcGxpdFppZ3phZ1ZhcmludDY0KGpzcGIudXRpbHMuam9pbkhhc2g2NCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFppZ3phZ1ZhcmludDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNwbGl0WmlnemFnVmFyaW50NjQoanNwYi51dGlscy5qb2luU2lnbmVkRGVjaW1hbFN0cmluZyl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVpbnQ4PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzBdO3JldHVybiB0aGlzLmN1cnNvcl8rPTEsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksZX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVWludDE2PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzBdLHQ9dGhpcy5ieXRlc19bdGhpcy5jdXJzb3JfKzFdO3JldHVybiB0aGlzLmN1cnNvcl8rPTIsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksZTw8MHx0PDw4fSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVaW50MzI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMF0sdD10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMV0sbz10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMl0scj10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rM107cmV0dXJuIHRoaXMuY3Vyc29yXys9NCxnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSwoZTw8MHx0PDw4fG88PDE2fHI8PDI0KT4+PjB9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZFVpbnQ2ND1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpLHQ9dGhpcy5yZWFkVWludDMyKCk7cmV0dXJuIGpzcGIudXRpbHMuam9pblVpbnQ2NChlLHQpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRVaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVaW50MzIoKSx0PXRoaXMucmVhZFVpbnQzMigpO3JldHVybiBqc3BiLnV0aWxzLmpvaW5VbnNpZ25lZERlY2ltYWxTdHJpbmcoZSx0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyswXTtyZXR1cm4gdGhpcy5jdXJzb3JfKz0xLGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLGU8PDI0Pj4yNH0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkSW50MTY9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMF0sdD10aGlzLmJ5dGVzX1t0aGlzLmN1cnNvcl8rMV07cmV0dXJuIHRoaXMuY3Vyc29yXys9Mixnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMuY3Vyc29yXzw9dGhpcy5lbmRfKSwoZTw8MHx0PDw4KTw8MTY+PjE2fSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRJbnQzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyswXSx0PXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysxXSxvPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysyXSxyPXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXyszXTtyZXR1cm4gdGhpcy5jdXJzb3JfKz00LGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5jdXJzb3JfPD10aGlzLmVuZF8pLGU8PDB8dDw8OHxvPDwxNnxyPDwyNH0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkSW50NjQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVaW50MzIoKSx0PXRoaXMucmVhZFVpbnQzMigpO3JldHVybiBqc3BiLnV0aWxzLmpvaW5JbnQ2NChlLHQpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRJbnQ2NFN0cmluZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVpbnQzMigpLHQ9dGhpcy5yZWFkVWludDMyKCk7cmV0dXJuIGpzcGIudXRpbHMuam9pblNpZ25lZERlY2ltYWxTdHJpbmcoZSx0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkRmxvYXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVaW50MzIoKTtyZXR1cm4ganNwYi51dGlscy5qb2luRmxvYXQzMihlLDApfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWREb3VibGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJlYWRVaW50MzIoKSx0PXRoaXMucmVhZFVpbnQzMigpO3JldHVybiBqc3BiLnV0aWxzLmpvaW5GbG9hdDY0KGUsdCl9LGpzcGIuQmluYXJ5RGVjb2Rlci5wcm90b3R5cGUucmVhZEJvb2w9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYnl0ZXNfW3RoaXMuY3Vyc29yXysrXX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkRW51bT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRTaWduZWRWYXJpbnQzMigpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRTdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5ieXRlc18sbz10aGlzLmN1cnNvcl87ZT1vK2U7Zm9yKHZhciByPVtdLG49XCJcIjtvPGU7KXt2YXIgcz10W28rK107aWYoMTI4PnMpci5wdXNoKHMpO2Vsc2V7aWYoMTkyPnMpY29udGludWU7aWYoMjI0PnMpe3ZhciBpPXRbbysrXTtyLnB1c2goKDMxJnMpPDw2fDYzJmkpfWVsc2UgaWYoMjQwPnMpe2k9dFtvKytdO3ZhciBhPXRbbysrXTtyLnB1c2goKDE1JnMpPDwxMnwoNjMmaSk8PDZ8NjMmYSl9ZWxzZSAyNDg+cyYmKHM9KDcmcyk8PDE4fCg2MyYoaT10W28rK10pKTw8MTJ8KDYzJihhPXRbbysrXSkpPDw2fDYzJnRbbysrXSxzLT02NTUzNixyLnB1c2goNTUyOTYrKHM+PjEwJjEwMjMpLDU2MzIwKygxMDIzJnMpKSl9ODE5Mjw9ci5sZW5ndGgmJihuKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsciksci5sZW5ndGg9MCl9cmV0dXJuIG4rPWdvb2cuY3J5cHQuYnl0ZUFycmF5VG9TdHJpbmcociksdGhpcy5jdXJzb3JfPW8sbn0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkU3RyaW5nV2l0aExlbmd0aD1mdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZFVuc2lnbmVkVmFyaW50MzIoKTtyZXR1cm4gdGhpcy5yZWFkU3RyaW5nKGUpfSxqc3BiLkJpbmFyeURlY29kZXIucHJvdG90eXBlLnJlYWRCeXRlcz1mdW5jdGlvbihlKXtpZigwPmV8fHRoaXMuY3Vyc29yXytlPnRoaXMuYnl0ZXNfLmxlbmd0aClyZXR1cm4gdGhpcy5lcnJvcl89ITAsZ29vZy5hc3NlcnRzLmZhaWwoXCJJbnZhbGlkIGJ5dGUgbGVuZ3RoIVwiKSxuZXcgVWludDhBcnJheSgwKTt2YXIgdD10aGlzLmJ5dGVzXy5zdWJhcnJheSh0aGlzLmN1cnNvcl8sdGhpcy5jdXJzb3JfK2UpO3JldHVybiB0aGlzLmN1cnNvcl8rPWUsZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLmN1cnNvcl88PXRoaXMuZW5kXyksdH0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkVmFyaW50SGFzaDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFNwbGl0VmFyaW50NjQoanNwYi51dGlscy5qb2luSGFzaDY0KX0sanNwYi5CaW5hcnlEZWNvZGVyLnByb3RvdHlwZS5yZWFkRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJ5dGVzXyx0PXRoaXMuY3Vyc29yXyxvPWVbdCswXSxyPWVbdCsxXSxuPWVbdCsyXSxzPWVbdCszXSxpPWVbdCs0XSxhPWVbdCs1XSxnPWVbdCs2XTtyZXR1cm4gZT1lW3QrN10sdGhpcy5jdXJzb3JfKz04LFN0cmluZy5mcm9tQ2hhckNvZGUobyxyLG4scyxpLGEsZyxlKX0sanNwYi5CaW5hcnlSZWFkZXI9ZnVuY3Rpb24oZSx0LG8pe3RoaXMuZGVjb2Rlcl89anNwYi5CaW5hcnlEZWNvZGVyLmFsbG9jKGUsdCxvKSx0aGlzLmZpZWxkQ3Vyc29yXz10aGlzLmRlY29kZXJfLmdldEN1cnNvcigpLHRoaXMubmV4dEZpZWxkXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5JTlZBTElEX0ZJRUxEX05VTUJFUix0aGlzLm5leHRXaXJlVHlwZV89anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuSU5WQUxJRCx0aGlzLmVycm9yXz0hMSx0aGlzLnJlYWRDYWxsYmFja3NfPW51bGx9LGpzcGIuQmluYXJ5UmVhZGVyLmluc3RhbmNlQ2FjaGVfPVtdLGpzcGIuQmluYXJ5UmVhZGVyLmFsbG9jPWZ1bmN0aW9uKGUsdCxvKXtpZihqc3BiLkJpbmFyeVJlYWRlci5pbnN0YW5jZUNhY2hlXy5sZW5ndGgpe3ZhciByPWpzcGIuQmluYXJ5UmVhZGVyLmluc3RhbmNlQ2FjaGVfLnBvcCgpO3JldHVybiBlJiZyLmRlY29kZXJfLnNldEJsb2NrKGUsdCxvKSxyfXJldHVybiBuZXcganNwYi5CaW5hcnlSZWFkZXIoZSx0LG8pfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuYWxsb2M9anNwYi5CaW5hcnlSZWFkZXIuYWxsb2MsanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmZyZWU9ZnVuY3Rpb24oKXt0aGlzLmRlY29kZXJfLmNsZWFyKCksdGhpcy5uZXh0RmllbGRfPWpzcGIuQmluYXJ5Q29uc3RhbnRzLklOVkFMSURfRklFTERfTlVNQkVSLHRoaXMubmV4dFdpcmVUeXBlXz1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5JTlZBTElELHRoaXMuZXJyb3JfPSExLHRoaXMucmVhZENhbGxiYWNrc189bnVsbCwxMDA+anNwYi5CaW5hcnlSZWFkZXIuaW5zdGFuY2VDYWNoZV8ubGVuZ3RoJiZqc3BiLkJpbmFyeVJlYWRlci5pbnN0YW5jZUNhY2hlXy5wdXNoKHRoaXMpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0RmllbGRDdXJzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWVsZEN1cnNvcl99LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5nZXRDdXJzb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlY29kZXJfLmdldEJ1ZmZlcigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0RmllbGROdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0RmllbGRffSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0V2lyZVR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0V2lyZVR5cGVffSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuaXNEZWxpbWl0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUR9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5pc0VuZEdyb3VwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0RXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcl98fHRoaXMuZGVjb2Rlcl8uZ2V0RXJyb3IoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNldEJsb2NrPWZ1bmN0aW9uKGUsdCxvKXt0aGlzLmRlY29kZXJfLnNldEJsb2NrKGUsdCxvKSx0aGlzLm5leHRGaWVsZF89anNwYi5CaW5hcnlDb25zdGFudHMuSU5WQUxJRF9GSUVMRF9OVU1CRVIsdGhpcy5uZXh0V2lyZVR5cGVfPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLklOVkFMSUR9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuZGVjb2Rlcl8ucmVzZXQoKSx0aGlzLm5leHRGaWVsZF89anNwYi5CaW5hcnlDb25zdGFudHMuSU5WQUxJRF9GSUVMRF9OVU1CRVIsdGhpcy5uZXh0V2lyZVR5cGVfPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLklOVkFMSUR9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5hZHZhbmNlPWZ1bmN0aW9uKGUpe3RoaXMuZGVjb2Rlcl8uYWR2YW5jZShlKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLm5leHRGaWVsZD1mdW5jdGlvbigpe2lmKHRoaXMuZGVjb2Rlcl8uYXRFbmQoKSlyZXR1cm4hMTtpZih0aGlzLmdldEVycm9yKCkpcmV0dXJuIGdvb2cuYXNzZXJ0cy5mYWlsKFwiRGVjb2RlciBoaXQgYW4gZXJyb3JcIiksITE7dGhpcy5maWVsZEN1cnNvcl89dGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKTt2YXIgZT10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCksdD1lPj4+MztyZXR1cm4oZSY9NykhPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCYmZSE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMiYmZSE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCYmZSE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEJiZlIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5TVEFSVF9HUk9VUCYmZSE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQPyhnb29nLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSB0eXBlOiAlcyAoYXQgcG9zaXRpb24gJXMpXCIsZSx0aGlzLmZpZWxkQ3Vyc29yXyksdGhpcy5lcnJvcl89ITAsITEpOih0aGlzLm5leHRGaWVsZF89dCx0aGlzLm5leHRXaXJlVHlwZV89ZSwhMCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS51bnNraXBIZWFkZXI9ZnVuY3Rpb24oKXt0aGlzLmRlY29kZXJfLnVuc2tpcFZhcmludCh0aGlzLm5leHRGaWVsZF88PDN8dGhpcy5uZXh0V2lyZVR5cGVfKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBNYXRjaGluZ0ZpZWxkcz1mdW5jdGlvbigpe3ZhciBlPXRoaXMubmV4dEZpZWxkXztmb3IodGhpcy51bnNraXBIZWFkZXIoKTt0aGlzLm5leHRGaWVsZCgpJiZ0aGlzLmdldEZpZWxkTnVtYmVyKCk9PWU7KXRoaXMuc2tpcEZpZWxkKCk7dGhpcy5kZWNvZGVyXy5hdEVuZCgpfHx0aGlzLnVuc2tpcEhlYWRlcigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuc2tpcFZhcmludEZpZWxkPWZ1bmN0aW9uKCl7dGhpcy5uZXh0V2lyZVR5cGVfIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQ/KGdvb2cuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCB3aXJlIHR5cGUgZm9yIHNraXBWYXJpbnRGaWVsZFwiKSx0aGlzLnNraXBGaWVsZCgpKTp0aGlzLmRlY29kZXJfLnNraXBWYXJpbnQoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBEZWxpbWl0ZWRGaWVsZD1mdW5jdGlvbigpe2lmKHRoaXMubmV4dFdpcmVUeXBlXyE9anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKWdvb2cuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCB3aXJlIHR5cGUgZm9yIHNraXBEZWxpbWl0ZWRGaWVsZFwiKSx0aGlzLnNraXBGaWVsZCgpO2Vsc2V7dmFyIGU9dGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpO3RoaXMuZGVjb2Rlcl8uYWR2YW5jZShlKX19LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5za2lwRml4ZWQzMkZpZWxkPWZ1bmN0aW9uKCl7dGhpcy5uZXh0V2lyZVR5cGVfIT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyPyhnb29nLmFzc2VydHMuZmFpbChcIkludmFsaWQgd2lyZSB0eXBlIGZvciBza2lwRml4ZWQzMkZpZWxkXCIpLHRoaXMuc2tpcEZpZWxkKCkpOnRoaXMuZGVjb2Rlcl8uYWR2YW5jZSg0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBGaXhlZDY0RmllbGQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRXaXJlVHlwZV8hPWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQ/KGdvb2cuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCB3aXJlIHR5cGUgZm9yIHNraXBGaXhlZDY0RmllbGRcIiksdGhpcy5za2lwRmllbGQoKSk6dGhpcy5kZWNvZGVyXy5hZHZhbmNlKDgpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuc2tpcEdyb3VwPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMubmV4dEZpZWxkXzs7KXtpZighdGhpcy5uZXh0RmllbGQoKSl7Z29vZy5hc3NlcnRzLmZhaWwoXCJVbm1hdGNoZWQgc3RhcnQtZ3JvdXAgdGFnOiBzdHJlYW0gRU9GXCIpLHRoaXMuZXJyb3JfPSEwO2JyZWFrfWlmKHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQKXt0aGlzLm5leHRGaWVsZF8hPWUmJihnb29nLmFzc2VydHMuZmFpbChcIlVubWF0Y2hlZCBlbmQtZ3JvdXAgdGFnXCIpLHRoaXMuZXJyb3JfPSEwKTticmVha310aGlzLnNraXBGaWVsZCgpfX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnNraXBGaWVsZD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLm5leHRXaXJlVHlwZV8pe2Nhc2UganNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UOnRoaXMuc2tpcFZhcmludEZpZWxkKCk7YnJlYWs7Y2FzZSBqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0OnRoaXMuc2tpcEZpeGVkNjRGaWVsZCgpO2JyZWFrO2Nhc2UganNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEOnRoaXMuc2tpcERlbGltaXRlZEZpZWxkKCk7YnJlYWs7Y2FzZSBqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyOnRoaXMuc2tpcEZpeGVkMzJGaWVsZCgpO2JyZWFrO2Nhc2UganNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuU1RBUlRfR1JPVVA6dGhpcy5za2lwR3JvdXAoKTticmVhaztkZWZhdWx0Omdvb2cuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCB3aXJlIGVuY29kaW5nIGZvciBmaWVsZC5cIil9fSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVnaXN0ZXJSZWFkQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtudWxsPT09dGhpcy5yZWFkQ2FsbGJhY2tzXyYmKHRoaXMucmVhZENhbGxiYWNrc189e30pLGdvb2cuYXNzZXJ0cy5hc3NlcnQoIXRoaXMucmVhZENhbGxiYWNrc19bZV0pLHRoaXMucmVhZENhbGxiYWNrc19bZV09dH0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJ1blJlYWRDYWxsYmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT09dGhpcy5yZWFkQ2FsbGJhY2tzXyksZT10aGlzLnJlYWRDYWxsYmFja3NfW2VdLGdvb2cuYXNzZXJ0cy5hc3NlcnQoZSksZSh0aGlzKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRBbnk9ZnVuY3Rpb24oZSl7dGhpcy5uZXh0V2lyZVR5cGVfPWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZpZWxkVHlwZVRvV2lyZVR5cGUoZSk7dmFyIHQ9anNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlO3N3aXRjaChlKXtjYXNlIHQuRE9VQkxFOnJldHVybiB0aGlzLnJlYWREb3VibGUoKTtjYXNlIHQuRkxPQVQ6cmV0dXJuIHRoaXMucmVhZEZsb2F0KCk7Y2FzZSB0LklOVDY0OnJldHVybiB0aGlzLnJlYWRJbnQ2NCgpO2Nhc2UgdC5VSU5UNjQ6cmV0dXJuIHRoaXMucmVhZFVpbnQ2NCgpO2Nhc2UgdC5JTlQzMjpyZXR1cm4gdGhpcy5yZWFkSW50MzIoKTtjYXNlIHQuRklYRUQ2NDpyZXR1cm4gdGhpcy5yZWFkRml4ZWQ2NCgpO2Nhc2UgdC5GSVhFRDMyOnJldHVybiB0aGlzLnJlYWRGaXhlZDMyKCk7Y2FzZSB0LkJPT0w6cmV0dXJuIHRoaXMucmVhZEJvb2woKTtjYXNlIHQuU1RSSU5HOnJldHVybiB0aGlzLnJlYWRTdHJpbmcoKTtjYXNlIHQuR1JPVVA6Z29vZy5hc3NlcnRzLmZhaWwoXCJHcm91cCBmaWVsZCB0eXBlIG5vdCBzdXBwb3J0ZWQgaW4gcmVhZEFueSgpXCIpO2Nhc2UgdC5NRVNTQUdFOmdvb2cuYXNzZXJ0cy5mYWlsKFwiTWVzc2FnZSBmaWVsZCB0eXBlIG5vdCBzdXBwb3J0ZWQgaW4gcmVhZEFueSgpXCIpO2Nhc2UgdC5CWVRFUzpyZXR1cm4gdGhpcy5yZWFkQnl0ZXMoKTtjYXNlIHQuVUlOVDMyOnJldHVybiB0aGlzLnJlYWRVaW50MzIoKTtjYXNlIHQuRU5VTTpyZXR1cm4gdGhpcy5yZWFkRW51bSgpO2Nhc2UgdC5TRklYRUQzMjpyZXR1cm4gdGhpcy5yZWFkU2ZpeGVkMzIoKTtjYXNlIHQuU0ZJWEVENjQ6cmV0dXJuIHRoaXMucmVhZFNmaXhlZDY0KCk7Y2FzZSB0LlNJTlQzMjpyZXR1cm4gdGhpcy5yZWFkU2ludDMyKCk7Y2FzZSB0LlNJTlQ2NDpyZXR1cm4gdGhpcy5yZWFkU2ludDY0KCk7Y2FzZSB0LkZIQVNINjQ6cmV0dXJuIHRoaXMucmVhZEZpeGVkSGFzaDY0KCk7Y2FzZSB0LlZIQVNINjQ6cmV0dXJuIHRoaXMucmVhZFZhcmludEhhc2g2NCgpO2RlZmF1bHQ6Z29vZy5hc3NlcnRzLmZhaWwoXCJJbnZhbGlkIGZpZWxkIHR5cGUgaW4gcmVhZEFueSgpXCIpfXJldHVybiAwfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZE1lc3NhZ2U9ZnVuY3Rpb24oZSx0KXtnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgbz10aGlzLmRlY29kZXJfLmdldEVuZCgpLHI9dGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpO3I9dGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKStyLHRoaXMuZGVjb2Rlcl8uc2V0RW5kKHIpLHQoZSx0aGlzKSx0aGlzLmRlY29kZXJfLnNldEN1cnNvcihyKSx0aGlzLmRlY29kZXJfLnNldEVuZChvKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRHcm91cD1mdW5jdGlvbihlLHQsbyl7Z29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQKSxnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dEZpZWxkXz09ZSksbyh0LHRoaXMpLHRoaXMuZXJyb3JffHx0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkVORF9HUk9VUHx8KGdvb2cuYXNzZXJ0cy5mYWlsKFwiR3JvdXAgc3VibWVzc2FnZSBkaWQgbm90IGVuZCB3aXRoIGFuIEVORF9HUk9VUCB0YWdcIiksdGhpcy5lcnJvcl89ITApfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUuZ2V0RmllbGREZWNvZGVyPWZ1bmN0aW9uKCl7Z29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCk7dmFyIGU9dGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpLHQ9dGhpcy5kZWNvZGVyXy5nZXRDdXJzb3IoKSxvPXQrZTtyZXR1cm4gZT1qc3BiLkJpbmFyeURlY29kZXIuYWxsb2ModGhpcy5kZWNvZGVyXy5nZXRCdWZmZXIoKSx0LGUpLHRoaXMuZGVjb2Rlcl8uc2V0Q3Vyc29yKG8pLGV9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50MzIoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRJbnQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRTaWduZWRWYXJpbnQzMlN0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50NjRTdHJpbmcoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRVaW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFVpbnQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyU3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkVWludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50NjQoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRVaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQ2NFN0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnQzMj1mdW5jdGlvbigpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRaaWd6YWdWYXJpbnQzMigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnQ2ND1mdW5jdGlvbigpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRaaWd6YWdWYXJpbnQ2NCgpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRaaWd6YWdWYXJpbnQ2NFN0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEZpeGVkMzI9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZGVjb2Rlcl8ucmVhZFVpbnQzMigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEZpeGVkNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZFVpbnQ2NCgpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEZpeGVkNjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZFVpbnQ2NFN0cmluZygpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNmaXhlZDMyPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyKSx0aGlzLmRlY29kZXJfLnJlYWRJbnQzMigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNmaXhlZDMyU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDMyKSx0aGlzLmRlY29kZXJfLnJlYWRJbnQzMigpLnRvU3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZEludDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZEludDY0U3RyaW5nKCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRmxvYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZGVjb2Rlcl8ucmVhZEZsb2F0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRG91YmxlPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0KSx0aGlzLmRlY29kZXJfLnJlYWREb3VibGUoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRCb29sPWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLCEhdGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMigpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEVudW09ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50NjQoKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTdHJpbmc9ZnVuY3Rpb24oKXtnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgZT10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7cmV0dXJuIHRoaXMuZGVjb2Rlcl8ucmVhZFN0cmluZyhlKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRCeXRlcz1mdW5jdGlvbigpe2dvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpO3ZhciBlPXRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIoKTtyZXR1cm4gdGhpcy5kZWNvZGVyXy5yZWFkQnl0ZXMoZSl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkVmFyaW50SGFzaDY0PWZ1bmN0aW9uKCl7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnQodGhpcy5uZXh0V2lyZVR5cGVfPT1qc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZGVjb2Rlcl8ucmVhZFZhcmludEhhc2g2NCgpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFNpbnRIYXNoNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50SGFzaDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRWYXJpbnQ2ND1mdW5jdGlvbihlKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5kZWNvZGVyXy5yZWFkU3BsaXRWYXJpbnQ2NChlKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTcGxpdFppZ3phZ1ZhcmludDY0PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmRlY29kZXJfLnJlYWRTcGxpdFZhcmludDY0KChmdW5jdGlvbih0LG8pe3JldHVybiBqc3BiLnV0aWxzLmZyb21aaWd6YWc2NCh0LG8sZSl9KSl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZ29vZy5hc3NlcnRzLmFzc2VydCh0aGlzLm5leHRXaXJlVHlwZV89PWpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZGVjb2Rlcl8ucmVhZEZpeGVkSGFzaDY0KCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5kZWNvZGVyXy5yZWFkU3BsaXRGaXhlZDY0KGUpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZpZWxkXz1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KHRoaXMubmV4dFdpcmVUeXBlXz09anNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKTt2YXIgdD10aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDMyKCk7dD10aGlzLmRlY29kZXJfLmdldEN1cnNvcigpK3Q7Zm9yKHZhciBvPVtdO3RoaXMuZGVjb2Rlcl8uZ2V0Q3Vyc29yKCk8dDspby5wdXNoKGUuY2FsbCh0aGlzLmRlY29kZXJfKSk7cmV0dXJuIG99LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkSW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDMyKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRJbnQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkU2lnbmVkVmFyaW50MzJTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRTaWduZWRWYXJpbnQ2NCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkSW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFNpZ25lZFZhcmludDY0U3RyaW5nKX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50MzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50MzIpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFVpbnQzMlN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkVW5zaWduZWRWYXJpbnQzMlN0cmluZyl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkVWludDY0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRVbnNpZ25lZFZhcmludDY0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50NjRTdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVuc2lnbmVkVmFyaW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQzMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50MzIpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQ2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50NjQpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkWmlnemFnVmFyaW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZpeGVkMzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZFVpbnQzMil9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkRml4ZWQ2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkVWludDY0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZDY0U3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRVaW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFNmaXhlZDMyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRJbnQzMil9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkU2ZpeGVkNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEludDY0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkSW50NjRTdHJpbmcpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEZsb2F0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWRGbG9hdCl9LGpzcGIuQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkUGFja2VkRG91YmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFBhY2tlZEZpZWxkXyh0aGlzLmRlY29kZXJfLnJlYWREb3VibGUpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEJvb2w9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEJvb2wpfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZEVudW09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFkUGFja2VkRmllbGRfKHRoaXMuZGVjb2Rlcl8ucmVhZEVudW0pfSxqc3BiLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFBhY2tlZFZhcmludEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkVmFyaW50SGFzaDY0KX0sanNwYi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZEhhc2g2ND1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRQYWNrZWRGaWVsZF8odGhpcy5kZWNvZGVyXy5yZWFkRml4ZWRIYXNoNjQpfSxqc3BiLkJpbmFyeUVuY29kZXI9ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlcl89W119LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnVmZmVyXy5sZW5ndGh9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5idWZmZXJfO3JldHVybiB0aGlzLmJ1ZmZlcl89W10sZX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0KXtmb3IoZ29vZy5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxnb29nLmFzc2VydHMuYXNzZXJ0KHQ9PU1hdGguZmxvb3IodCkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9dCYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpOzA8dHx8MTI3PGU7KXRoaXMuYnVmZmVyXy5wdXNoKDEyNyZlfDEyOCksZT0oZT4+Pjd8dDw8MjUpPj4+MCx0Pj4+PTc7dGhpcy5idWZmZXJfLnB1c2goZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTcGxpdEZpeGVkNjQ9ZnVuY3Rpb24oZSx0KXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQodD09TWF0aC5mbG9vcih0KSksZ29vZy5hc3NlcnRzLmFzc2VydCgwPD1lJiZlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksZ29vZy5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksdGhpcy53cml0ZVVpbnQzMihlKSx0aGlzLndyaXRlVWludDMyKHQpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQzMj1mdW5jdGlvbihlKXtmb3IoZ29vZy5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxnb29nLmFzc2VydHMuYXNzZXJ0KDA8PWUmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKTsxMjc8ZTspdGhpcy5idWZmZXJfLnB1c2goMTI3JmV8MTI4KSxlPj4+PTc7dGhpcy5idWZmZXJfLnB1c2goZSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQzMj1mdW5jdGlvbihlKXtpZihnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLDA8PWUpdGhpcy53cml0ZVVuc2lnbmVkVmFyaW50MzIoZSk7ZWxzZXtmb3IodmFyIHQ9MDs5PnQ7dCsrKXRoaXMuYnVmZmVyXy5wdXNoKDEyNyZlfDEyOCksZT4+PTc7dGhpcy5idWZmZXJfLnB1c2goMSl9fSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlVW5zaWduZWRWYXJpbnQ2ND1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjQpLGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSx0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVTaWduZWRWYXJpbnQ2ND1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMpLGpzcGIudXRpbHMuc3BsaXRJbnQ2NChlKSx0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnQzMj1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLHRoaXMud3JpdGVVbnNpZ25lZFZhcmludDMyKChlPDwxXmU+PjMxKT4+PjApfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxnb29nLmFzc2VydHMuYXNzZXJ0KGU+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzKSxqc3BiLnV0aWxzLnNwbGl0WmlnemFnNjQoZSksdGhpcy53cml0ZVNwbGl0VmFyaW50NjQoanNwYi51dGlscy5zcGxpdDY0TG93LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjRTdHJpbmc9ZnVuY3Rpb24oZSl7dGhpcy53cml0ZVppZ3phZ1ZhcmludEhhc2g2NChqc3BiLnV0aWxzLmRlY2ltYWxTdHJpbmdUb0hhc2g2NChlKSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztqc3BiLnV0aWxzLnNwbGl0SGFzaDY0KGUpLGpzcGIudXRpbHMudG9aaWd6YWc2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCwoZnVuY3Rpb24oZSxvKXt0LndyaXRlU3BsaXRWYXJpbnQ2NChlPj4+MCxvPj4+MCl9KSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVVaW50OD1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmMjU2PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVVaW50MTY9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxnb29nLmFzc2VydHMuYXNzZXJ0KDA8PWUmJjY1NTM2PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVVpbnQzMj1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+MTYmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+MjQmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2ND1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoMDw9ZSYmZTxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjQpLGpzcGIudXRpbHMuc3BsaXRVaW50NjQoZSksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRMb3cpLHRoaXMud3JpdGVVaW50MzIoanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksZ29vZy5hc3NlcnRzLmFzc2VydCgtMTI4PD1lJiYxMjg+ZSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjAmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUludDE2PWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksZ29vZy5hc3NlcnRzLmFzc2VydCgtMzI3Njg8PWUmJjMyNzY4PmUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4wJjI1NSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjgmMjU1KX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUludDMyPWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksZ29vZy5hc3NlcnRzLmFzc2VydChlPj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy5idWZmZXJfLnB1c2goZT4+PjAmMjU1KSx0aGlzLmJ1ZmZlcl8ucHVzaChlPj4+OCYyNTUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4xNiYyNTUpLHRoaXMuYnVmZmVyXy5wdXNoKGU+Pj4yNCYyNTUpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlSW50NjQ9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydChlPT1NYXRoLmZsb29yKGUpKSxnb29nLmFzc2VydHMuYXNzZXJ0KGU+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJmU8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzKSxqc3BiLnV0aWxzLnNwbGl0SW50NjQoZSksdGhpcy53cml0ZVNwbGl0Rml4ZWQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVJbnQ2NFN0cmluZz1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KGU9PU1hdGguZmxvb3IoZSkpLGdvb2cuYXNzZXJ0cy5hc3NlcnQoK2U+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMmJitlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksanNwYi51dGlscy5zcGxpdEhhc2g2NChqc3BiLnV0aWxzLmRlY2ltYWxTdHJpbmdUb0hhc2g2NChlKSksdGhpcy53cml0ZVNwbGl0Rml4ZWQ2NChqc3BiLnV0aWxzLnNwbGl0NjRMb3csanNwYi51dGlscy5zcGxpdDY0SGlnaCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVGbG9hdD1mdW5jdGlvbihlKXtnb29nLmFzc2VydHMuYXNzZXJ0KDEvMD09PWV8fC0xLzA9PT1lfHxpc05hTihlKXx8ZT49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUFYJiZlPD1qc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDMyX01BWCksanNwYi51dGlscy5zcGxpdEZsb2F0MzIoZSksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRMb3cpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlRG91YmxlPWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoMS8wPT09ZXx8LTEvMD09PWV8fGlzTmFOKGUpfHxlPj0tanNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQ2NF9NQVgmJmU8PWpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUFYKSxqc3BiLnV0aWxzLnNwbGl0RmxvYXQ2NChlKSx0aGlzLndyaXRlVWludDMyKGpzcGIudXRpbHMuc3BsaXQ2NExvdyksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRIaWdoKX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZUJvb2w9ZnVuY3Rpb24oZSl7Z29vZy5hc3NlcnRzLmFzc2VydChcImJvb2xlYW5cIj09dHlwZW9mIGV8fFwibnVtYmVyXCI9PXR5cGVvZiBlKSx0aGlzLmJ1ZmZlcl8ucHVzaChlPzE6MCl9LGpzcGIuQmluYXJ5RW5jb2Rlci5wcm90b3R5cGUud3JpdGVFbnVtPWZ1bmN0aW9uKGUpe2dvb2cuYXNzZXJ0cy5hc3NlcnQoZT09TWF0aC5mbG9vcihlKSksZ29vZy5hc3NlcnRzLmFzc2VydChlPj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZlPGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy53cml0ZVNpZ25lZFZhcmludDMyKGUpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlQnl0ZXM9ZnVuY3Rpb24oZSl7dGhpcy5idWZmZXJfLnB1c2guYXBwbHkodGhpcy5idWZmZXJfLGUpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlVmFyaW50SGFzaDY0PWZ1bmN0aW9uKGUpe2pzcGIudXRpbHMuc3BsaXRIYXNoNjQoZSksdGhpcy53cml0ZVNwbGl0VmFyaW50NjQoanNwYi51dGlscy5zcGxpdDY0TG93LGpzcGIudXRpbHMuc3BsaXQ2NEhpZ2gpfSxqc3BiLkJpbmFyeUVuY29kZXIucHJvdG90eXBlLndyaXRlRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oZSl7anNwYi51dGlscy5zcGxpdEhhc2g2NChlKSx0aGlzLndyaXRlVWludDMyKGpzcGIudXRpbHMuc3BsaXQ2NExvdyksdGhpcy53cml0ZVVpbnQzMihqc3BiLnV0aWxzLnNwbGl0NjRIaWdoKX0sanNwYi5CaW5hcnlFbmNvZGVyLnByb3RvdHlwZS53cml0ZVN0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy5idWZmZXJfLmxlbmd0aCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciByPWUuY2hhckNvZGVBdChvKTtpZigxMjg+cil0aGlzLmJ1ZmZlcl8ucHVzaChyKTtlbHNlIGlmKDIwNDg+cil0aGlzLmJ1ZmZlcl8ucHVzaChyPj42fDE5MiksdGhpcy5idWZmZXJfLnB1c2goNjMmcnwxMjgpO2Vsc2UgaWYoNjU1MzY+cilpZig1NTI5Njw9ciYmNTYzMTk+PXImJm8rMTxlLmxlbmd0aCl7dmFyIG49ZS5jaGFyQ29kZUF0KG8rMSk7NTYzMjA8PW4mJjU3MzQzPj1uJiYocj0xMDI0KihyLTU1Mjk2KStuLTU2MzIwKzY1NTM2LHRoaXMuYnVmZmVyXy5wdXNoKHI+PjE4fDI0MCksdGhpcy5idWZmZXJfLnB1c2gocj4+MTImNjN8MTI4KSx0aGlzLmJ1ZmZlcl8ucHVzaChyPj42JjYzfDEyOCksdGhpcy5idWZmZXJfLnB1c2goNjMmcnwxMjgpLG8rKyl9ZWxzZSB0aGlzLmJ1ZmZlcl8ucHVzaChyPj4xMnwyMjQpLHRoaXMuYnVmZmVyXy5wdXNoKHI+PjYmNjN8MTI4KSx0aGlzLmJ1ZmZlcl8ucHVzaCg2MyZyfDEyOCl9cmV0dXJuIHRoaXMuYnVmZmVyXy5sZW5ndGgtdH0sanNwYi5hcml0aD17fSxqc3BiLmFyaXRoLlVJbnQ2ND1mdW5jdGlvbihlLHQpe3RoaXMubG89ZSx0aGlzLmhpPXR9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGk8ZS5oaXx8dGhpcy5oaT09ZS5oaSYmdGhpcy5sbzxlLmxvPy0xOnRoaXMuaGk9PWUuaGkmJnRoaXMubG89PWUubG8/MDoxfSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUucmlnaHRTaGlmdD1mdW5jdGlvbigpe3JldHVybiBuZXcganNwYi5hcml0aC5VSW50NjQoKHRoaXMubG8+Pj4xfCgxJnRoaXMuaGkpPDwzMSk+Pj4wLHRoaXMuaGk+Pj4xPj4+MCl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5sZWZ0U2hpZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGpzcGIuYXJpdGguVUludDY0KHRoaXMubG88PDE+Pj4wLCh0aGlzLmhpPDwxfHRoaXMubG8+Pj4zMSk+Pj4wKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLm1zYj1mdW5jdGlvbigpe3JldHVybiEhKDIxNDc0ODM2NDgmdGhpcy5oaSl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5sc2I9ZnVuY3Rpb24oKXtyZXR1cm4hISgxJnRoaXMubG8pfSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUuemVybz1mdW5jdGlvbigpe3JldHVybiAwPT10aGlzLmxvJiYwPT10aGlzLmhpfSxqc3BiLmFyaXRoLlVJbnQ2NC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcganNwYi5hcml0aC5VSW50NjQoKHRoaXMubG8rZS5sbyY0Mjk0OTY3Mjk1KT4+PjA+Pj4wLCgodGhpcy5oaStlLmhpJjQyOTQ5NjcyOTUpPj4+MCkrKDQyOTQ5NjcyOTY8PXRoaXMubG8rZS5sbz8xOjApPj4+MCl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgodGhpcy5sby1lLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpLWUuaGkmNDI5NDk2NzI5NSk+Pj4wKS0oMD50aGlzLmxvLWUubG8/MTowKT4+PjApfSxqc3BiLmFyaXRoLlVJbnQ2NC5tdWwzMngzMj1mdW5jdGlvbihlLHQpe3ZhciBvPTY1NTM1JmUscj02NTUzNSZ0LG49dD4+PjE2O2Zvcih0PW8qcis2NTUzNioobypuJjY1NTM1KSs2NTUzNiooKGU+Pj49MTYpKnImNjU1MzUpLG89ZSpuKyhvKm4+Pj4xNikrKGUqcj4+PjE2KTs0Mjk0OTY3Mjk2PD10Oyl0LT00Mjk0OTY3Mjk2LG8rPTE7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLlVJbnQ2NCh0Pj4+MCxvPj4+MCl9LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSl7dmFyIHQ9anNwYi5hcml0aC5VSW50NjQubXVsMzJ4MzIodGhpcy5sbyxlKTtyZXR1cm4oZT1qc3BiLmFyaXRoLlVJbnQ2NC5tdWwzMngzMih0aGlzLmhpLGUpKS5oaT1lLmxvLGUubG89MCx0LmFkZChlKX0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLmRpdj1mdW5jdGlvbihlKXtpZigwPT1lKXJldHVybltdO3ZhciB0PW5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgwLDApLG89bmV3IGpzcGIuYXJpdGguVUludDY0KHRoaXMubG8sdGhpcy5oaSk7ZT1uZXcganNwYi5hcml0aC5VSW50NjQoZSwwKTtmb3IodmFyIHI9bmV3IGpzcGIuYXJpdGguVUludDY0KDEsMCk7IWUubXNiKCk7KWU9ZS5sZWZ0U2hpZnQoKSxyPXIubGVmdFNoaWZ0KCk7Zm9yKDshci56ZXJvKCk7KTA+PWUuY21wKG8pJiYodD10LmFkZChyKSxvPW8uc3ViKGUpKSxlPWUucmlnaHRTaGlmdCgpLHI9ci5yaWdodFNoaWZ0KCk7cmV0dXJuW3Qsb119LGpzcGIuYXJpdGguVUludDY0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT1cIlwiLHQ9dGhpczshdC56ZXJvKCk7KXt2YXIgbz0odD10LmRpdigxMCkpWzBdO2U9dFsxXS5sbytlLHQ9b31yZXR1cm5cIlwiPT1lJiYoZT1cIjBcIiksZX0sanNwYi5hcml0aC5VSW50NjQuZnJvbVN0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IGpzcGIuYXJpdGguVUludDY0KDAsMCksbz1uZXcganNwYi5hcml0aC5VSW50NjQoMCwwKSxyPTA7cjxlLmxlbmd0aDtyKyspe2lmKFwiMFwiPmVbcl18fFwiOVwiPGVbcl0pcmV0dXJuIG51bGw7dmFyIG49cGFyc2VJbnQoZVtyXSwxMCk7by5sbz1uLHQ9dC5tdWwoMTApLmFkZChvKX1yZXR1cm4gdH0sanNwYi5hcml0aC5VSW50NjQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBqc3BiLmFyaXRoLlVJbnQ2NCh0aGlzLmxvLHRoaXMuaGkpfSxqc3BiLmFyaXRoLkludDY0PWZ1bmN0aW9uKGUsdCl7dGhpcy5sbz1lLHRoaXMuaGk9dH0sanNwYi5hcml0aC5JbnQ2NC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcganNwYi5hcml0aC5JbnQ2NCgodGhpcy5sbytlLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpK2UuaGkmNDI5NDk2NzI5NSk+Pj4wKSsoNDI5NDk2NzI5Njw9dGhpcy5sbytlLmxvPzE6MCk+Pj4wKX0sanNwYi5hcml0aC5JbnQ2NC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcganNwYi5hcml0aC5JbnQ2NCgodGhpcy5sby1lLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpLWUuaGkmNDI5NDk2NzI5NSk+Pj4wKS0oMD50aGlzLmxvLWUubG8/MTowKT4+PjApfSxqc3BiLmFyaXRoLkludDY0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcganNwYi5hcml0aC5JbnQ2NCh0aGlzLmxvLHRoaXMuaGkpfSxqc3BiLmFyaXRoLkludDY0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBlPTAhPSgyMTQ3NDgzNjQ4JnRoaXMuaGkpLHQ9bmV3IGpzcGIuYXJpdGguVUludDY0KHRoaXMubG8sdGhpcy5oaSk7cmV0dXJuIGUmJih0PW5ldyBqc3BiLmFyaXRoLlVJbnQ2NCgwLDApLnN1Yih0KSksKGU/XCItXCI6XCJcIikrdC50b1N0cmluZygpfSxqc3BiLmFyaXRoLkludDY0LmZyb21TdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9MDxlLmxlbmd0aCYmXCItXCI9PWVbMF07cmV0dXJuIHQmJihlPWUuc3Vic3RyaW5nKDEpKSxudWxsPT09KGU9anNwYi5hcml0aC5VSW50NjQuZnJvbVN0cmluZyhlKSk/bnVsbDoodCYmKGU9bmV3IGpzcGIuYXJpdGguVUludDY0KDAsMCkuc3ViKGUpKSxuZXcganNwYi5hcml0aC5JbnQ2NChlLmxvLGUuaGkpKX0sanNwYi5CaW5hcnlXcml0ZXI9ZnVuY3Rpb24oKXt0aGlzLmJsb2Nrc189W10sdGhpcy50b3RhbExlbmd0aF89MCx0aGlzLmVuY29kZXJfPW5ldyBqc3BiLkJpbmFyeUVuY29kZXIsdGhpcy5ib29rbWFya3NfPVtdfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUuYXBwZW5kVWludDhBcnJheV89ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5lbmNvZGVyXy5lbmQoKTt0aGlzLmJsb2Nrc18ucHVzaCh0KSx0aGlzLmJsb2Nrc18ucHVzaChlKSx0aGlzLnRvdGFsTGVuZ3RoXys9dC5sZW5ndGgrZS5sZW5ndGh9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5iZWdpbkRlbGltaXRlZF89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLGU9dGhpcy5lbmNvZGVyXy5lbmQoKSx0aGlzLmJsb2Nrc18ucHVzaChlKSx0aGlzLnRvdGFsTGVuZ3RoXys9ZS5sZW5ndGgsZS5wdXNoKHRoaXMudG90YWxMZW5ndGhfKSxlfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUuZW5kRGVsaW1pdGVkXz1mdW5jdGlvbihlKXt2YXIgdD1lLnBvcCgpO2Zvcih0PXRoaXMudG90YWxMZW5ndGhfK3RoaXMuZW5jb2Rlcl8ubGVuZ3RoKCktdCxnb29nLmFzc2VydHMuYXNzZXJ0KDA8PXQpOzEyNzx0OyllLnB1c2goMTI3JnR8MTI4KSx0Pj4+PTcsdGhpcy50b3RhbExlbmd0aF8rKztlLnB1c2godCksdGhpcy50b3RhbExlbmd0aF8rK30sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2VyaWFsaXplZE1lc3NhZ2U9ZnVuY3Rpb24oZSx0LG8pe3RoaXMuYXBwZW5kVWludDhBcnJheV8oZS5zdWJhcnJheSh0LG8pKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLm1heWJlV3JpdGVTZXJpYWxpemVkTWVzc2FnZT1mdW5jdGlvbihlLHQsbyl7bnVsbCE9ZSYmbnVsbCE9dCYmbnVsbCE9byYmdGhpcy53cml0ZVNlcmlhbGl6ZWRNZXNzYWdlKGUsdCxvKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5ibG9ja3NfPVtdLHRoaXMuZW5jb2Rlcl8uZW5kKCksdGhpcy50b3RhbExlbmd0aF89MCx0aGlzLmJvb2ttYXJrc189W119LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5nZXRSZXN1bHRCdWZmZXI9ZnVuY3Rpb24oKXtnb29nLmFzc2VydHMuYXNzZXJ0KDA9PXRoaXMuYm9va21hcmtzXy5sZW5ndGgpO2Zvcih2YXIgZT1uZXcgVWludDhBcnJheSh0aGlzLnRvdGFsTGVuZ3RoXyt0aGlzLmVuY29kZXJfLmxlbmd0aCgpKSx0PXRoaXMuYmxvY2tzXyxvPXQubGVuZ3RoLHI9MCxuPTA7bjxvO24rKyl7dmFyIHM9dFtuXTtlLnNldChzLHIpLHIrPXMubGVuZ3RofXJldHVybiB0PXRoaXMuZW5jb2Rlcl8uZW5kKCksZS5zZXQodCxyKSxyKz10Lmxlbmd0aCxnb29nLmFzc2VydHMuYXNzZXJ0KHI9PWUubGVuZ3RoKSx0aGlzLmJsb2Nrc189W2VdLGV9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS5nZXRSZXN1bHRCYXNlNjRTdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIGdvb2cuY3J5cHQuYmFzZTY0LmVuY29kZUJ5dGVBcnJheSh0aGlzLmdldFJlc3VsdEJ1ZmZlcigpLGUpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUuYmVnaW5TdWJNZXNzYWdlPWZ1bmN0aW9uKGUpe3RoaXMuYm9va21hcmtzXy5wdXNoKHRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLmVuZFN1Yk1lc3NhZ2U9ZnVuY3Rpb24oKXtnb29nLmFzc2VydHMuYXNzZXJ0KDA8PXRoaXMuYm9va21hcmtzXy5sZW5ndGgpLHRoaXMuZW5kRGVsaW1pdGVkXyh0aGlzLmJvb2ttYXJrc18ucG9wKCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVGaWVsZEhlYWRlcl89ZnVuY3Rpb24oZSx0KXtnb29nLmFzc2VydHMuYXNzZXJ0KDE8PWUmJmU9PU1hdGguZmxvb3IoZSkpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqZSt0KX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlQW55PWZ1bmN0aW9uKGUsdCxvKXt2YXIgcj1qc3BiLkJpbmFyeUNvbnN0YW50cy5GaWVsZFR5cGU7c3dpdGNoKGUpe2Nhc2Ugci5ET1VCTEU6dGhpcy53cml0ZURvdWJsZSh0LG8pO2JyZWFrO2Nhc2Ugci5GTE9BVDp0aGlzLndyaXRlRmxvYXQodCxvKTticmVhaztjYXNlIHIuSU5UNjQ6dGhpcy53cml0ZUludDY0KHQsbyk7YnJlYWs7Y2FzZSByLlVJTlQ2NDp0aGlzLndyaXRlVWludDY0KHQsbyk7YnJlYWs7Y2FzZSByLklOVDMyOnRoaXMud3JpdGVJbnQzMih0LG8pO2JyZWFrO2Nhc2Ugci5GSVhFRDY0OnRoaXMud3JpdGVGaXhlZDY0KHQsbyk7YnJlYWs7Y2FzZSByLkZJWEVEMzI6dGhpcy53cml0ZUZpeGVkMzIodCxvKTticmVhaztjYXNlIHIuQk9PTDp0aGlzLndyaXRlQm9vbCh0LG8pO2JyZWFrO2Nhc2Ugci5TVFJJTkc6dGhpcy53cml0ZVN0cmluZyh0LG8pO2JyZWFrO2Nhc2Ugci5HUk9VUDpnb29nLmFzc2VydHMuZmFpbChcIkdyb3VwIGZpZWxkIHR5cGUgbm90IHN1cHBvcnRlZCBpbiB3cml0ZUFueSgpXCIpO2JyZWFrO2Nhc2Ugci5NRVNTQUdFOmdvb2cuYXNzZXJ0cy5mYWlsKFwiTWVzc2FnZSBmaWVsZCB0eXBlIG5vdCBzdXBwb3J0ZWQgaW4gd3JpdGVBbnkoKVwiKTticmVhaztjYXNlIHIuQllURVM6dGhpcy53cml0ZUJ5dGVzKHQsbyk7YnJlYWs7Y2FzZSByLlVJTlQzMjp0aGlzLndyaXRlVWludDMyKHQsbyk7YnJlYWs7Y2FzZSByLkVOVU06dGhpcy53cml0ZUVudW0odCxvKTticmVhaztjYXNlIHIuU0ZJWEVEMzI6dGhpcy53cml0ZVNmaXhlZDMyKHQsbyk7YnJlYWs7Y2FzZSByLlNGSVhFRDY0OnRoaXMud3JpdGVTZml4ZWQ2NCh0LG8pO2JyZWFrO2Nhc2Ugci5TSU5UMzI6dGhpcy53cml0ZVNpbnQzMih0LG8pO2JyZWFrO2Nhc2Ugci5TSU5UNjQ6dGhpcy53cml0ZVNpbnQ2NCh0LG8pO2JyZWFrO2Nhc2Ugci5GSEFTSDY0OnRoaXMud3JpdGVGaXhlZEhhc2g2NCh0LG8pO2JyZWFrO2Nhc2Ugci5WSEFTSDY0OnRoaXMud3JpdGVWYXJpbnRIYXNoNjQodCxvKTticmVhaztkZWZhdWx0Omdvb2cuYXNzZXJ0cy5mYWlsKFwiSW52YWxpZCBmaWVsZCB0eXBlIGluIHdyaXRlQW55KClcIil9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVbnNpZ25lZFZhcmludDMyXz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMih0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpZ25lZFZhcmludDMyXz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50MzIodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVbnNpZ25lZFZhcmludDY0Xz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQ2NCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpZ25lZFZhcmludDY0Xz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50NjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnQzMl89ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludDMyKHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjRfPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVaaWd6YWdWYXJpbnQ2NCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVppZ3phZ1ZhcmludDY0U3RyaW5nXz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlWmlnemFnVmFyaW50NjRTdHJpbmcodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjRfPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVJbnQzMj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihnb29nLmFzc2VydHMuYXNzZXJ0KHQ+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxKSx0aGlzLndyaXRlU2lnbmVkVmFyaW50MzJfKGUsdCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVJbnQzMlN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PXBhcnNlSW50KHQsMTApLGdvb2cuYXNzZXJ0cy5hc3NlcnQodD49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEpLHRoaXMud3JpdGVTaWduZWRWYXJpbnQzMl8oZSx0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0PWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGdvb2cuYXNzZXJ0cy5hc3NlcnQodD49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMpLHRoaXMud3JpdGVTaWduZWRWYXJpbnQ2NF8oZSx0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9anNwYi5hcml0aC5JbnQ2NC5mcm9tU3RyaW5nKHQpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5WQVJJTlQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHQubG8sdC5oaSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVaW50MzI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMiksdGhpcy53cml0ZVVuc2lnbmVkVmFyaW50MzJfKGUsdCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVVaW50MzJTdHJpbmc9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodD1wYXJzZUludCh0LDEwKSxnb29nLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKSx0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQzMl8oZSx0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJihnb29nLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzY0KSx0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQ2NF8oZSx0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVVpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIuYXJpdGguVUludDY0LmZyb21TdHJpbmcodCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0VmFyaW50NjQodC5sbyx0LmhpKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpbnQzMj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihnb29nLmFzc2VydHMuYXNzZXJ0KHQ+PS1qc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxKSx0aGlzLndyaXRlWmlnemFnVmFyaW50MzJfKGUsdCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTaW50NjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzYzJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyksdGhpcy53cml0ZVppZ3phZ1ZhcmludDY0XyhlLHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2ludEhhc2g2ND1mdW5jdGlvbihlLHQpe251bGwhPXQmJnRoaXMud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjRfKGUsdCl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJnRoaXMud3JpdGVaaWd6YWdWYXJpbnQ2NFN0cmluZ18oZSx0KX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRml4ZWQzMj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihnb29nLmFzc2VydHMuYXNzZXJ0KDA8PXQmJnQ8anNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMyKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQzMiksdGhpcy5lbmNvZGVyXy53cml0ZVVpbnQzMih0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUZpeGVkNjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCgwPD10JiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182NCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVaW50NjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVGaXhlZDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9anNwYi5hcml0aC5VSW50NjQuZnJvbVN0cmluZyh0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NCh0LmxvLHQuaGkpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU2ZpeGVkMzI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZW5jb2Rlcl8ud3JpdGVJbnQzMih0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNmaXhlZDY0PWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGdvb2cuYXNzZXJ0cy5hc3NlcnQodD49LWpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182MyYmdDxqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0KSx0aGlzLmVuY29kZXJfLndyaXRlSW50NjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIuYXJpdGguSW50NjQuZnJvbVN0cmluZyh0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NCh0LmxvLHQuaGkpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlRmxvYXQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVEMzIpLHRoaXMuZW5jb2Rlcl8ud3JpdGVGbG9hdCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZURvdWJsZT1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRklYRUQ2NCksdGhpcy5lbmNvZGVyXy53cml0ZURvdWJsZSh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUJvb2w9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydChcImJvb2xlYW5cIj09dHlwZW9mIHR8fFwibnVtYmVyXCI9PXR5cGVvZiB0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlQm9vbCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUVudW09ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCh0Pj0tanNwYi5CaW5hcnlDb25zdGFudHMuVFdPX1RPXzMxJiZ0PGpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT18zMSksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNpZ25lZFZhcmludDMyKHQpKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3RyaW5nPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGU9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSksdGhpcy5lbmNvZGVyXy53cml0ZVN0cmluZyh0KSx0aGlzLmVuZERlbGltaXRlZF8oZSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVCeXRlcz1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWpzcGIudXRpbHMuYnl0ZVNvdXJjZVRvVWludDhBcnJheSh0KSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMih0Lmxlbmd0aCksdGhpcy5hcHBlbmRVaW50OEFycmF5Xyh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZU1lc3NhZ2U9ZnVuY3Rpb24oZSx0LG8pe251bGwhPXQmJihlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpLG8odCx0aGlzKSx0aGlzLmVuZERlbGltaXRlZF8oZSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVNZXNzYWdlU2V0PWZ1bmN0aW9uKGUsdCxvKXtudWxsIT10JiYodGhpcy53cml0ZUZpZWxkSGVhZGVyXygxLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKDIsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuVkFSSU5UKSx0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50MzIoZSksZT10aGlzLmJlZ2luRGVsaW1pdGVkXygzKSxvKHQsdGhpcyksdGhpcy5lbmREZWxpbWl0ZWRfKGUpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oMSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5FTkRfR1JPVVApKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlR3JvdXA9ZnVuY3Rpb24oZSx0LG8pe251bGwhPXQmJih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuU1RBUlRfR1JPVVApLG8odCx0aGlzKSx0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuRU5EX0dST1VQKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUZpeGVkSGFzaDY0PWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKGdvb2cuYXNzZXJ0cy5hc3NlcnQoOD09dC5sZW5ndGgpLHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5GSVhFRDY0KSx0aGlzLmVuY29kZXJfLndyaXRlRml4ZWRIYXNoNjQodCkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVWYXJpbnRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoZ29vZy5hc3NlcnRzLmFzc2VydCg4PT10Lmxlbmd0aCksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVZhcmludEhhc2g2NCh0KSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVNwbGl0Rml4ZWQ2ND1mdW5jdGlvbihlLHQsbyl7dGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkZJWEVENjQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdEZpeGVkNjQodCxvKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3BsaXRWYXJpbnQ2ND1mdW5jdGlvbihlLHQsbyl7dGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCksdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0VmFyaW50NjQodCxvKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3BsaXRaaWd6YWdWYXJpbnQ2ND1mdW5jdGlvbihlLHQsbyl7dGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlZBUklOVCk7dmFyIHI9dGhpcy5lbmNvZGVyXztqc3BiLnV0aWxzLnRvWmlnemFnNjQodCxvLChmdW5jdGlvbihlLHQpe3Iud3JpdGVTcGxpdFZhcmludDY0KGU+Pj4wLHQ+Pj4wKX0pKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQzMj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVNpZ25lZFZhcmludDMyXyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLndyaXRlSW50MzJTdHJpbmcoZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVNpZ25lZFZhcmludDY0XyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0Rml4ZWQ2ND1mdW5jdGlvbihlLHQsbyxyKXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVTcGxpdEZpeGVkNjQoZSxvKHRbbl0pLHIodFtuXSkpfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG8scil7aWYobnVsbCE9dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLndyaXRlU3BsaXRWYXJpbnQ2NChlLG8odFtuXSkscih0W25dKSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU3BsaXRaaWd6YWdWYXJpbnQ2ND1mdW5jdGlvbihlLHQsbyxyKXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXRoaXMud3JpdGVTcGxpdFppZ3phZ1ZhcmludDY0KGUsbyh0W25dKSxyKHRbbl0pKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRJbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZUludDY0U3RyaW5nKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLndyaXRlVW5zaWduZWRWYXJpbnQzMl8oZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRVaW50MzJTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVVaW50MzJTdHJpbmcoZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRVaW50NjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVVbnNpZ25lZFZhcmludDY0XyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFVpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVVpbnQ2NFN0cmluZyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnQzMj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVppZ3phZ1ZhcmludDMyXyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVppZ3phZ1ZhcmludDY0XyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVppZ3phZ1ZhcmludDY0U3RyaW5nXyhlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNpbnRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjRfKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRml4ZWQzMj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZUZpeGVkMzIoZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLndyaXRlRml4ZWQ2NChlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEZpeGVkNjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVGaXhlZDY0U3RyaW5nKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ZpeGVkMzI9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVTZml4ZWQzMihlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLndyaXRlU2ZpeGVkNjQoZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVNmaXhlZDY0U3RyaW5nKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRmxvYXQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVGbG9hdChlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZERvdWJsZT1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZURvdWJsZShlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEJvb2w9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVCb29sKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRW51bT1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZUVudW0oZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVTdHJpbmcoZSx0W29dKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRCeXRlcz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZUJ5dGVzKGUsdFtvXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkTWVzc2FnZT1mdW5jdGlvbihlLHQsbyl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7byh0W3JdLHRoaXMpLHRoaXMuZW5kRGVsaW1pdGVkXyhuKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkR3JvdXA9ZnVuY3Rpb24oZSx0LG8pe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLlNUQVJUX0dST1VQKSxvKHRbcl0sdGhpcyksdGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkVORF9HUk9VUCl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRml4ZWRIYXNoNjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMud3JpdGVGaXhlZEhhc2g2NChlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFZhcmludEhhc2g2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy53cml0ZVZhcmludEhhc2g2NChlLHRbb10pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRJbnQzMj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVTaWduZWRWYXJpbnQzMih0W29dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRJbnQzMlN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVTaWduZWRWYXJpbnQzMihwYXJzZUludCh0W29dLDEwKSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkSW50NjQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLmVuY29kZXJfLndyaXRlU2lnbmVkVmFyaW50NjQodFtvXSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU3BsaXRGaXhlZDY0PWZ1bmN0aW9uKGUsdCxvLHIpe2lmKG51bGwhPXQpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5lbmNvZGVyXy53cml0ZVNwbGl0Rml4ZWQ2NChvKHRbbl0pLHIodFtuXSkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNwbGl0VmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG8scil7aWYobnVsbCE9dCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl0aGlzLmVuY29kZXJfLndyaXRlU3BsaXRWYXJpbnQ2NChvKHRbbl0pLHIodFtuXSkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNwbGl0WmlnemFnVmFyaW50NjQ9ZnVuY3Rpb24oZSx0LG8scil7aWYobnVsbCE9dCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG49dGhpcy5lbmNvZGVyXyxzPTA7czx0Lmxlbmd0aDtzKyspanNwYi51dGlscy50b1ppZ3phZzY0KG8odFtzXSkscih0W3NdKSwoZnVuY3Rpb24oZSx0KXtuLndyaXRlU3BsaXRWYXJpbnQ2NChlPj4+MCx0Pj4+MCl9KSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkSW50NjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHI9anNwYi5hcml0aC5JbnQ2NC5mcm9tU3RyaW5nKHRbb10pO3RoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHIubG8sci5oaSl9dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkVWludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIodFtvXSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkVWludDMyU3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIocGFyc2VJbnQodFtvXSwxMCkpO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDY0KHRbb10pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcj1qc3BiLmFyaXRoLlVJbnQ2NC5mcm9tU3RyaW5nKHRbb10pO3RoaXMuZW5jb2Rlcl8ud3JpdGVTcGxpdFZhcmludDY0KHIubG8sci5oaSl9dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludDMyKHRbb10pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFNpbnQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVaaWd6YWdWYXJpbnQ2NCh0W29dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50NjRTdHJpbmc9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT10aGlzLmJlZ2luRGVsaW1pdGVkXyhlKTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLmVuY29kZXJfLndyaXRlWmlnemFnVmFyaW50SGFzaDY0KGpzcGIudXRpbHMuZGVjaW1hbFN0cmluZ1RvSGFzaDY0KHRbb10pKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50SGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9dGhpcy5iZWdpbkRlbGltaXRlZF8oZSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy5lbmNvZGVyXy53cml0ZVppZ3phZ1ZhcmludEhhc2g2NCh0W29dKTt0aGlzLmVuZERlbGltaXRlZF8oZSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGaXhlZDMyPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDQqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlVWludDMyKHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGaXhlZDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlVWludDY0KHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGaXhlZDY0U3RyaW5nPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG89anNwYi5hcml0aC5VSW50NjQuZnJvbVN0cmluZyh0W2VdKTt0aGlzLmVuY29kZXJfLndyaXRlU3BsaXRGaXhlZDY0KG8ubG8sby5oaSl9fSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTZml4ZWQzMj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig0KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUludDMyKHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTZml4ZWQ2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUludDY0KHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRTZml4ZWQ2NFN0cmluZz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUludDY0U3RyaW5nKHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWRGbG9hdD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcih0aGlzLndyaXRlRmllbGRIZWFkZXJfKGUsanNwYi5CaW5hcnlDb25zdGFudHMuV2lyZVR5cGUuREVMSU1JVEVEKSx0aGlzLmVuY29kZXJfLndyaXRlVW5zaWduZWRWYXJpbnQzMig0KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5lbmNvZGVyXy53cml0ZUZsb2F0KHRbZV0pfSxqc3BiLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVQYWNrZWREb3VibGU9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIoOCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuZW5jb2Rlcl8ud3JpdGVEb3VibGUodFtlXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZEJvb2w9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IodGhpcy53cml0ZUZpZWxkSGVhZGVyXyhlLGpzcGIuQmluYXJ5Q29uc3RhbnRzLldpcmVUeXBlLkRFTElNSVRFRCksdGhpcy5lbmNvZGVyXy53cml0ZVVuc2lnbmVkVmFyaW50MzIodC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlQm9vbCh0W2VdKX0sanNwYi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlUGFja2VkRW51bT1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVFbnVtKHRbb10pO3RoaXMuZW5kRGVsaW1pdGVkXyhlKX19LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZEZpeGVkSGFzaDY0PWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKHRoaXMud3JpdGVGaWVsZEhlYWRlcl8oZSxqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZS5ERUxJTUlURUQpLHRoaXMuZW5jb2Rlcl8ud3JpdGVVbnNpZ25lZFZhcmludDMyKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmVuY29kZXJfLndyaXRlRml4ZWRIYXNoNjQodFtlXSl9LGpzcGIuQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVBhY2tlZFZhcmludEhhc2g2ND1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPXRoaXMuYmVnaW5EZWxpbWl0ZWRfKGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuZW5jb2Rlcl8ud3JpdGVWYXJpbnRIYXNoNjQodFtvXSk7dGhpcy5lbmREZWxpbWl0ZWRfKGUpfX0sanNwYi5NYXA9ZnVuY3Rpb24oZSx0KXt0aGlzLmFycl89ZSx0aGlzLnZhbHVlQ3Rvcl89dCx0aGlzLm1hcF89e30sdGhpcy5hcnJDbGVhbj0hMCwwPHRoaXMuYXJyXy5sZW5ndGgmJnRoaXMubG9hZEZyb21BcnJheV8oKX0sanNwYi5NYXAucHJvdG90eXBlLmxvYWRGcm9tQXJyYXlfPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLmFycl8ubGVuZ3RoO2UrKyl7dmFyIHQ9dGhpcy5hcnJfW2VdLG89dFswXTt0aGlzLm1hcF9bby50b1N0cmluZygpXT1uZXcganNwYi5NYXAuRW50cnlfKG8sdFsxXSl9dGhpcy5hcnJDbGVhbj0hMH0sanNwYi5NYXAucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXtpZih0aGlzLmFyckNsZWFuKXtpZih0aGlzLnZhbHVlQ3Rvcl8pe3ZhciBlLHQ9dGhpcy5tYXBfO2ZvcihlIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkpe3ZhciBvPXRbZV0udmFsdWVXcmFwcGVyO28mJm8udG9BcnJheSgpfX19ZWxzZXtmb3IodGhpcy5hcnJfLmxlbmd0aD0wLCh0PXRoaXMuc3RyaW5nS2V5c18oKSkuc29ydCgpLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIHI9dGhpcy5tYXBfW3RbZV1dOyhvPXIudmFsdWVXcmFwcGVyKSYmby50b0FycmF5KCksdGhpcy5hcnJfLnB1c2goW3Iua2V5LHIudmFsdWVdKX10aGlzLmFyckNsZWFuPSEwfXJldHVybiB0aGlzLmFycl99LGpzcGIuTWFwLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbz10aGlzLnRvQXJyYXkoKSxyPVtdLG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIHM9dGhpcy5tYXBfW29bbl1bMF0udG9TdHJpbmcoKV07dGhpcy53cmFwRW50cnlfKHMpO3ZhciBpPXMudmFsdWVXcmFwcGVyO2k/KGdvb2cuYXNzZXJ0cy5hc3NlcnQodCksci5wdXNoKFtzLmtleSx0KGUsaSldKSk6ci5wdXNoKFtzLmtleSxzLnZhbHVlXSl9cmV0dXJuIHJ9LGpzcGIuTWFwLmZyb21PYmplY3Q9ZnVuY3Rpb24oZSx0LG8pe3Q9bmV3IGpzcGIuTWFwKFtdLHQpO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdWzBdLHM9byhlW3JdWzFdKTt0LnNldChuLHMpfXJldHVybiB0fSxqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfPWZ1bmN0aW9uKGUpe3RoaXMuaWR4Xz0wLHRoaXMuYXJyXz1lfSxqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWR4Xzx0aGlzLmFycl8ubGVuZ3RoP3tkb25lOiExLHZhbHVlOnRoaXMuYXJyX1t0aGlzLmlkeF8rK119Ontkb25lOiEwLHZhbHVlOnZvaWQgMH19LFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJihqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxqc3BiLk1hcC5wcm90b3R5cGUuZ2V0TGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RyaW5nS2V5c18oKS5sZW5ndGh9LGpzcGIuTWFwLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMubWFwXz17fSx0aGlzLmFyckNsZWFuPSExfSxqc3BiLk1hcC5wcm90b3R5cGUuZGVsPWZ1bmN0aW9uKGUpe2U9ZS50b1N0cmluZygpO3ZhciB0PXRoaXMubWFwXy5oYXNPd25Qcm9wZXJ0eShlKTtyZXR1cm4gZGVsZXRlIHRoaXMubWFwX1tlXSx0aGlzLmFyckNsZWFuPSExLHR9LGpzcGIuTWFwLnByb3RvdHlwZS5nZXRFbnRyeUxpc3Q9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PXRoaXMuc3RyaW5nS2V5c18oKTt0LnNvcnQoKTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHI9dGhpcy5tYXBfW3Rbb11dO2UucHVzaChbci5rZXksci52YWx1ZV0pfXJldHVybiBlfSxqc3BiLk1hcC5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zdHJpbmdLZXlzXygpO3Quc29ydCgpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcj10aGlzLm1hcF9bdFtvXV07ZS5wdXNoKFtyLmtleSx0aGlzLndyYXBFbnRyeV8ocildKX1yZXR1cm4gbmV3IGpzcGIuTWFwLkFycmF5SXRlcmF0b3JJdGVyYWJsZV8oZSl9LGpzcGIuTWFwLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLnN0cmluZ0tleXNfKCk7dC5zb3J0KCk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspZS5wdXNoKHRoaXMubWFwX1t0W29dXS5rZXkpO3JldHVybiBuZXcganNwYi5NYXAuQXJyYXlJdGVyYXRvckl0ZXJhYmxlXyhlKX0sanNwYi5NYXAucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zdHJpbmdLZXlzXygpO3Quc29ydCgpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKWUucHVzaCh0aGlzLndyYXBFbnRyeV8odGhpcy5tYXBfW3Rbb11dKSk7cmV0dXJuIG5ldyBqc3BiLk1hcC5BcnJheUl0ZXJhdG9ySXRlcmFibGVfKGUpfSxqc3BiLk1hcC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHQpe3ZhciBvPXRoaXMuc3RyaW5nS2V5c18oKTtvLnNvcnQoKTtmb3IodmFyIHI9MDtyPG8ubGVuZ3RoO3IrKyl7dmFyIG49dGhpcy5tYXBfW29bcl1dO2UuY2FsbCh0LHRoaXMud3JhcEVudHJ5XyhuKSxuLmtleSx0aGlzKX19LGpzcGIuTWFwLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbz1uZXcganNwYi5NYXAuRW50cnlfKGUpO3JldHVybiB0aGlzLnZhbHVlQ3Rvcl8/KG8udmFsdWVXcmFwcGVyPXQsby52YWx1ZT10LnRvQXJyYXkoKSk6by52YWx1ZT10LHRoaXMubWFwX1tlLnRvU3RyaW5nKCldPW8sdGhpcy5hcnJDbGVhbj0hMSx0aGlzfSxqc3BiLk1hcC5wcm90b3R5cGUud3JhcEVudHJ5Xz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy52YWx1ZUN0b3JfPyhlLnZhbHVlV3JhcHBlcnx8KGUudmFsdWVXcmFwcGVyPW5ldyB0aGlzLnZhbHVlQ3Rvcl8oZS52YWx1ZSkpLGUudmFsdWVXcmFwcGVyKTplLnZhbHVlfSxqc3BiLk1hcC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe2lmKGU9dGhpcy5tYXBfW2UudG9TdHJpbmcoKV0pcmV0dXJuIHRoaXMud3JhcEVudHJ5XyhlKX0sanNwYi5NYXAucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gZS50b1N0cmluZygpaW4gdGhpcy5tYXBffSxqc3BiLk1hcC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUsdCxvLHIsbil7dmFyIHM9dGhpcy5zdHJpbmdLZXlzXygpO3Muc29ydCgpO2Zvcih2YXIgaT0wO2k8cy5sZW5ndGg7aSsrKXt2YXIgYT10aGlzLm1hcF9bc1tpXV07dC5iZWdpblN1Yk1lc3NhZ2UoZSksby5jYWxsKHQsMSxhLmtleSksdGhpcy52YWx1ZUN0b3JfP3IuY2FsbCh0LDIsdGhpcy53cmFwRW50cnlfKGEpLG4pOnIuY2FsbCh0LDIsYS52YWx1ZSksdC5lbmRTdWJNZXNzYWdlKCl9fSxqc3BiLk1hcC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlLHQsbyxyLG4scyxpKXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspe3ZhciBhPXQuZ2V0RmllbGROdW1iZXIoKTsxPT1hP3M9by5jYWxsKHQpOjI9PWEmJihlLnZhbHVlQ3Rvcl8/KGdvb2cuYXNzZXJ0cy5hc3NlcnQobiksaXx8KGk9bmV3IGUudmFsdWVDdG9yXyksci5jYWxsKHQsaSxuKSk6aT1yLmNhbGwodCkpfWdvb2cuYXNzZXJ0cy5hc3NlcnQobnVsbCE9cyksZ29vZy5hc3NlcnRzLmFzc2VydChudWxsIT1pKSxlLnNldChzLGkpfSxqc3BiLk1hcC5wcm90b3R5cGUuc3RyaW5nS2V5c189ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMubWFwXyxvPVtdO2ZvcihlIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm8ucHVzaChlKTtyZXR1cm4gb30sanNwYi5NYXAuRW50cnlfPWZ1bmN0aW9uKGUsdCl7dGhpcy5rZXk9ZSx0aGlzLnZhbHVlPXQsdGhpcy52YWx1ZVdyYXBwZXI9dm9pZCAwfSxqc3BiLkV4dGVuc2lvbkZpZWxkSW5mbz1mdW5jdGlvbihlLHQsbyxyLG4pe3RoaXMuZmllbGRJbmRleD1lLHRoaXMuZmllbGROYW1lPXQsdGhpcy5jdG9yPW8sdGhpcy50b09iamVjdEZuPXIsdGhpcy5pc1JlcGVhdGVkPW59LGpzcGIuRXh0ZW5zaW9uRmllbGRCaW5hcnlJbmZvPWZ1bmN0aW9uKGUsdCxvLHIsbixzKXt0aGlzLmZpZWxkSW5mbz1lLHRoaXMuYmluYXJ5UmVhZGVyRm49dCx0aGlzLmJpbmFyeVdyaXRlckZuPW8sdGhpcy5iaW5hcnlNZXNzYWdlU2VyaWFsaXplRm49cix0aGlzLmJpbmFyeU1lc3NhZ2VEZXNlcmlhbGl6ZUZuPW4sdGhpcy5pc1BhY2tlZD1zfSxqc3BiLkV4dGVuc2lvbkZpZWxkSW5mby5wcm90b3R5cGUuaXNNZXNzYWdlVHlwZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jdG9yfSxqc3BiLk1lc3NhZ2U9ZnVuY3Rpb24oKXt9LGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1Q9ITAsanNwYi5NZXNzYWdlLkdFTkVSQVRFX0ZST01fT0JKRUNUPSFnb29nLkRJU0FMTE9XX1RFU1RfT05MWV9DT0RFLGpzcGIuTWVzc2FnZS5HRU5FUkFURV9UT19TVFJJTkc9ITAsanNwYi5NZXNzYWdlLkFTU1VNRV9MT0NBTF9BUlJBWVM9ITEsanNwYi5NZXNzYWdlLlNFUklBTElaRV9FTVBUWV9UUkFJTElOR19GSUVMRFM9ITAsanNwYi5NZXNzYWdlLlNVUFBPUlRTX1VJTlQ4QVJSQVlfPVwiZnVuY3Rpb25cIj09dHlwZW9mIFVpbnQ4QXJyYXksanNwYi5NZXNzYWdlLnByb3RvdHlwZS5nZXRKc1BiTWVzc2FnZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVzc2FnZUlkX30sanNwYi5NZXNzYWdlLmdldEluZGV4Xz1mdW5jdGlvbihlLHQpe3JldHVybiB0K2UuYXJyYXlJbmRleE9mZnNldF99LGpzcGIuTWVzc2FnZS5oaWRkZW5FUzZQcm9wZXJ0eV89ZnVuY3Rpb24oKXt9LGpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC1lLmFycmF5SW5kZXhPZmZzZXRffSxqc3BiLk1lc3NhZ2UuaW5pdGlhbGl6ZT1mdW5jdGlvbihlLHQsbyxyLG4scyl7aWYoZS53cmFwcGVyc189bnVsbCx0fHwodD1vP1tvXTpbXSksZS5tZXNzYWdlSWRfPW8/U3RyaW5nKG8pOnZvaWQgMCxlLmFycmF5SW5kZXhPZmZzZXRfPTA9PT1vPy0xOjAsZS5hcnJheT10LGpzcGIuTWVzc2FnZS5pbml0UGl2b3RBbmRFeHRlbnNpb25PYmplY3RfKGUsciksZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfPXt9LGpzcGIuTWVzc2FnZS5TRVJJQUxJWkVfRU1QVFlfVFJBSUxJTkdfRklFTERTfHwoZS5yZXBlYXRlZEZpZWxkcz1uKSxuKWZvcih0PTA7dDxuLmxlbmd0aDt0KyspKG89blt0XSk8ZS5waXZvdF8/KG89anNwYi5NZXNzYWdlLmdldEluZGV4XyhlLG8pLGUuYXJyYXlbb109ZS5hcnJheVtvXXx8anNwYi5NZXNzYWdlLkVNUFRZX0xJU1RfU0VOVElORUxfKTooanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0XyhlKSxlLmV4dGVuc2lvbk9iamVjdF9bb109ZS5leHRlbnNpb25PYmplY3RfW29dfHxqc3BiLk1lc3NhZ2UuRU1QVFlfTElTVF9TRU5USU5FTF8pO2lmKHMmJnMubGVuZ3RoKWZvcih0PTA7dDxzLmxlbmd0aDt0KyspanNwYi5NZXNzYWdlLmNvbXB1dGVPbmVvZkNhc2UoZSxzW3RdKX0sanNwYi5NZXNzYWdlLkVNUFRZX0xJU1RfU0VOVElORUxfPWdvb2cuREVCVUcmJk9iamVjdC5mcmVlemU/T2JqZWN0LmZyZWV6ZShbXSk6W10sanNwYi5NZXNzYWdlLmlzQXJyYXlfPWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuQVNTVU1FX0xPQ0FMX0FSUkFZUz9lIGluc3RhbmNlb2YgQXJyYXk6QXJyYXkuaXNBcnJheShlKX0sanNwYi5NZXNzYWdlLmlzRXh0ZW5zaW9uT2JqZWN0Xz1mdW5jdGlvbihlKXtyZXR1cm4hKG51bGw9PT1lfHxcIm9iamVjdFwiIT10eXBlb2YgZXx8anNwYi5NZXNzYWdlLmlzQXJyYXlfKGUpfHxqc3BiLk1lc3NhZ2UuU1VQUE9SVFNfVUlOVDhBUlJBWV8mJmUgaW5zdGFuY2VvZiBVaW50OEFycmF5KX0sanNwYi5NZXNzYWdlLmluaXRQaXZvdEFuZEV4dGVuc2lvbk9iamVjdF89ZnVuY3Rpb24oZSx0KXt2YXIgbz1lLmFycmF5Lmxlbmd0aCxyPS0xO2lmKG8mJihyPW8tMSxvPWUuYXJyYXlbcl0sanNwYi5NZXNzYWdlLmlzRXh0ZW5zaW9uT2JqZWN0XyhvKSkpcmV0dXJuIGUucGl2b3RfPWpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl8oZSxyKSx2b2lkKGUuZXh0ZW5zaW9uT2JqZWN0Xz1vKTstMTx0PyhlLnBpdm90Xz1NYXRoLm1heCh0LGpzcGIuTWVzc2FnZS5nZXRGaWVsZE51bWJlcl8oZSxyKzEpKSxlLmV4dGVuc2lvbk9iamVjdF89bnVsbCk6ZS5waXZvdF89TnVtYmVyLk1BWF9WQUxVRX0sanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0Xz1mdW5jdGlvbihlKXt2YXIgdD1qc3BiLk1lc3NhZ2UuZ2V0SW5kZXhfKGUsZS5waXZvdF8pO2UuYXJyYXlbdF18fChlLmV4dGVuc2lvbk9iamVjdF89ZS5hcnJheVt0XT17fSl9LGpzcGIuTWVzc2FnZS50b09iamVjdExpc3Q9ZnVuY3Rpb24oZSx0LG8pe2Zvcih2YXIgcj1bXSxuPTA7bjxlLmxlbmd0aDtuKyspcltuXT10LmNhbGwoZVtuXSxvLGVbbl0pO3JldHVybiByfSxqc3BiLk1lc3NhZ2UudG9PYmplY3RFeHRlbnNpb249ZnVuY3Rpb24oZSx0LG8scixuKXtmb3IodmFyIHMgaW4gbyl7dmFyIGk9b1tzXSxhPXIuY2FsbChlLGkpO2lmKG51bGwhPWEpe2Zvcih2YXIgZyBpbiBpLmZpZWxkTmFtZSlpZihpLmZpZWxkTmFtZS5oYXNPd25Qcm9wZXJ0eShnKSlicmVhazt0W2ddPWkudG9PYmplY3RGbj9pLmlzUmVwZWF0ZWQ/anNwYi5NZXNzYWdlLnRvT2JqZWN0TGlzdChhLGkudG9PYmplY3RGbixuKTppLnRvT2JqZWN0Rm4obixhKTphfX19LGpzcGIuTWVzc2FnZS5zZXJpYWxpemVCaW5hcnlFeHRlbnNpb25zPWZ1bmN0aW9uKGUsdCxvLHIpe2Zvcih2YXIgbiBpbiBvKXt2YXIgcz1vW25dLGk9cy5maWVsZEluZm87aWYoIXMuYmluYXJ5V3JpdGVyRm4pdGhyb3cgRXJyb3IoXCJNZXNzYWdlIGV4dGVuc2lvbiBwcmVzZW50IHRoYXQgd2FzIGdlbmVyYXRlZCB3aXRob3V0IGJpbmFyeSBzZXJpYWxpemF0aW9uIHN1cHBvcnRcIik7dmFyIGE9ci5jYWxsKGUsaSk7aWYobnVsbCE9YSlpZihpLmlzTWVzc2FnZVR5cGUoKSl7aWYoIXMuYmluYXJ5TWVzc2FnZVNlcmlhbGl6ZUZuKXRocm93IEVycm9yKFwiTWVzc2FnZSBleHRlbnNpb24gcHJlc2VudCBob2xkaW5nIHN1Ym1lc3NhZ2Ugd2l0aG91dCBiaW5hcnkgc3VwcG9ydCBlbmFibGVkLCBhbmQgbWVzc2FnZSBpcyBiZWluZyBzZXJpYWxpemVkIHRvIGJpbmFyeSBmb3JtYXRcIik7cy5iaW5hcnlXcml0ZXJGbi5jYWxsKHQsaS5maWVsZEluZGV4LGEscy5iaW5hcnlNZXNzYWdlU2VyaWFsaXplRm4pfWVsc2Ugcy5iaW5hcnlXcml0ZXJGbi5jYWxsKHQsaS5maWVsZEluZGV4LGEpfX0sanNwYi5NZXNzYWdlLnJlYWRCaW5hcnlFeHRlbnNpb249ZnVuY3Rpb24oZSx0LG8scixuKXt2YXIgcz1vW3QuZ2V0RmllbGROdW1iZXIoKV07aWYocyl7aWYobz1zLmZpZWxkSW5mbywhcy5iaW5hcnlSZWFkZXJGbil0aHJvdyBFcnJvcihcIkRlc2VyaWFsaXppbmcgZXh0ZW5zaW9uIHdob3NlIGdlbmVyYXRlZCBjb2RlIGRvZXMgbm90IHN1cHBvcnQgYmluYXJ5IGZvcm1hdFwiKTtpZihvLmlzTWVzc2FnZVR5cGUoKSl7dmFyIGk9bmV3IG8uY3RvcjtzLmJpbmFyeVJlYWRlckZuLmNhbGwodCxpLHMuYmluYXJ5TWVzc2FnZURlc2VyaWFsaXplRm4pfWVsc2UgaT1zLmJpbmFyeVJlYWRlckZuLmNhbGwodCk7by5pc1JlcGVhdGVkJiYhcy5pc1BhY2tlZD8odD1yLmNhbGwoZSxvKSk/dC5wdXNoKGkpOm4uY2FsbChlLG8sW2ldKTpuLmNhbGwoZSxvLGkpfWVsc2UgdC5za2lwRmllbGQoKX0sanNwYi5NZXNzYWdlLmdldEZpZWxkPWZ1bmN0aW9uKGUsdCl7aWYodDxlLnBpdm90Xyl7dD1qc3BiLk1lc3NhZ2UuZ2V0SW5kZXhfKGUsdCk7dmFyIG89ZS5hcnJheVt0XTtyZXR1cm4gbz09PWpzcGIuTWVzc2FnZS5FTVBUWV9MSVNUX1NFTlRJTkVMXz9lLmFycmF5W3RdPVtdOm99aWYoZS5leHRlbnNpb25PYmplY3RfKXJldHVybihvPWUuZXh0ZW5zaW9uT2JqZWN0X1t0XSk9PT1qc3BiLk1lc3NhZ2UuRU1QVFlfTElTVF9TRU5USU5FTF8/ZS5leHRlbnNpb25PYmplY3RfW3RdPVtdOm99LGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGpzcGIuTWVzc2FnZS5nZXRGaWVsZChlLHQpfSxqc3BiLk1lc3NhZ2UuZ2V0T3B0aW9uYWxGbG9hdGluZ1BvaW50RmllbGQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09KGU9anNwYi5NZXNzYWdlLmdldEZpZWxkKGUsdCkpP2U6K2V9LGpzcGIuTWVzc2FnZS5nZXRCb29sZWFuRmllbGQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09KGU9anNwYi5NZXNzYWdlLmdldEZpZWxkKGUsdCkpP2U6ISFlfSxqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGbG9hdGluZ1BvaW50RmllbGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbz1qc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZChlLHQpO2lmKGUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzX3x8KGUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzXz17fSksIWUuY29udmVydGVkUHJpbWl0aXZlRmllbGRzX1t0XSl7Zm9yKHZhciByPTA7cjxvLmxlbmd0aDtyKyspb1tyXT0rb1tyXTtlLmNvbnZlcnRlZFByaW1pdGl2ZUZpZWxkc19bdF09ITB9cmV0dXJuIG99LGpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEJvb2xlYW5GaWVsZD1mdW5jdGlvbihlLHQpe3ZhciBvPWpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKGUsdCk7aWYoZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNffHwoZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfPXt9KSwhZS5jb252ZXJ0ZWRQcmltaXRpdmVGaWVsZHNfW3RdKXtmb3IodmFyIHI9MDtyPG8ubGVuZ3RoO3IrKylvW3JdPSEhb1tyXTtlLmNvbnZlcnRlZFByaW1pdGl2ZUZpZWxkc19bdF09ITB9cmV0dXJuIG99LGpzcGIuTWVzc2FnZS5ieXRlc0FzQjY0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHxcInN0cmluZ1wiPT10eXBlb2YgZT9lOmpzcGIuTWVzc2FnZS5TVVBQT1JUU19VSU5UOEFSUkFZXyYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/Z29vZy5jcnlwdC5iYXNlNjQuZW5jb2RlQnl0ZUFycmF5KGUpOihnb29nLmFzc2VydHMuZmFpbChcIkNhbm5vdCBjb2VyY2UgdG8gYjY0IHN0cmluZzogXCIrZ29vZy50eXBlT2YoZSkpLG51bGwpfSxqc3BiLk1lc3NhZ2UuYnl0ZXNBc1U4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHxlIGluc3RhbmNlb2YgVWludDhBcnJheT9lOlwic3RyaW5nXCI9PXR5cGVvZiBlP2dvb2cuY3J5cHQuYmFzZTY0LmRlY29kZVN0cmluZ1RvVWludDhBcnJheShlKTooZ29vZy5hc3NlcnRzLmZhaWwoXCJDYW5ub3QgY29lcmNlIHRvIFVpbnQ4QXJyYXk6IFwiK2dvb2cudHlwZU9mKGUpKSxudWxsKX0sanNwYi5NZXNzYWdlLmJ5dGVzTGlzdEFzQjY0PWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuYXNzZXJ0Q29uc2lzdGVudFR5cGVzXyhlKSxlLmxlbmd0aCYmXCJzdHJpbmdcIiE9dHlwZW9mIGVbMF0/Z29vZy5hcnJheS5tYXAoZSxqc3BiLk1lc3NhZ2UuYnl0ZXNBc0I2NCk6ZX0sanNwYi5NZXNzYWdlLmJ5dGVzTGlzdEFzVTg9ZnVuY3Rpb24oZSl7cmV0dXJuIGpzcGIuTWVzc2FnZS5hc3NlcnRDb25zaXN0ZW50VHlwZXNfKGUpLCFlLmxlbmd0aHx8ZVswXWluc3RhbmNlb2YgVWludDhBcnJheT9lOmdvb2cuYXJyYXkubWFwKGUsanNwYi5NZXNzYWdlLmJ5dGVzQXNVOCl9LGpzcGIuTWVzc2FnZS5hc3NlcnRDb25zaXN0ZW50VHlwZXNfPWZ1bmN0aW9uKGUpe2lmKGdvb2cuREVCVUcmJmUmJjE8ZS5sZW5ndGgpe3ZhciB0PWdvb2cudHlwZU9mKGVbMF0pO2dvb2cuYXJyYXkuZm9yRWFjaChlLChmdW5jdGlvbihlKXtnb29nLnR5cGVPZihlKSE9dCYmZ29vZy5hc3NlcnRzLmZhaWwoXCJJbmNvbnNpc3RlbnQgdHlwZSBpbiBKU1BCIHJlcGVhdGVkIGZpZWxkIGFycmF5LiBHb3QgXCIrZ29vZy50eXBlT2YoZSkrXCIgZXhwZWN0ZWQgXCIrdCl9KSl9fSxqc3BiLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIG51bGw9PShlPWpzcGIuTWVzc2FnZS5nZXRGaWVsZChlLHQpKT9vOmV9LGpzcGIuTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIG51bGw9PShlPWpzcGIuTWVzc2FnZS5nZXRCb29sZWFuRmllbGQoZSx0KSk/bzplfSxqc3BiLk1lc3NhZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBudWxsPT0oZT1qc3BiLk1lc3NhZ2UuZ2V0T3B0aW9uYWxGbG9hdGluZ1BvaW50RmllbGQoZSx0KSk/bzplfSxqc3BiLk1lc3NhZ2UuZ2V0RmllbGRQcm90bzM9anNwYi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQsanNwYi5NZXNzYWdlLmdldE1hcEZpZWxkPWZ1bmN0aW9uKGUsdCxvLHIpe2lmKGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pLHQgaW4gZS53cmFwcGVyc18pcmV0dXJuIGUud3JhcHBlcnNfW3RdO3ZhciBuPWpzcGIuTWVzc2FnZS5nZXRGaWVsZChlLHQpO2lmKCFuKXtpZihvKXJldHVybjtuPVtdLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLHQsbil9cmV0dXJuIGUud3JhcHBlcnNfW3RdPW5ldyBqc3BiLk1hcChuLHIpfSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksdDxlLnBpdm90Xz9lLmFycmF5W2pzcGIuTWVzc2FnZS5nZXRJbmRleF8oZSx0KV09bzooanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0XyhlKSxlLmV4dGVuc2lvbk9iamVjdF9bdF09byksZX0sanNwYi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkSWdub3JpbmdEZWZhdWx0XyhlLHQsbywwKX0sanNwYi5NZXNzYWdlLnNldFByb3RvM0Zsb2F0RmllbGQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBqc3BiLk1lc3NhZ2Uuc2V0RmllbGRJZ25vcmluZ0RlZmF1bHRfKGUsdCxvLDApfSxqc3BiLk1lc3NhZ2Uuc2V0UHJvdG8zQm9vbGVhbkZpZWxkPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkSWdub3JpbmdEZWZhdWx0XyhlLHQsbywhMSl9LGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG8sXCJcIil9LGpzcGIuTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4ganNwYi5NZXNzYWdlLnNldEZpZWxkSWdub3JpbmdEZWZhdWx0XyhlLHQsbyxcIlwiKX0sanNwYi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG8sMCl9LGpzcGIuTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdJbnRGaWVsZD1mdW5jdGlvbihlLHQsbyl7cmV0dXJuIGpzcGIuTWVzc2FnZS5zZXRGaWVsZElnbm9yaW5nRGVmYXVsdF8oZSx0LG8sXCIwXCIpfSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGRJZ25vcmluZ0RlZmF1bHRfPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksbyE9PXI/anNwYi5NZXNzYWdlLnNldEZpZWxkKGUsdCxvKTp0PGUucGl2b3RfP2UuYXJyYXlbanNwYi5NZXNzYWdlLmdldEluZGV4XyhlLHQpXT1udWxsOihqc3BiLk1lc3NhZ2UubWF5YmVJbml0RW1wdHlFeHRlbnNpb25PYmplY3RfKGUpLGRlbGV0ZSBlLmV4dGVuc2lvbk9iamVjdF9bdF0pLGV9LGpzcGIuTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQ9ZnVuY3Rpb24oZSx0LG8scil7cmV0dXJuIGdvb2cuYXNzZXJ0cy5hc3NlcnRJbnN0YW5jZW9mKGUsanNwYi5NZXNzYWdlKSx0PWpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKGUsdCksbnVsbCE9cj90LnNwbGljZShyLDAsbyk6dC5wdXNoKG8pLGV9LGpzcGIuTWVzc2FnZS5zZXRPbmVvZkZpZWxkPWZ1bmN0aW9uKGUsdCxvLHIpe3JldHVybiBnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksKG89anNwYi5NZXNzYWdlLmNvbXB1dGVPbmVvZkNhc2UoZSxvKSkmJm8hPT10JiZ2b2lkIDAhPT1yJiYoZS53cmFwcGVyc18mJm8gaW4gZS53cmFwcGVyc18mJihlLndyYXBwZXJzX1tvXT12b2lkIDApLGpzcGIuTWVzc2FnZS5zZXRGaWVsZChlLG8sdm9pZCAwKSksanNwYi5NZXNzYWdlLnNldEZpZWxkKGUsdCxyKX0sanNwYi5NZXNzYWdlLmNvbXB1dGVPbmVvZkNhc2U9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8scixuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBzPXRbbl0saT1qc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSxzKTtudWxsIT1pJiYobz1zLHI9aSxqc3BiLk1lc3NhZ2Uuc2V0RmllbGQoZSxzLHZvaWQgMCkpfXJldHVybiBvPyhqc3BiLk1lc3NhZ2Uuc2V0RmllbGQoZSxvLHIpLG8pOjB9LGpzcGIuTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LG8scil7aWYoZS53cmFwcGVyc198fChlLndyYXBwZXJzXz17fSksIWUud3JhcHBlcnNfW29dKXt2YXIgbj1qc3BiLk1lc3NhZ2UuZ2V0RmllbGQoZSxvKTsocnx8bikmJihlLndyYXBwZXJzX1tvXT1uZXcgdChuKSl9cmV0dXJuIGUud3JhcHBlcnNfW29dfSxqc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBqc3BiLk1lc3NhZ2Uud3JhcFJlcGVhdGVkRmllbGRfKGUsdCxvKSwodD1lLndyYXBwZXJzX1tvXSk9PWpzcGIuTWVzc2FnZS5FTVBUWV9MSVNUX1NFTlRJTkVMXyYmKHQ9ZS53cmFwcGVyc19bb109W10pLHR9LGpzcGIuTWVzc2FnZS53cmFwUmVwZWF0ZWRGaWVsZF89ZnVuY3Rpb24oZSx0LG8pe2lmKGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pLCFlLndyYXBwZXJzX1tvXSl7Zm9yKHZhciByPWpzcGIuTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKGUsbyksbj1bXSxzPTA7czxyLmxlbmd0aDtzKyspbltzXT1uZXcgdChyW3NdKTtlLndyYXBwZXJzX1tvXT1ufX0sanNwYi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZD1mdW5jdGlvbihlLHQsbyl7Z29vZy5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2YoZSxqc3BiLk1lc3NhZ2UpLGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pO3ZhciByPW8/by50b0FycmF5KCk6bztyZXR1cm4gZS53cmFwcGVyc19bdF09byxqc3BiLk1lc3NhZ2Uuc2V0RmllbGQoZSx0LHIpfSxqc3BiLk1lc3NhZ2Uuc2V0T25lb2ZXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LG8scil7Z29vZy5hc3NlcnRzLmFzc2VydEluc3RhbmNlb2YoZSxqc3BiLk1lc3NhZ2UpLGUud3JhcHBlcnNffHwoZS53cmFwcGVyc189e30pO3ZhciBuPXI/ci50b0FycmF5KCk6cjtyZXR1cm4gZS53cmFwcGVyc19bdF09cixqc3BiLk1lc3NhZ2Uuc2V0T25lb2ZGaWVsZChlLHQsbyxuKX0sanNwYi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxvKXtnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZihlLGpzcGIuTWVzc2FnZSksZS53cmFwcGVyc198fChlLndyYXBwZXJzXz17fSksbz1vfHxbXTtmb3IodmFyIHI9W10sbj0wO248by5sZW5ndGg7bisrKXJbbl09b1tuXS50b0FycmF5KCk7cmV0dXJuIGUud3JhcHBlcnNfW3RdPW8sanNwYi5NZXNzYWdlLnNldEZpZWxkKGUsdCxyKX0sanNwYi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LG8scixuKXtqc3BiLk1lc3NhZ2Uud3JhcFJlcGVhdGVkRmllbGRfKGUscix0KTt2YXIgcz1lLndyYXBwZXJzX1t0XTtyZXR1cm4gc3x8KHM9ZS53cmFwcGVyc19bdF09W10pLG89b3x8bmV3IHIsZT1qc3BiLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZChlLHQpLG51bGwhPW4/KHMuc3BsaWNlKG4sMCxvKSxlLnNwbGljZShuLDAsby50b0FycmF5KCkpKToocy5wdXNoKG8pLGUucHVzaChvLnRvQXJyYXkoKSkpLG99LGpzcGIuTWVzc2FnZS50b01hcD1mdW5jdGlvbihlLHQsbyxyKXtmb3IodmFyIG49e30scz0wO3M8ZS5sZW5ndGg7cysrKW5bdC5jYWxsKGVbc10pXT1vP28uY2FsbChlW3NdLHIsZVtzXSk6ZVtzXTtyZXR1cm4gbn0sanNwYi5NZXNzYWdlLnByb3RvdHlwZS5zeW5jTWFwRmllbGRzXz1mdW5jdGlvbigpe2lmKHRoaXMud3JhcHBlcnNfKWZvcih2YXIgZSBpbiB0aGlzLndyYXBwZXJzXyl7dmFyIHQ9dGhpcy53cmFwcGVyc19bZV07aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0W29dJiZ0W29dLnRvQXJyYXkoKTtlbHNlIHQmJnQudG9BcnJheSgpfX0sanNwYi5NZXNzYWdlLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3luY01hcEZpZWxkc18oKSx0aGlzLmFycmF5fSxqc3BiLk1lc3NhZ2UuR0VORVJBVEVfVE9fU1RSSU5HJiYoanNwYi5NZXNzYWdlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN5bmNNYXBGaWVsZHNfKCksdGhpcy5hcnJheS50b1N0cmluZygpfSksanNwYi5NZXNzYWdlLnByb3RvdHlwZS5nZXRFeHRlbnNpb249ZnVuY3Rpb24oZSl7aWYodGhpcy5leHRlbnNpb25PYmplY3RfKXt0aGlzLndyYXBwZXJzX3x8KHRoaXMud3JhcHBlcnNfPXt9KTt2YXIgdD1lLmZpZWxkSW5kZXg7aWYoZS5pc1JlcGVhdGVkKXtpZihlLmlzTWVzc2FnZVR5cGUoKSlyZXR1cm4gdGhpcy53cmFwcGVyc19bdF18fCh0aGlzLndyYXBwZXJzX1t0XT1nb29nLmFycmF5Lm1hcCh0aGlzLmV4dGVuc2lvbk9iamVjdF9bdF18fFtdLChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUuY3Rvcih0KX0pKSksdGhpcy53cmFwcGVyc19bdF19ZWxzZSBpZihlLmlzTWVzc2FnZVR5cGUoKSlyZXR1cm4hdGhpcy53cmFwcGVyc19bdF0mJnRoaXMuZXh0ZW5zaW9uT2JqZWN0X1t0XSYmKHRoaXMud3JhcHBlcnNfW3RdPW5ldyBlLmN0b3IodGhpcy5leHRlbnNpb25PYmplY3RfW3RdKSksdGhpcy53cmFwcGVyc19bdF07cmV0dXJuIHRoaXMuZXh0ZW5zaW9uT2JqZWN0X1t0XX19LGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuc2V0RXh0ZW5zaW9uPWZ1bmN0aW9uKGUsdCl7dGhpcy53cmFwcGVyc198fCh0aGlzLndyYXBwZXJzXz17fSksanNwYi5NZXNzYWdlLm1heWJlSW5pdEVtcHR5RXh0ZW5zaW9uT2JqZWN0Xyh0aGlzKTt2YXIgbz1lLmZpZWxkSW5kZXg7cmV0dXJuIGUuaXNSZXBlYXRlZD8odD10fHxbXSxlLmlzTWVzc2FnZVR5cGUoKT8odGhpcy53cmFwcGVyc19bb109dCx0aGlzLmV4dGVuc2lvbk9iamVjdF9bb109Z29vZy5hcnJheS5tYXAodCwoZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9BcnJheSgpfSkpKTp0aGlzLmV4dGVuc2lvbk9iamVjdF9bb109dCk6ZS5pc01lc3NhZ2VUeXBlKCk/KHRoaXMud3JhcHBlcnNfW29dPXQsdGhpcy5leHRlbnNpb25PYmplY3RfW29dPXQ/dC50b0FycmF5KCk6dCk6dGhpcy5leHRlbnNpb25PYmplY3RfW29dPXQsdGhpc30sanNwYi5NZXNzYWdlLmRpZmZlcmVuY2U9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yKSl0aHJvdyBFcnJvcihcIk1lc3NhZ2VzIGhhdmUgZGlmZmVyZW50IHR5cGVzLlwiKTt2YXIgbz1lLnRvQXJyYXkoKTt0PXQudG9BcnJheSgpO3ZhciByPVtdLG49MCxzPW8ubGVuZ3RoPnQubGVuZ3RoP28ubGVuZ3RoOnQubGVuZ3RoO2ZvcihlLmdldEpzUGJNZXNzYWdlSWQoKSYmKHJbMF09ZS5nZXRKc1BiTWVzc2FnZUlkKCksbj0xKTtuPHM7bisrKWpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzKG9bbl0sdFtuXSl8fChyW25dPXRbbl0pO3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihyKX0sanNwYi5NZXNzYWdlLmVxdWFscz1mdW5jdGlvbihlLHQpe3JldHVybiBlPT10fHwhKCFlfHwhdCkmJmUgaW5zdGFuY2VvZiB0LmNvbnN0cnVjdG9yJiZqc3BiLk1lc3NhZ2UuY29tcGFyZUZpZWxkcyhlLnRvQXJyYXkoKSx0LnRvQXJyYXkoKSl9LGpzcGIuTWVzc2FnZS5jb21wYXJlRXh0ZW5zaW9ucz1mdW5jdGlvbihlLHQpe2U9ZXx8e30sdD10fHx7fTt2YXIgbyxyPXt9O2ZvcihvIGluIGUpcltvXT0wO2ZvcihvIGluIHQpcltvXT0wO2ZvcihvIGluIHIpaWYoIWpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzKGVbb10sdFtvXSkpcmV0dXJuITE7cmV0dXJuITB9LGpzcGIuTWVzc2FnZS5jb21wYXJlRmllbGRzPWZ1bmN0aW9uKGUsdCl7aWYoZT09dClyZXR1cm4hMDtpZighZ29vZy5pc09iamVjdChlKXx8IWdvb2cuaXNPYmplY3QodCkpcmV0dXJuISEoXCJudW1iZXJcIj09dHlwZW9mIGUmJmlzTmFOKGUpfHxcIm51bWJlclwiPT10eXBlb2YgdCYmaXNOYU4odCkpJiZTdHJpbmcoZSk9PVN0cmluZyh0KTtpZihlLmNvbnN0cnVjdG9yIT10LmNvbnN0cnVjdG9yKXJldHVybiExO2lmKGpzcGIuTWVzc2FnZS5TVVBQT1JUU19VSU5UOEFSUkFZXyYmZS5jb25zdHJ1Y3Rvcj09PVVpbnQ4QXJyYXkpe2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZihlW29dIT10W29dKXJldHVybiExO3JldHVybiEwfWlmKGUuY29uc3RydWN0b3I9PT1BcnJheSl7dmFyIHI9dm9pZCAwLG49dm9pZCAwLHM9TWF0aC5tYXgoZS5sZW5ndGgsdC5sZW5ndGgpO2ZvcihvPTA7bzxzO28rKyl7dmFyIGk9ZVtvXSxhPXRbb107aWYoaSYmaS5jb25zdHJ1Y3Rvcj09T2JqZWN0JiYoZ29vZy5hc3NlcnRzLmFzc2VydCh2b2lkIDA9PT1yKSxnb29nLmFzc2VydHMuYXNzZXJ0KG89PT1lLmxlbmd0aC0xKSxyPWksaT12b2lkIDApLGEmJmEuY29uc3RydWN0b3I9PU9iamVjdCYmKGdvb2cuYXNzZXJ0cy5hc3NlcnQodm9pZCAwPT09biksZ29vZy5hc3NlcnRzLmFzc2VydChvPT09dC5sZW5ndGgtMSksbj1hLGE9dm9pZCAwKSwhanNwYi5NZXNzYWdlLmNvbXBhcmVGaWVsZHMoaSxhKSlyZXR1cm4hMX1yZXR1cm4hciYmIW58fChyPXJ8fHt9LG49bnx8e30sanNwYi5NZXNzYWdlLmNvbXBhcmVFeHRlbnNpb25zKHIsbikpfWlmKGUuY29uc3RydWN0b3I9PT1PYmplY3QpcmV0dXJuIGpzcGIuTWVzc2FnZS5jb21wYXJlRXh0ZW5zaW9ucyhlLHQpO3Rocm93IEVycm9yKFwiSW52YWxpZCB0eXBlIGluIEpTUEIgYXJyYXlcIil9LGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuY2xvbmVNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIGpzcGIuTWVzc2FnZS5jbG9uZU1lc3NhZ2UodGhpcyl9LGpzcGIuTWVzc2FnZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4ganNwYi5NZXNzYWdlLmNsb25lTWVzc2FnZSh0aGlzKX0sanNwYi5NZXNzYWdlLmNsb25lPWZ1bmN0aW9uKGUpe3JldHVybiBqc3BiLk1lc3NhZ2UuY2xvbmVNZXNzYWdlKGUpfSxqc3BiLk1lc3NhZ2UuY2xvbmVNZXNzYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZS5jb25zdHJ1Y3Rvcihqc3BiLk1lc3NhZ2UuY2xvbmVfKGUudG9BcnJheSgpKSl9LGpzcGIuTWVzc2FnZS5jb3B5SW50bz1mdW5jdGlvbihlLHQpe2dvb2cuYXNzZXJ0cy5hc3NlcnRJbnN0YW5jZW9mKGUsanNwYi5NZXNzYWdlKSxnb29nLmFzc2VydHMuYXNzZXJ0SW5zdGFuY2VvZih0LGpzcGIuTWVzc2FnZSksZ29vZy5hc3NlcnRzLmFzc2VydChlLmNvbnN0cnVjdG9yPT10LmNvbnN0cnVjdG9yLFwiQ29weSBzb3VyY2UgYW5kIHRhcmdldCBtZXNzYWdlIHNob3VsZCBoYXZlIHRoZSBzYW1lIHR5cGUuXCIpLGU9anNwYi5NZXNzYWdlLmNsb25lKGUpO2Zvcih2YXIgbz10LnRvQXJyYXkoKSxyPWUudG9BcnJheSgpLG49by5sZW5ndGg9MDtuPHIubGVuZ3RoO24rKylvW25dPXJbbl07dC53cmFwcGVyc189ZS53cmFwcGVyc18sdC5leHRlbnNpb25PYmplY3RfPWUuZXh0ZW5zaW9uT2JqZWN0X30sanNwYi5NZXNzYWdlLmNsb25lXz1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHQ9QXJyYXkoZS5sZW5ndGgpLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIHI9ZVtvXTtudWxsIT1yJiYodFtvXT1cIm9iamVjdFwiPT10eXBlb2Ygcj9qc3BiLk1lc3NhZ2UuY2xvbmVfKGdvb2cuYXNzZXJ0cy5hc3NlcnQocikpOnIpfXJldHVybiB0fWlmKGpzcGIuTWVzc2FnZS5TVVBQT1JUU19VSU5UOEFSUkFZXyYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUpO2ZvcihvIGluIHQ9e30sZSludWxsIT0ocj1lW29dKSYmKHRbb109XCJvYmplY3RcIj09dHlwZW9mIHI/anNwYi5NZXNzYWdlLmNsb25lXyhnb29nLmFzc2VydHMuYXNzZXJ0KHIpKTpyKTtyZXR1cm4gdH0sanNwYi5NZXNzYWdlLnJlZ2lzdGVyTWVzc2FnZVR5cGU9ZnVuY3Rpb24oZSx0KXt0Lm1lc3NhZ2VJZD1lfSxqc3BiLk1lc3NhZ2UubWVzc2FnZVNldEV4dGVuc2lvbnM9e30sanNwYi5NZXNzYWdlLm1lc3NhZ2VTZXRFeHRlbnNpb25zQmluYXJ5PXt9LGpzcGIuRXhwb3J0PXt9LGV4cG9ydHMuTWFwPWpzcGIuTWFwLGV4cG9ydHMuTWVzc2FnZT1qc3BiLk1lc3NhZ2UsZXhwb3J0cy5CaW5hcnlSZWFkZXI9anNwYi5CaW5hcnlSZWFkZXIsZXhwb3J0cy5CaW5hcnlXcml0ZXI9anNwYi5CaW5hcnlXcml0ZXIsZXhwb3J0cy5FeHRlbnNpb25GaWVsZEluZm89anNwYi5FeHRlbnNpb25GaWVsZEluZm8sZXhwb3J0cy5FeHRlbnNpb25GaWVsZEJpbmFyeUluZm89anNwYi5FeHRlbnNpb25GaWVsZEJpbmFyeUluZm8sZXhwb3J0cy5leHBvcnRTeW1ib2w9Z29vZy5leHBvcnRTeW1ib2wsZXhwb3J0cy5pbmhlcml0cz1nb29nLmluaGVyaXRzLGV4cG9ydHMub2JqZWN0PXtleHRlbmQ6Z29vZy5vYmplY3QuZXh0ZW5kfSxleHBvcnRzLnR5cGVPZj1nb29nLnR5cGVPZn0sNDA6ZnVuY3Rpb24oZSx0LG8pe3ZhciByO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdDxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW3QrK119Ontkb25lOiEwfX19dmFyIHM9XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxvKXtlIT1BcnJheS5wcm90b3R5cGUmJmUhPU9iamVjdC5wcm90b3R5cGUmJihlW3RdPW8udmFsdWUpfSxpPWZ1bmN0aW9uKGUpe2U9W1wib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyxcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZixcIm9iamVjdFwiPT10eXBlb2Ygby5nJiZvLmcsZV07Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDsrK3Qpe3ZhciByPWVbdF07aWYociYmci5NYXRoPT1NYXRoKXJldHVybiByfXRocm93IEVycm9yKFwiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdFwiKX0odGhpcyk7ZnVuY3Rpb24gYSgpe2E9ZnVuY3Rpb24oKXt9LGkuU3ltYm9sfHwoaS5TeW1ib2w9dSl9ZnVuY3Rpb24gZyhlLHQpe3RoaXMuYT1lLHModGhpcyxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSl9Zy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTt2YXIgbCx1PShsPTAsZnVuY3Rpb24gZSh0KXtpZih0aGlzIGluc3RhbmNlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3JldHVybiBuZXcgZyhcImpzY29tcF9zeW1ib2xfXCIrKHR8fFwiXCIpK1wiX1wiK2wrKyx0KX0pO2Z1bmN0aW9uIGMoKXthKCk7dmFyIGU9aS5TeW1ib2wuaXRlcmF0b3I7ZXx8KGU9aS5TeW1ib2wuaXRlcmF0b3I9aS5TeW1ib2woXCJTeW1ib2wuaXRlcmF0b3JcIikpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIEFycmF5LnByb3RvdHlwZVtlXSYmcyhBcnJheS5wcm90b3R5cGUsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBjKCksKGU9e25leHQ6ZX0pW2kuU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlfShuKHRoaXMpKX19KSxjPWZ1bmN0aW9uKCl7fX1mdW5jdGlvbiBwKGUpe3ZhciB0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmZVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiB0P3QuY2FsbChlKTp7bmV4dDpuKGUpfX12YXIgZixkPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/T2JqZWN0LmNyZWF0ZTpmdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZT1lLG5ldyB0fTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2YpZj1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgaDtlOnt2YXIgeT17fTt0cnl7eS5fX3Byb3RvX189e1Y6ITB9LGg9eS5WO2JyZWFrIGV9Y2F0Y2goZWUpe31oPSExfWY9aD9mdW5jdGlvbihlLHQpe2lmKGUuX19wcm90b19fPXQsZS5fX3Byb3RvX18hPT10KXRocm93IG5ldyBUeXBlRXJyb3IoZStcIiBpcyBub3QgZXh0ZW5zaWJsZVwiKTtyZXR1cm4gZX06bnVsbH12YXIgXz1mO2Z1bmN0aW9uIGIoZSx0KXtpZihlLnByb3RvdHlwZT1kKHQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLF8pXyhlLHQpO2Vsc2UgZm9yKHZhciBvIGluIHQpaWYoXCJwcm90b3R5cGVcIiE9bylpZihPYmplY3QuZGVmaW5lUHJvcGVydGllcyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG8pO3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8scil9ZWxzZSBlW29dPXRbb107ZS5PPXQucHJvdG90eXBlfWZ1bmN0aW9uIG0oZSx0KXtpZih0KXt2YXIgbz1pO2U9ZS5zcGxpdChcIi5cIik7Zm9yKHZhciByPTA7cjxlLmxlbmd0aC0xO3IrKyl7dmFyIG49ZVtyXTtuIGluIG98fChvW25dPXt9KSxvPW9bbl19KHQ9dChyPW9bZT1lW2UubGVuZ3RoLTFdXSkpIT1yJiZudWxsIT10JiZzKG8sZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KX19bShcIkFycmF5LnByb3RvdHlwZS5rZXlzXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLHQpe2MoKSxlIGluc3RhbmNlb2YgU3RyaW5nJiYoZSs9XCJcIik7dmFyIG89MCxyPXtuZXh0OmZ1bmN0aW9uKCl7aWYobzxlLmxlbmd0aCl7dmFyIG49bysrO3JldHVybnt2YWx1ZTp0KG4sZVtuXSksZG9uZTohMX19cmV0dXJuIHIubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOiEwLHZhbHVlOnZvaWQgMH19LHIubmV4dCgpfX07cmV0dXJuIHJbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiByfSxyfSh0aGlzLChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX19KSksbShcIkFycmF5LnByb3RvdHlwZS5maW5kXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe2U6e3ZhciBvPXRoaXM7byBpbnN0YW5jZW9mIFN0cmluZyYmKG89U3RyaW5nKG8pKTtmb3IodmFyIHI9by5sZW5ndGgsbj0wO248cjtuKyspe3ZhciBzPW9bbl07aWYoZS5jYWxsKHQscyxuLG8pKXtlPXM7YnJlYWsgZX19ZT12b2lkIDB9cmV0dXJuIGV9fSkpLG0oXCJPYmplY3QuaXNcIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGV8fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10PzAhPT1lfHwxL2U9PTEvdDplIT1lJiZ0IT10fX0pKSxtKFwiQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXCIsKGZ1bmN0aW9uKGUpe3JldHVybiBlfHxmdW5jdGlvbihlLHQpe3ZhciBvPXRoaXM7byBpbnN0YW5jZW9mIFN0cmluZyYmKG89U3RyaW5nKG8pKTt2YXIgcj1vLmxlbmd0aDtmb3IoMD4odD10fHwwKSYmKHQ9TWF0aC5tYXgodCtyLDApKTt0PHI7dCsrKXt2YXIgbj1vW3RdO2lmKG49PT1lfHxPYmplY3QuaXMobixlKSlyZXR1cm4hMH1yZXR1cm4hMX19KSksbShcIlByb21pc2VcIiwoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXt0aGlzLmI9MCx0aGlzLmM9dm9pZCAwLHRoaXMuYT1bXTt2YXIgdD10aGlzLmYoKTt0cnl7ZSh0LnJlc29sdmUsdC5yZWplY3QpfWNhdGNoKGUpe3QucmVqZWN0KGUpfX1mdW5jdGlvbiBvKCl7dGhpcy5hPW51bGx9ZnVuY3Rpb24gcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHQ/ZTpuZXcgdCgoZnVuY3Rpb24odCl7dChlKX0pKX1pZihlKXJldHVybiBlO28ucHJvdG90eXBlLmI9ZnVuY3Rpb24oZSl7aWYobnVsbD09dGhpcy5hKXt0aGlzLmE9W107dmFyIHQ9dGhpczt0aGlzLmMoKGZ1bmN0aW9uKCl7dC5nKCl9KSl9dGhpcy5hLnB1c2goZSl9O3ZhciBuPWkuc2V0VGltZW91dDtvLnByb3RvdHlwZS5jPWZ1bmN0aW9uKGUpe24oZSwwKX0sby5wcm90b3R5cGUuZz1mdW5jdGlvbigpe2Zvcig7dGhpcy5hJiZ0aGlzLmEubGVuZ3RoOyl7dmFyIGU9dGhpcy5hO3RoaXMuYT1bXTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoOysrdCl7dmFyIG89ZVt0XTtlW3RdPW51bGw7dHJ5e28oKX1jYXRjaChlKXt0aGlzLmYoZSl9fX10aGlzLmE9bnVsbH0sby5wcm90b3R5cGUuZj1mdW5jdGlvbihlKXt0aGlzLmMoKGZ1bmN0aW9uKCl7dGhyb3cgZX0pKX0sdC5wcm90b3R5cGUuZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe298fChvPSEwLGUuY2FsbCh0LHIpKX19dmFyIHQ9dGhpcyxvPSExO3JldHVybntyZXNvbHZlOmUodGhpcy5zKSxyZWplY3Q6ZSh0aGlzLmcpfX0sdC5wcm90b3R5cGUucz1mdW5jdGlvbihlKXtpZihlPT09dGhpcyl0aGlzLmcobmV3IFR5cGVFcnJvcihcIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGZcIikpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHQpdGhpcy52KGUpO2Vsc2V7ZTpzd2l0Y2godHlwZW9mIGUpe2Nhc2VcIm9iamVjdFwiOnZhciBvPW51bGwhPWU7YnJlYWsgZTtjYXNlXCJmdW5jdGlvblwiOm89ITA7YnJlYWsgZTtkZWZhdWx0Om89ITF9bz90aGlzLm0oZSk6dGhpcy5oKGUpfX0sdC5wcm90b3R5cGUubT1mdW5jdGlvbihlKXt2YXIgdD12b2lkIDA7dHJ5e3Q9ZS50aGVufWNhdGNoKGUpe3JldHVybiB2b2lkIHRoaXMuZyhlKX1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3RoaXMudyh0LGUpOnRoaXMuaChlKX0sdC5wcm90b3R5cGUuZz1mdW5jdGlvbihlKXt0aGlzLmkoMixlKX0sdC5wcm90b3R5cGUuaD1mdW5jdGlvbihlKXt0aGlzLmkoMSxlKX0sdC5wcm90b3R5cGUuaT1mdW5jdGlvbihlLHQpe2lmKDAhPXRoaXMuYil0aHJvdyBFcnJvcihcIkNhbm5vdCBzZXR0bGUoXCIrZStcIiwgXCIrdCtcIik6IFByb21pc2UgYWxyZWFkeSBzZXR0bGVkIGluIHN0YXRlXCIrdGhpcy5iKTt0aGlzLmI9ZSx0aGlzLmM9dCx0aGlzLmwoKX0sdC5wcm90b3R5cGUubD1mdW5jdGlvbigpe2lmKG51bGwhPXRoaXMuYSl7Zm9yKHZhciBlPTA7ZTx0aGlzLmEubGVuZ3RoOysrZSlzLmIodGhpcy5hW2VdKTt0aGlzLmE9bnVsbH19O3ZhciBzPW5ldyBvO3JldHVybiB0LnByb3RvdHlwZS52PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZigpO2UuRih0LnJlc29sdmUsdC5yZWplY3QpfSx0LnByb3RvdHlwZS53PWZ1bmN0aW9uKGUsdCl7dmFyIG89dGhpcy5mKCk7dHJ5e2UuY2FsbCh0LG8ucmVzb2x2ZSxvLnJlamVjdCl9Y2F0Y2goZSl7by5yZWplY3QoZSl9fSx0LnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsbyl7ZnVuY3Rpb24gcihlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZnVuY3Rpb24odCl7dHJ5e24oZSh0KSl9Y2F0Y2goZSl7cyhlKX19OnR9dmFyIG4scyxpPW5ldyB0KChmdW5jdGlvbihlLHQpe249ZSxzPXR9KSk7cmV0dXJuIHRoaXMuRihyKGUsbikscihvLHMpKSxpfSx0LnByb3RvdHlwZS5jYXRjaD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCxlKX0sdC5wcm90b3R5cGUuRj1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oKXtzd2l0Y2goci5iKXtjYXNlIDE6ZShyLmMpO2JyZWFrO2Nhc2UgMjp0KHIuYyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihcIlVuZXhwZWN0ZWQgc3RhdGU6IFwiK3IuYil9fXZhciByPXRoaXM7bnVsbD09dGhpcy5hP3MuYihvKTp0aGlzLmEucHVzaChvKX0sdC5yZXNvbHZlPXIsdC5yZWplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0LG8pe28oZSl9KSl9LHQucmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHQoKGZ1bmN0aW9uKHQsbyl7Zm9yKHZhciBuPXAoZSkscz1uLm5leHQoKTshcy5kb25lO3M9bi5uZXh0KCkpcihzLnZhbHVlKS5GKHQsbyl9KSl9LHQuYWxsPWZ1bmN0aW9uKGUpe3ZhciBvPXAoZSksbj1vLm5leHQoKTtyZXR1cm4gbi5kb25lP3IoW10pOm5ldyB0KChmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKG8pe2lbdF09bywwPT0tLWEmJmUoaSl9fXZhciBpPVtdLGE9MDtkb3tpLnB1c2godm9pZCAwKSxhKysscihuLnZhbHVlKS5GKHMoaS5sZW5ndGgtMSksdCksbj1vLm5leHQoKX13aGlsZSghbi5kb25lKX0pKX0sdH0pKTt2YXIgUz1TfHx7fSxFPXRoaXN8fHNlbGY7ZnVuY3Rpb24gVChlLHQpe2U9ZS5zcGxpdChcIi5cIiksdD10fHxFO2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKWlmKG51bGw9PSh0PXRbZVtvXV0pKXJldHVybiBudWxsO3JldHVybiB0fWZ1bmN0aW9uIEEoKXt9ZnVuY3Rpb24gdihlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm5cIm9iamVjdFwiPT10JiZudWxsIT1lfHxcImZ1bmN0aW9uXCI9PXR9dmFyIEk9XCJjbG9zdXJlX3VpZF9cIisoMWU5Kk1hdGgucmFuZG9tKCk+Pj4wKSxSPTA7ZnVuY3Rpb24gTyhlLHQsbyl7cmV0dXJuIGUuY2FsbC5hcHBseShlLmJpbmQsYXJndW1lbnRzKX1mdW5jdGlvbiBqKGUsdCxvKXtpZighZSl0aHJvdyBFcnJvcigpO2lmKDI8YXJndW1lbnRzLmxlbmd0aCl7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KG8sciksZS5hcHBseSh0LG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHcoZSx0LG8pe3JldHVybih3PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kJiYtMSE9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQudG9TdHJpbmcoKS5pbmRleE9mKFwibmF0aXZlIGNvZGVcIik/TzpqKS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTihlLHQpe2Z1bmN0aW9uIG8oKXt9by5wcm90b3R5cGU9dC5wcm90b3R5cGUsZS5PPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyBvLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gQygpe3RoaXMuYT17fX1mdW5jdGlvbiBVKGUsdCxvLHIpe3RoaXMuZj1lLHRoaXMuYz10LHRoaXMuYj1vLHRoaXMuYT1yfWZ1bmN0aW9uIE0oZSx0LG8scil7bz12b2lkIDA9PT1vP3t9Om8sdGhpcy5jPWUsdGhpcy5hPW8sdGhpcy5iPXQsdGhpcy5mPXZvaWQgMD09PXI/bnVsbDpyfWZ1bmN0aW9uIEwoZSx0LG8pe289dm9pZCAwPT09bz97fTpvO3ZhciByPXZvaWQgMD09PXI/bmV3IEM6cjtyZXR1cm4gbmV3IFUodCxlLG8scil9ZnVuY3Rpb24gRChlLHQsbyl7bz12b2lkIDA9PT1vP3t9Om8sdD1FcnJvci5jYWxsKHRoaXMsdCksdGhpcy5tZXNzYWdlPXQubWVzc2FnZSxcInN0YWNrXCJpbiB0JiYodGhpcy5zdGFjaz10LnN0YWNrKSx0aGlzLmNvZGU9ZSx0aGlzLm1ldGFkYXRhPW99ZnVuY3Rpb24gQihlKXt0aGlzLmE9ZX1mdW5jdGlvbiBQKGUpe2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsUCk7ZWxzZXt2YXIgdD1FcnJvcigpLnN0YWNrO3QmJih0aGlzLnN0YWNrPXQpfWUmJih0aGlzLm1lc3NhZ2U9U3RyaW5nKGUpKX1mdW5jdGlvbiBGKGUsdCl7Zm9yKHZhciBvPVwiXCIscj0oZT1lLnNwbGl0KFwiJXNcIikpLmxlbmd0aC0xLG49MDtuPHI7bisrKW8rPWVbbl0rKG48dC5sZW5ndGg/dFtuXTpcIiVzXCIpO1AuY2FsbCh0aGlzLG8rZVtyXSl9ZnVuY3Rpb24geCgpe3RoaXMubD1udWxsLHRoaXMuaT1bXSx0aGlzLm09MCx0aGlzLmI9Vyx0aGlzLmY9dGhpcy5hPXRoaXMuaD0wLHRoaXMuYz1udWxsLHRoaXMuZz0wfUMucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hW2VdfSxDLnByb3RvdHlwZS5HPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYSl9LFUucHJvdG90eXBlLmdldFJlcXVlc3RNZXNzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZn0sVS5wcm90b3R5cGUuZ2V0TWV0aG9kRGVzY3JpcHRvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN9LFUucHJvdG90eXBlLmdldE1ldGFkYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYn0sVS5wcm90b3R5cGUuZ2V0Q2FsbE9wdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfSxNLnByb3RvdHlwZS5nZXRSZXNwb25zZU1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfSxNLnByb3RvdHlwZS5nZXRNZXRhZGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9LE0ucHJvdG90eXBlLmdldE1ldGhvZERlc2NyaXB0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ifSxNLnByb3RvdHlwZS5nZXRTdGF0dXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mfSxiKEQsRXJyb3IpLEQucHJvdG90eXBlLm5hbWU9XCJScGNFcnJvclwiLEIucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJkYXRhXCI9PWV8fFwiZXJyb3JcIj09ZT90aGlzOnRoaXMuYS5vbihlLHQpfSxCLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmEucmVtb3ZlTGlzdGVuZXIoZSx0KX0sQi5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5hLmNhbmNlbCgpfSxOKFAsRXJyb3IpLFAucHJvdG90eXBlLm5hbWU9XCJDdXN0b21FcnJvclwiLE4oRixQKSxGLnByb3RvdHlwZS5uYW1lPVwiQXNzZXJ0aW9uRXJyb3JcIjt2YXIgVz0wLEg9MTI4O2Z1bmN0aW9uIFYoZSx0LG8scil7dGhyb3cgZS5iPTMsZS5sPVwiVGhlIHN0cmVhbSBpcyBicm9rZW4gQFwiK2UubStcIi9cIitvK1wiLiBFcnJvcjogXCIrcitcIi4gV2l0aCBpbnB1dDpcXG5cIit0LEVycm9yKGUubCl9dmFyIEcsaz1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihlLHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGUsdCx2b2lkIDApfTpmdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVyblwic3RyaW5nXCIhPXR5cGVvZiB0fHwxIT10Lmxlbmd0aD8tMTplLmluZGV4T2YodCwwKTtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZihvIGluIGUmJmVbb109PT10KXJldHVybiBvO3JldHVybi0xfSxZPVN0cmluZy5wcm90b3R5cGUudHJpbT9mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9OmZ1bmN0aW9uKGUpe3JldHVybi9eW1xcc1xceGEwXSooW1xcc1xcU10qPylbXFxzXFx4YTBdKiQvLmV4ZWMoZSlbMV19O2Z1bmN0aW9uIHooZSx0KXtyZXR1cm4tMSE9ZS5pbmRleE9mKHQpfWZ1bmN0aW9uIEsoZSx0KXtyZXR1cm4gZTx0Py0xOmU+dD8xOjB9ZTp7dmFyIFg9RS5uYXZpZ2F0b3I7aWYoWCl7dmFyIHE9WC51c2VyQWdlbnQ7aWYocSl7Rz1xO2JyZWFrIGV9fUc9XCJcIn12YXIgJD1cImNvbnN0cnVjdG9yIGhhc093blByb3BlcnR5IGlzUHJvdG90eXBlT2YgcHJvcGVydHlJc0VudW1lcmFibGUgdG9Mb2NhbGVTdHJpbmcgdG9TdHJpbmcgdmFsdWVPZlwiLnNwbGl0KFwiIFwiKTtmdW5jdGlvbiBaKGUpe3ZhciB0PTE7ZT1lLnNwbGl0KFwiOlwiKTtmb3IodmFyIG89W107MDx0JiZlLmxlbmd0aDspby5wdXNoKGUuc2hpZnQoKSksdC0tO3JldHVybiBlLmxlbmd0aCYmby5wdXNoKGUuam9pbihcIjpcIikpLG99ZnVuY3Rpb24gSihlKXtyZXR1cm4gSltcIiBcIl0oZSksZX1KW1wiIFwiXT1BO3ZhciBRLGVlLHRlPXooRyxcIk9wZXJhXCIpLG9lPXooRyxcIlRyaWRlbnRcIil8fHooRyxcIk1TSUVcIikscmU9eihHLFwiRWRnZVwiKSxuZT16KEcsXCJHZWNrb1wiKSYmISh6KEcudG9Mb3dlckNhc2UoKSxcIndlYmtpdFwiKSYmIXooRyxcIkVkZ2VcIikpJiYhKHooRyxcIlRyaWRlbnRcIil8fHooRyxcIk1TSUVcIikpJiYheihHLFwiRWRnZVwiKSxzZT16KEcudG9Mb3dlckNhc2UoKSxcIndlYmtpdFwiKSYmIXooRyxcIkVkZ2VcIik7ZTp7dmFyIGllPVwiXCIsYWU9KGVlPUcsbmU/L3J2OihbXlxcKTtdKykoXFwpfDspLy5leGVjKGVlKTpyZT8vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGVlKTpvZT8vXFxiKD86TVNJRXxydilbOiBdKFteXFwpO10rKShcXCl8OykvLmV4ZWMoZWUpOnNlPy9XZWJLaXRcXC8oXFxTKykvLmV4ZWMoZWUpOnRlPy8oPzpWZXJzaW9uKVsgXFwvXT8oXFxTKykvLmV4ZWMoZWUpOnZvaWQgMCk7aWYoYWUmJihpZT1hZT9hZVsxXTpcIlwiKSxvZSl7dmFyIGdlLGxlPUUuZG9jdW1lbnQ7aWYobnVsbCE9KGdlPWxlP2xlLmRvY3VtZW50TW9kZTp2b2lkIDApJiZnZT5wYXJzZUZsb2F0KGllKSl7UT1TdHJpbmcoZ2UpO2JyZWFrIGV9fVE9aWV9dmFyIHVlPXt9O2Z1bmN0aW9uIGNlKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXVlO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCw5KT90WzldOnRbOV09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCx0PVkoU3RyaW5nKFEpKS5zcGxpdChcIi5cIiksbz1ZKFwiOVwiKS5zcGxpdChcIi5cIikscj1NYXRoLm1heCh0Lmxlbmd0aCxvLmxlbmd0aCksbj0wOzA9PWUmJm48cjtuKyspe3ZhciBzPXRbbl18fFwiXCIsaT1vW25dfHxcIlwiO2Rve2lmKHM9LyhcXGQqKShcXEQqKSguKikvLmV4ZWMocyl8fFtcIlwiLFwiXCIsXCJcIixcIlwiXSxpPS8oXFxkKikoXFxEKikoLiopLy5leGVjKGkpfHxbXCJcIixcIlwiLFwiXCIsXCJcIl0sMD09c1swXS5sZW5ndGgmJjA9PWlbMF0ubGVuZ3RoKWJyZWFrO2U9SygwPT1zWzFdLmxlbmd0aD8wOnBhcnNlSW50KHNbMV0sMTApLDA9PWlbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoaVsxXSwxMCkpfHxLKDA9PXNbMl0ubGVuZ3RoLDA9PWlbMl0ubGVuZ3RoKXx8SyhzWzJdLGlbMl0pLHM9c1szXSxpPWlbM119d2hpbGUoMD09ZSl9cmV0dXJuIDA8PWV9KCl9KCl9ZnVuY3Rpb24gcGUoKXswIT1mZSYmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLEkpJiZ0aGlzW0ldfHwodGhpc1tJXT0rK1IpKSx0aGlzLks9dGhpcy5LfXZhciBmZT0wO3BlLnByb3RvdHlwZS5LPSExO3ZhciBkZT1PYmplY3QuZnJlZXplfHxmdW5jdGlvbihlKXtyZXR1cm4gZX07ZnVuY3Rpb24gaGUoZSx0KXt0aGlzLnR5cGU9ZSx0aGlzLmE9dGhpcy50YXJnZXQ9dCx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITF9aGUucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITB9O3ZhciB5ZT1mdW5jdGlvbigpe2lmKCFFLmFkZEV2ZW50TGlzdGVuZXJ8fCFPYmplY3QuZGVmaW5lUHJvcGVydHkpcmV0dXJuITE7dmFyIGU9ITEsdD1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe2U9ITB9fSk7dHJ5e0UuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixBLHQpLEUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRlc3RcIixBLHQpfWNhdGNoKGUpe31yZXR1cm4gZX0oKTtmdW5jdGlvbiBfZShlLHQpe2lmKGhlLmNhbGwodGhpcyxlP2UudHlwZTpcIlwiKSx0aGlzLnJlbGF0ZWRUYXJnZXQ9dGhpcy5hPXRoaXMudGFyZ2V0PW51bGwsdGhpcy5idXR0b249dGhpcy5zY3JlZW5ZPXRoaXMuc2NyZWVuWD10aGlzLmNsaWVudFk9dGhpcy5jbGllbnRYPTAsdGhpcy5rZXk9XCJcIix0aGlzLm1ldGFLZXk9dGhpcy5zaGlmdEtleT10aGlzLmFsdEtleT10aGlzLmN0cmxLZXk9ITEsdGhpcy5wb2ludGVySWQ9MCx0aGlzLnBvaW50ZXJUeXBlPVwiXCIsdGhpcy5jPW51bGwsZSl7dmFyIG89dGhpcy50eXBlPWUudHlwZSxyPWUuY2hhbmdlZFRvdWNoZXMmJmUuY2hhbmdlZFRvdWNoZXMubGVuZ3RoP2UuY2hhbmdlZFRvdWNoZXNbMF06bnVsbDtpZih0aGlzLnRhcmdldD1lLnRhcmdldHx8ZS5zcmNFbGVtZW50LHRoaXMuYT10LHQ9ZS5yZWxhdGVkVGFyZ2V0KXtpZihuZSl7ZTp7dHJ5e0oodC5ub2RlTmFtZSk7dmFyIG49ITA7YnJlYWsgZX1jYXRjaChlKXt9bj0hMX1ufHwodD1udWxsKX19ZWxzZVwibW91c2VvdmVyXCI9PW8/dD1lLmZyb21FbGVtZW50OlwibW91c2VvdXRcIj09byYmKHQ9ZS50b0VsZW1lbnQpO3RoaXMucmVsYXRlZFRhcmdldD10LHI/KHRoaXMuY2xpZW50WD12b2lkIDAhPT1yLmNsaWVudFg/ci5jbGllbnRYOnIucGFnZVgsdGhpcy5jbGllbnRZPXZvaWQgMCE9PXIuY2xpZW50WT9yLmNsaWVudFk6ci5wYWdlWSx0aGlzLnNjcmVlblg9ci5zY3JlZW5YfHwwLHRoaXMuc2NyZWVuWT1yLnNjcmVlbll8fDApOih0aGlzLmNsaWVudFg9dm9pZCAwIT09ZS5jbGllbnRYP2UuY2xpZW50WDplLnBhZ2VYLHRoaXMuY2xpZW50WT12b2lkIDAhPT1lLmNsaWVudFk/ZS5jbGllbnRZOmUucGFnZVksdGhpcy5zY3JlZW5YPWUuc2NyZWVuWHx8MCx0aGlzLnNjcmVlblk9ZS5zY3JlZW5ZfHwwKSx0aGlzLmJ1dHRvbj1lLmJ1dHRvbix0aGlzLmtleT1lLmtleXx8XCJcIix0aGlzLmN0cmxLZXk9ZS5jdHJsS2V5LHRoaXMuYWx0S2V5PWUuYWx0S2V5LHRoaXMuc2hpZnRLZXk9ZS5zaGlmdEtleSx0aGlzLm1ldGFLZXk9ZS5tZXRhS2V5LHRoaXMucG9pbnRlcklkPWUucG9pbnRlcklkfHwwLHRoaXMucG9pbnRlclR5cGU9XCJzdHJpbmdcIj09dHlwZW9mIGUucG9pbnRlclR5cGU/ZS5wb2ludGVyVHlwZTpiZVtlLnBvaW50ZXJUeXBlXXx8XCJcIix0aGlzLmM9ZSxlLmRlZmF1bHRQcmV2ZW50ZWQmJl9lLk8uYi5jYWxsKHRoaXMpfX1OKF9lLGhlKTt2YXIgYmU9ZGUoezI6XCJ0b3VjaFwiLDM6XCJwZW5cIiw0OlwibW91c2VcIn0pO19lLnByb3RvdHlwZS5iPWZ1bmN0aW9uKCl7X2UuTy5iLmNhbGwodGhpcyk7dmFyIGU9dGhpcy5jO2UucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOmUucmV0dXJuVmFsdWU9ITF9O3ZhciBtZT1cImNsb3N1cmVfbGlzdGVuYWJsZV9cIisoMWU2Kk1hdGgucmFuZG9tKCl8MCksU2U9MDtmdW5jdGlvbiBFZShlLHQsbyxyLG4pe3RoaXMubGlzdGVuZXI9ZSx0aGlzLnByb3h5PW51bGwsdGhpcy5zcmM9dCx0aGlzLnR5cGU9byx0aGlzLmNhcHR1cmU9ISFyLHRoaXMuSD1uLHRoaXMua2V5PSsrU2UsdGhpcy5BPXRoaXMuRD0hMX1mdW5jdGlvbiBUZShlKXtlLkE9ITAsZS5saXN0ZW5lcj1udWxsLGUucHJveHk9bnVsbCxlLnNyYz1udWxsLGUuSD1udWxsfWZ1bmN0aW9uIEFlKGUpe3RoaXMuc3JjPWUsdGhpcy5hPXt9LHRoaXMuYj0wfWZ1bmN0aW9uIHZlKGUsdCl7dmFyIG89dC50eXBlO2lmKG8gaW4gZS5hKXt2YXIgcixuPWUuYVtvXSxzPWsobix0KTsocj0wPD1zKSYmQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG4scywxKSxyJiYoVGUodCksMD09ZS5hW29dLmxlbmd0aCYmKGRlbGV0ZSBlLmFbb10sZS5iLS0pKX19ZnVuY3Rpb24gSWUoZSx0LG8scil7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24pe3ZhciBzPWVbbl07aWYoIXMuQSYmcy5saXN0ZW5lcj09dCYmcy5jYXB0dXJlPT0hIW8mJnMuSD09cilyZXR1cm4gbn1yZXR1cm4tMX1BZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUsdCxvLHIsbil7dmFyIHM9ZS50b1N0cmluZygpOyhlPXRoaXMuYVtzXSl8fChlPXRoaXMuYVtzXT1bXSx0aGlzLmIrKyk7dmFyIGk9SWUoZSx0LHIsbik7cmV0dXJuLTE8aT8odD1lW2ldLG98fCh0LkQ9ITEpKTooKHQ9bmV3IEVlKHQsdGhpcy5zcmMscywhIXIsbikpLkQ9byxlLnB1c2godCkpLHR9LEFlLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oZSx0LG8scil7aWYoISgoZT1lLnRvU3RyaW5nKCkpaW4gdGhpcy5hKSlyZXR1cm4hMTt2YXIgbj10aGlzLmFbZV07cmV0dXJuLTE8KHQ9SWUobix0LG8scikpJiYoVGUoblt0XSksQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKG4sdCwxKSwwPT1uLmxlbmd0aCYmKGRlbGV0ZSB0aGlzLmFbZV0sdGhpcy5iLS0pLCEwKX07dmFyIFJlPVwiY2xvc3VyZV9sbV9cIisoMWU2Kk1hdGgucmFuZG9tKCl8MCksT2U9e307ZnVuY3Rpb24gamUoZSx0LG8scixuKXtpZihyJiZyLm9uY2UpTmUoZSx0LG8scixuKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspamUoZSx0W3NdLG8scixuKTtlbHNlIG89UGUobyksZSYmZVttZV0/ZS5mLmFkZChTdHJpbmcodCksbywhMSx2KHIpPyEhci5jYXB0dXJlOiEhcixuKTp3ZShlLHQsbywhMSxyLG4pfWZ1bmN0aW9uIHdlKGUsdCxvLHIsbixzKXtpZighdCl0aHJvdyBFcnJvcihcIkludmFsaWQgZXZlbnQgdHlwZVwiKTt2YXIgaT12KG4pPyEhbi5jYXB0dXJlOiEhbixhPURlKGUpO2lmKGF8fChlW1JlXT1hPW5ldyBBZShlKSksIShvPWEuYWRkKHQsbyxyLGkscykpLnByb3h5KWlmKHI9ZnVuY3Rpb24oKXt2YXIgZT1MZTtyZXR1cm4gZnVuY3Rpb24gdChvKXtyZXR1cm4gZS5jYWxsKHQuc3JjLHQubGlzdGVuZXIsbyl9fSgpLG8ucHJveHk9cixyLnNyYz1lLHIubGlzdGVuZXI9byxlLmFkZEV2ZW50TGlzdGVuZXIpeWV8fChuPWkpLHZvaWQgMD09PW4mJihuPSExKSxlLmFkZEV2ZW50TGlzdGVuZXIodC50b1N0cmluZygpLHIsbik7ZWxzZSBpZihlLmF0dGFjaEV2ZW50KWUuYXR0YWNoRXZlbnQoTWUodC50b1N0cmluZygpKSxyKTtlbHNle2lmKCFlLmFkZExpc3RlbmVyfHwhZS5yZW1vdmVMaXN0ZW5lcil0aHJvdyBFcnJvcihcImFkZEV2ZW50TGlzdGVuZXIgYW5kIGF0dGFjaEV2ZW50IGFyZSB1bmF2YWlsYWJsZS5cIik7ZS5hZGRMaXN0ZW5lcihyKX19ZnVuY3Rpb24gTmUoZSx0LG8scixuKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKU5lKGUsdFtzXSxvLHIsbik7ZWxzZSBvPVBlKG8pLGUmJmVbbWVdP2UuZi5hZGQoU3RyaW5nKHQpLG8sITAsdihyKT8hIXIuY2FwdHVyZTohIXIsbik6d2UoZSx0LG8sITAscixuKX1mdW5jdGlvbiBDZShlLHQsbyxyLG4pe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspQ2UoZSx0W3NdLG8scixuKTtlbHNlIHI9dihyKT8hIXIuY2FwdHVyZTohIXIsbz1QZShvKSxlJiZlW21lXT9lLmYucmVtb3ZlKFN0cmluZyh0KSxvLHIsbik6ZSYmKGU9RGUoZSkpJiYodD1lLmFbdC50b1N0cmluZygpXSxlPS0xLHQmJihlPUllKHQsbyxyLG4pKSwobz0tMTxlP3RbZV06bnVsbCkmJlVlKG8pKX1mdW5jdGlvbiBVZShlKXtpZihcIm51bWJlclwiIT10eXBlb2YgZSYmZSYmIWUuQSl7dmFyIHQ9ZS5zcmM7aWYodCYmdFttZV0pdmUodC5mLGUpO2Vsc2V7dmFyIG89ZS50eXBlLHI9ZS5wcm94eTt0LnJlbW92ZUV2ZW50TGlzdGVuZXI/dC5yZW1vdmVFdmVudExpc3RlbmVyKG8scixlLmNhcHR1cmUpOnQuZGV0YWNoRXZlbnQ/dC5kZXRhY2hFdmVudChNZShvKSxyKTp0LmFkZExpc3RlbmVyJiZ0LnJlbW92ZUxpc3RlbmVyJiZ0LnJlbW92ZUxpc3RlbmVyKHIpLChvPURlKHQpKT8odmUobyxlKSwwPT1vLmImJihvLnNyYz1udWxsLHRbUmVdPW51bGwpKTpUZShlKX19fWZ1bmN0aW9uIE1lKGUpe3JldHVybiBlIGluIE9lP09lW2VdOk9lW2VdPVwib25cIitlfWZ1bmN0aW9uIExlKGUsdCl7aWYoZS5BKWU9ITA7ZWxzZXt0PW5ldyBfZSh0LHRoaXMpO3ZhciBvPWUubGlzdGVuZXIscj1lLkh8fGUuc3JjO2UuRCYmVWUoZSksZT1vLmNhbGwocix0KX1yZXR1cm4gZX1mdW5jdGlvbiBEZShlKXtyZXR1cm4oZT1lW1JlXSlpbnN0YW5jZW9mIEFlP2U6bnVsbH12YXIgQmU9XCJfX2Nsb3N1cmVfZXZlbnRzX2ZuX1wiKygxZTkqTWF0aC5yYW5kb20oKT4+PjApO2Z1bmN0aW9uIFBlKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTooZVtCZV18fChlW0JlXT1mdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVFdmVudCh0KX0pLGVbQmVdKX1mdW5jdGlvbiBGZSgpe3BlLmNhbGwodGhpcyksdGhpcy5mPW5ldyBBZSh0aGlzKSx0aGlzLlU9dGhpc31mdW5jdGlvbiB4ZShlLHQpe2U9ZS5VO3ZhciBvPXQudHlwZXx8dDtpZihcInN0cmluZ1wiPT10eXBlb2YgdCl0PW5ldyBoZSh0LGUpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIGhlKXQudGFyZ2V0PXQudGFyZ2V0fHxlO2Vsc2V7dmFyIHI9dDshZnVuY3Rpb24oZSx0KXtmb3IodmFyIG8scixuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7Zm9yKG8gaW4gcj1hcmd1bWVudHNbbl0pZVtvXT1yW29dO2Zvcih2YXIgcz0wO3M8JC5sZW5ndGg7cysrKW89JFtzXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixvKSYmKGVbb109cltvXSl9fSh0PW5ldyBoZShvLGUpLHIpfVdlKGU9dC5hPWUsbywhMCx0KSxXZShlLG8sITEsdCl9ZnVuY3Rpb24gV2UoZSx0LG8scil7aWYodD1lLmYuYVtTdHJpbmcodCldKXt0PXQuY29uY2F0KCk7Zm9yKHZhciBuPSEwLHM9MDtzPHQubGVuZ3RoOysrcyl7dmFyIGk9dFtzXTtpZihpJiYhaS5BJiZpLmNhcHR1cmU9PW8pe3ZhciBhPWkubGlzdGVuZXIsZz1pLkh8fGkuc3JjO2kuRCYmdmUoZS5mLGkpLG49ITEhPT1hLmNhbGwoZyxyKSYmbn19fX1mdW5jdGlvbiBIZShlLHQsbyl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSlvJiYoZT13KGUsbykpO2Vsc2V7aWYoIWV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUuaGFuZGxlRXZlbnQpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50XCIpO2U9dyhlLmhhbmRsZUV2ZW50LGUpfXJldHVybiAyMTQ3NDgzNjQ3PE51bWJlcih0KT8tMTpFLnNldFRpbWVvdXQoZSx0fHwwKX1mdW5jdGlvbiBWZShlLHQpe3RoaXMubmFtZT1lLHRoaXMudmFsdWU9dH1OKEZlLHBlKSxGZS5wcm90b3R5cGVbbWVdPSEwLEZlLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCxvLHIpe2plKHRoaXMsZSx0LG8scil9LEZlLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCxvLHIpe0NlKHRoaXMsZSx0LG8scil9LFZlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9O3ZhciBHZSxrZSxZZSx6ZT1uZXcgVmUoXCJPRkZcIiwxLzApLEtlPW5ldyBWZShcIlNFVkVSRVwiLDFlMyksWGU9bmV3IFZlKFwiQ09ORklHXCIsNzAwKSxxZT1uZXcgVmUoXCJGSU5FXCIsNTAwKTtmdW5jdGlvbiAkZSgpe3RoaXMuY2xlYXIoKX1mdW5jdGlvbiBaZShlLHQsbyl7dGhpcy5yZXNldChlfHx6ZSx0LG8sdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gSmUoZSx0KXt0aGlzLmE9bnVsbCx0aGlzLmY9W10sdGhpcy5iPSh2b2lkIDA9PT10P251bGw6dCl8fG51bGwsdGhpcy5jPVtdLHRoaXMuZz17YTpmdW5jdGlvbigpe3JldHVybiBlfX19ZnVuY3Rpb24gUWUoZSl7cmV0dXJuIGUuYT9lLmE6ZS5iP1FlKGUuYik6KGZ1bmN0aW9uKGUsdCl7dGhyb3cgbmV3IEYoXCJGYWlsdXJlXCIrKGU/XCI6IFwiK2U6XCJcIiksQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX0oXCJSb290IGxvZ2dlciBoYXMgbm8gbGV2ZWwgc2V0LlwiKSx6ZSl9ZnVuY3Rpb24gZXQoKXt0aGlzLmVudHJpZXM9e307dmFyIGU9bmV3IEplKFwiXCIpO2UuYT1YZSx0aGlzLmVudHJpZXNbXCJcIl09ZX1mdW5jdGlvbiB0dChlLHQsbyl7dmFyIHI9ZS5lbnRyaWVzW3RdO2lmKHIpcmV0dXJuIHZvaWQgMCE9PW8mJihyLmE9bykscjtyPXR0KGUsdC5zdWJzdHIoMCx0Lmxhc3RJbmRleE9mKFwiLlwiKSkpO3ZhciBuPW5ldyBKZSh0LHIpO3JldHVybiBlLmVudHJpZXNbdF09bixyLmMucHVzaChuKSx2b2lkIDAhPT1vJiYobi5hPW8pLG59ZnVuY3Rpb24gb3QoKXtyZXR1cm4ga2V8fChrZT1uZXcgZXQpLGtlfWZ1bmN0aW9uIHJ0KGUsdCxvKXt2YXIgcjsocj1lKSYmKHI9ZSYmdCkmJihyPShyPXQudmFsdWUpPj0oZT9RZSh0dChvdCgpLGUuYSgpKSk6emUpLnZhbHVlKSxyJiYodD10fHx6ZSxyPXR0KG90KCksZS5hKCkpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihvPW8oKSksR2V8fChHZT1uZXcgJGUpLGZ1bmN0aW9uKGUsdCl7Zm9yKDtlOyllLmYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZSh0KX0pKSxlPWUuYn0ocixlPW5ldyBaZSh0LG8sZS5hKCkpKSl9ZnVuY3Rpb24gbnQoZSx0KXtlJiZydChlLHFlLHQpfWZ1bmN0aW9uIHN0KCl7fWZ1bmN0aW9uIGl0KGUpe3ZhciB0O3JldHVybih0PWUuYSl8fCh0PXt9LGx0KGUpJiYodFswXT0hMCx0WzFdPSEwKSx0PWUuYT10KSx0fWZ1bmN0aW9uIGF0KCl7fWZ1bmN0aW9uIGd0KGUpe3JldHVybihlPWx0KGUpKT9uZXcgQWN0aXZlWE9iamVjdChlKTpuZXcgWE1MSHR0cFJlcXVlc3R9ZnVuY3Rpb24gbHQoZSl7aWYoIWUuYiYmXCJ1bmRlZmluZWRcIj09dHlwZW9mIFhNTEh0dHBSZXF1ZXN0JiZcInVuZGVmaW5lZFwiIT10eXBlb2YgQWN0aXZlWE9iamVjdCl7Zm9yKHZhciB0PVtcIk1TWE1MMi5YTUxIVFRQLjYuMFwiLFwiTVNYTUwyLlhNTEhUVFAuMy4wXCIsXCJNU1hNTDIuWE1MSFRUUFwiLFwiTWljcm9zb2Z0LlhNTEhUVFBcIl0sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcj10W29dO3RyeXtyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QociksZS5iPXJ9Y2F0Y2goZSl7fX10aHJvdyBFcnJvcihcIkNvdWxkIG5vdCBjcmVhdGUgQWN0aXZlWE9iamVjdC4gQWN0aXZlWCBtaWdodCBiZSBkaXNhYmxlZCwgb3IgTVNYTUwgbWlnaHQgbm90IGJlIGluc3RhbGxlZFwiKX1yZXR1cm4gZS5ifWZ1bmN0aW9uIHV0KGUsdCl7dGhpcy5iPWVbRS5TeW1ib2wuaXRlcmF0b3JdKCksdGhpcy5jPXQsdGhpcy5mPTB9JGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7fSxaZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt9LHN0LnByb3RvdHlwZS5hPW51bGwsTihhdCxzdCksWWU9bmV3IGF0LGEoKSxjKCksdXQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdXQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmIubmV4dCgpO3JldHVybnt2YWx1ZTplLmRvbmU/dm9pZCAwOnRoaXMuYy5jYWxsKHZvaWQgMCxlLnZhbHVlLHRoaXMuZisrKSxkb25lOmUuZG9uZX19LGEoKSxjKCksYSgpLGMoKTt2YXIgY3Q9XCJTdG9wSXRlcmF0aW9uXCJpbiBFP0UuU3RvcEl0ZXJhdGlvbjp7bWVzc2FnZTpcIlN0b3BJdGVyYXRpb25cIixzdGFjazpcIlwifTtmdW5jdGlvbiBwdCgpe31mdW5jdGlvbiBmdChlKXtpZihlIGluc3RhbmNlb2YgaHR8fGUgaW5zdGFuY2VvZiB5dHx8ZSBpbnN0YW5jZW9mIF90KXJldHVybiBlO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUubmV4dClyZXR1cm4gbmV3IGh0KChmdW5jdGlvbigpe3JldHVybiBkdChlKX0pKTtpZihhKCksYygpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGVbU3ltYm9sLml0ZXJhdG9yXSlyZXR1cm4gYSgpLGMoKSxuZXcgaHQoKGZ1bmN0aW9uKCl7cmV0dXJuIGVbU3ltYm9sLml0ZXJhdG9yXSgpfSkpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUudSlyZXR1cm4gbmV3IGh0KChmdW5jdGlvbigpe3JldHVybiBkdChlLnUoKSl9KSk7dGhyb3cgRXJyb3IoXCJOb3QgYW4gaXRlcmF0b3Igb3IgaXRlcmFibGUuXCIpfWZ1bmN0aW9uIGR0KGUpe2lmKCEoZSBpbnN0YW5jZW9mIHB0KSlyZXR1cm4gZTt2YXIgdD0hMTtyZXR1cm57bmV4dDpmdW5jdGlvbigpe2Zvcih2YXIgbzshdDspdHJ5e289ZS5hKCk7YnJlYWt9Y2F0Y2goZSl7aWYoZSE9PWN0KXRocm93IGU7dD0hMH1yZXR1cm57dmFsdWU6byxkb25lOnR9fX19ZnVuY3Rpb24gaHQoZSl7dGhpcy5iPWV9ZnVuY3Rpb24geXQoZSl7dGhpcy5iPWV9ZnVuY3Rpb24gX3QoZSl7aHQuY2FsbCh0aGlzLChmdW5jdGlvbigpe3JldHVybiBlfSkpLHRoaXMuZj1lfWZ1bmN0aW9uIGJ0KGUsdCl7dGhpcy5vPXt9LHRoaXMuaj1bXSx0aGlzLkI9dGhpcy5zaXplPTA7dmFyIG89YXJndW1lbnRzLmxlbmd0aDtpZigxPG8pe2lmKG8lMil0aHJvdyBFcnJvcihcIlVuZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzXCIpO2Zvcih2YXIgcj0wO3I8bztyKz0yKXRoaXMuc2V0KGFyZ3VtZW50c1tyXSxhcmd1bWVudHNbcisxXSl9ZWxzZSBlJiZ0aGlzLmFkZEFsbChlKX1mdW5jdGlvbiBtdChlKXtpZihlLnNpemUhPWUuai5sZW5ndGgpe2Zvcih2YXIgdD0wLG89MDt0PGUuai5sZW5ndGg7KXt2YXIgcj1lLmpbdF07U3QoZS5vLHIpJiYoZS5qW28rK109ciksdCsrfWUuai5sZW5ndGg9b31pZihlLnNpemUhPWUuai5sZW5ndGgpe3ZhciBuPXt9O2ZvcihvPXQ9MDt0PGUuai5sZW5ndGg7KVN0KG4scj1lLmpbdF0pfHwoZS5qW28rK109cixuW3JdPTEpLHQrKztlLmoubGVuZ3RoPW99fWZ1bmN0aW9uIFN0KGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfXB0LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHB0LnByb3RvdHlwZS5hLmNhbGwodGhpcyl9LHB0LnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7dGhyb3cgY3R9LHB0LnByb3RvdHlwZS51PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGEoKSxjKCksaHQucHJvdG90eXBlLnU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHl0KHRoaXMuYigpKX0saHQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF90KHRoaXMuYigpKX0saHQucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF90KHRoaXMuYigpKX0sYSgpLGMoKSxiKHl0LHB0KSx5dC5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYi5uZXh0KCk7aWYoZS5kb25lKXRocm93IGN0O3JldHVybiBlLnZhbHVlfSx5dC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB5dC5wcm90b3R5cGUuYS5jYWxsKHRoaXMpfSx5dC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBuZXcgX3QodGhpcy5iKX0seXQucHJvdG90eXBlLmM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IF90KHRoaXMuYil9LGIoX3QsaHQpLF90LnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZi5uZXh0KCl9LChyPWJ0LnByb3RvdHlwZSkuRz1mdW5jdGlvbigpe3JldHVybiBtdCh0aGlzKSx0aGlzLmouY29uY2F0KCl9LHIuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBTdCh0aGlzLm8sZSl9LHIuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLm89e30sdGhpcy5CPXRoaXMuc2l6ZT10aGlzLmoubGVuZ3RoPTB9LHIucmVtb3ZlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRlbGV0ZShlKX0sci5kZWxldGU9ZnVuY3Rpb24oZSl7cmV0dXJuISFTdCh0aGlzLm8sZSkmJihkZWxldGUgdGhpcy5vW2VdLC0tdGhpcy5zaXplLHRoaXMuQisrLHRoaXMuai5sZW5ndGg+Mip0aGlzLnNpemUmJm10KHRoaXMpLCEwKX0sci5nZXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gU3QodGhpcy5vLGUpP3RoaXMub1tlXTp0fSxyLnNldD1mdW5jdGlvbihlLHQpe1N0KHRoaXMubyxlKXx8KHRoaXMuc2l6ZSs9MSx0aGlzLmoucHVzaChlKSx0aGlzLkIrKyksdGhpcy5vW2VdPXR9LHIuYWRkQWxsPWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBidClmb3IodmFyIHQ9ZS5HKCksbz0wO288dC5sZW5ndGg7bysrKXRoaXMuc2V0KHRbb10sZS5nZXQodFtvXSkpO2Vsc2UgZm9yKHQgaW4gZSl0aGlzLnNldCh0LGVbdF0pfSxyLmZvckVhY2g9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG89dGhpcy5HKCkscj0wO3I8by5sZW5ndGg7cisrKXt2YXIgbj1vW3JdLHM9dGhpcy5nZXQobik7ZS5jYWxsKHQscyxuLHRoaXMpfX0sci5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgYnQodGhpcyl9LHIua2V5cz1mdW5jdGlvbigpe3JldHVybiBmdCh0aGlzLnUoITApKS5jKCl9LHIudmFsdWVzPWZ1bmN0aW9uKCl7cmV0dXJuIGZ0KHRoaXMudSghMSkpLmMoKX0sci5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IHV0KGUsdCl9KHRoaXMua2V5cygpLChmdW5jdGlvbih0KXtyZXR1cm5bdCxlLmdldCh0KV19KSl9LHIudT1mdW5jdGlvbihlKXttdCh0aGlzKTt2YXIgdD0wLG89dGhpcy5CLHI9dGhpcyxuPW5ldyBwdDtyZXR1cm4gbi5hPWZ1bmN0aW9uKCl7aWYobyE9ci5CKXRocm93IEVycm9yKFwiVGhlIG1hcCBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgaXRlcmF0b3Igd2FzIGNyZWF0ZWRcIik7aWYodD49ci5qLmxlbmd0aCl0aHJvdyBjdDt2YXIgbj1yLmpbdCsrXTtyZXR1cm4gZT9uOnIub1tuXX0sbi5uZXh0PW4uYS5iaW5kKG4pLG59O3ZhciBFdD0vXig/OihbXjovPyMuXSspOik/KD86XFwvXFwvKD86KFteXFxcXC8/I10qKUApPyhbXlxcXFwvPyNdKj8pKD86OihbMC05XSspKT8oPz1bXFxcXC8/I118JCkpPyhbXj8jXSspPyg/OlxcPyhbXiNdKikpPyg/OiMoW1xcc1xcU10qKSk/JC87ZnVuY3Rpb24gVHQoZSl7RmUuY2FsbCh0aGlzKSx0aGlzLmhlYWRlcnM9bmV3IGJ0LHRoaXMuQz1lfHxudWxsLHRoaXMuYz0hMSx0aGlzLko9dGhpcy5hPW51bGwsdGhpcy5QPXRoaXMudj1cIlwiLHRoaXMuZz0wLHRoaXMubD1cIlwiLHRoaXMuaT10aGlzLk49dGhpcy5zPXRoaXMuTD0hMSx0aGlzLmg9MCx0aGlzLnc9bnVsbCx0aGlzLm09QXQsdGhpcy5JPXRoaXMuTT0hMX1OKFR0LEZlKTt2YXIgQXQ9XCJcIjtUdC5wcm90b3R5cGUuYj10dChvdCgpLFwiZ29vZy5uZXQuWGhySW9cIix2b2lkIDApLmc7dmFyIHZ0PS9eaHR0cHM/JC9pLEl0PVtcIlBPU1RcIixcIlBVVFwiXTtmdW5jdGlvbiBSdChlLHQpe2UuYz0hMSxlLmEmJihlLmk9ITAsZS5hLmFib3J0KCksZS5pPSExKSxlLmw9dCxlLmc9NSxPdChlKSx3dChlKX1mdW5jdGlvbiBPdChlKXtlLkx8fChlLkw9ITAseGUoZSxcImNvbXBsZXRlXCIpLHhlKGUsXCJlcnJvclwiKSl9ZnVuY3Rpb24ganQoZSl7aWYoZS5jJiZ2b2lkIDAhPT1TKWlmKGUuSlsxXSYmND09Q3QoZSkmJjI9PWUuZ2V0U3RhdHVzKCkpbnQoZS5iLE10KGUsXCJMb2NhbCByZXF1ZXN0IGVycm9yIGRldGVjdGVkIGFuZCBpZ25vcmVkXCIpKTtlbHNlIGlmKGUucyYmND09Q3QoZSkpSGUoZS5SLDAsZSk7ZWxzZSBpZih4ZShlLFwicmVhZHlzdGF0ZWNoYW5nZVwiKSw0PT1DdChlKSl7bnQoZS5iLE10KGUsXCJSZXF1ZXN0IGNvbXBsZXRlXCIpKSxlLmM9ITE7dHJ5e3ZhciB0LG89ZS5nZXRTdGF0dXMoKTtlOnN3aXRjaChvKXtjYXNlIDIwMDpjYXNlIDIwMTpjYXNlIDIwMjpjYXNlIDIwNDpjYXNlIDIwNjpjYXNlIDMwNDpjYXNlIDEyMjM6dmFyIHI9ITA7YnJlYWsgZTtkZWZhdWx0OnI9ITF9aWYoISh0PXIpKXt2YXIgbjtpZihuPTA9PT1vKXt2YXIgcz1TdHJpbmcoZS52KS5tYXRjaChFdClbMV18fG51bGw7aWYoIXMmJkUuc2VsZiYmRS5zZWxmLmxvY2F0aW9uKXt2YXIgaT1FLnNlbGYubG9jYXRpb24ucHJvdG9jb2w7cz1pLnN1YnN0cigwLGkubGVuZ3RoLTEpfW49IXZ0LnRlc3Qocz9zLnRvTG93ZXJDYXNlKCk6XCJcIil9dD1ufWlmKHQpeGUoZSxcImNvbXBsZXRlXCIpLHhlKGUsXCJzdWNjZXNzXCIpO2Vsc2V7ZS5nPTY7dHJ5e3ZhciBhPTI8Q3QoZSk/ZS5hLnN0YXR1c1RleHQ6XCJcIn1jYXRjaCh0KXtudChlLmIsXCJDYW4gbm90IGdldCBzdGF0dXM6IFwiK3QubWVzc2FnZSksYT1cIlwifWUubD1hK1wiIFtcIitlLmdldFN0YXR1cygpK1wiXVwiLE90KGUpfX1maW5hbGx5e3d0KGUpfX19ZnVuY3Rpb24gd3QoZSl7aWYoZS5hKXtOdChlKTt2YXIgdD1lLmEsbz1lLkpbMF0/QTpudWxsO2UuYT1udWxsLGUuSj1udWxsLHhlKGUsXCJyZWFkeVwiKTt0cnl7dC5vbnJlYWR5c3RhdGVjaGFuZ2U9b31jYXRjaCh0KXsoZT1lLmIpJiZydChlLEtlLFwiUHJvYmxlbSBlbmNvdW50ZXJlZCByZXNldHRpbmcgb25yZWFkeXN0YXRlY2hhbmdlOiBcIit0Lm1lc3NhZ2UpfX19ZnVuY3Rpb24gTnQoZSl7ZS5hJiZlLkkmJihlLmEub250aW1lb3V0PW51bGwpLGUudyYmKEUuY2xlYXJUaW1lb3V0KGUudyksZS53PW51bGwpfWZ1bmN0aW9uIEN0KGUpe3JldHVybiBlLmE/ZS5hLnJlYWR5U3RhdGU6MH1mdW5jdGlvbiBVdChlLHQpe2lmKGUuYSYmND09Q3QoZSkpcmV0dXJuIG51bGw9PT0oZT1lLmEuZ2V0UmVzcG9uc2VIZWFkZXIodCkpP3ZvaWQgMDplfWZ1bmN0aW9uIE10KGUsdCl7cmV0dXJuIHQrXCIgW1wiK2UuUCtcIiBcIitlLnYrXCIgXCIrZS5nZXRTdGF0dXMoKStcIl1cIn0ocj1UdC5wcm90b3R5cGUpLlQ9ZnVuY3Rpb24oKXt2b2lkIDAhPT1TJiZ0aGlzLmEmJih0aGlzLmw9XCJUaW1lZCBvdXQgYWZ0ZXIgXCIrdGhpcy5oK1wibXMsIGFib3J0aW5nXCIsdGhpcy5nPTgsbnQodGhpcy5iLE10KHRoaXMsdGhpcy5sKSkseGUodGhpcyxcInRpbWVvdXRcIiksdGhpcy5hYm9ydCg4KSl9LHIuYWJvcnQ9ZnVuY3Rpb24oZSl7dGhpcy5hJiZ0aGlzLmMmJihudCh0aGlzLmIsTXQodGhpcyxcIkFib3J0aW5nXCIpKSx0aGlzLmM9ITEsdGhpcy5pPSEwLHRoaXMuYS5hYm9ydCgpLHRoaXMuaT0hMSx0aGlzLmc9ZXx8Nyx4ZSh0aGlzLFwiY29tcGxldGVcIikseGUodGhpcyxcImFib3J0XCIpLHd0KHRoaXMpKX0sci5SPWZ1bmN0aW9uKCl7dGhpcy5LfHwodGhpcy5OfHx0aGlzLnN8fHRoaXMuaT9qdCh0aGlzKTp0aGlzLlcoKSl9LHIuVz1mdW5jdGlvbigpe2p0KHRoaXMpfSxyLmdldFN0YXR1cz1mdW5jdGlvbigpe3RyeXtyZXR1cm4gMjxDdCh0aGlzKT90aGlzLmEuc3RhdHVzOi0xfWNhdGNoKGUpe3JldHVybi0xfX07dmFyIEx0PXt9LER0PW51bGw7ZnVuY3Rpb24gQnQoKXtpZighRHQpe0R0PXt9O2Zvcih2YXIgZT1cIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCIuc3BsaXQoXCJcIiksdD1bXCIrLz1cIixcIisvXCIsXCItXz1cIixcIi1fLlwiLFwiLV9cIl0sbz0wOzU+bztvKyspe3ZhciByPWUuY29uY2F0KHRbb10uc3BsaXQoXCJcIikpO0x0W29dPXI7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBzPXJbbl07dm9pZCAwPT09RHRbc10mJihEdFtzXT1uKX19fX12YXIgUHQ9W1wiY29udGVudC10eXBlXCIsXCJncnBjLXN0YXR1c1wiLFwiZ3JwYy1tZXNzYWdlXCJdO2Z1bmN0aW9uIEZ0KGUpe3RoaXMuYT1lLlosdGhpcy5tPW51bGwsdGhpcy5iPVtdLHRoaXMuaD1bXSx0aGlzLmc9W10sdGhpcy5mPVtdLHRoaXMuYz1bXSx0aGlzLmw9ITEsdGhpcy5pPTAsdGhpcy5zPW5ldyB4O3ZhciB0PXRoaXM7amUodGhpcy5hLFwicmVhZHlzdGF0ZWNoYW5nZVwiLChmdW5jdGlvbigpe3ZhciBlPXQuYTtpZihlPWUuYT9lLmEuZ2V0UmVzcG9uc2VIZWFkZXIoXCJDb250ZW50LVR5cGVcIik6bnVsbCl7aWYoMD09KGU9ZS50b0xvd2VyQ2FzZSgpKS5sYXN0SW5kZXhPZihcImFwcGxpY2F0aW9uL2dycGMtd2ViLXRleHRcIiwwKSl7ZT10LmE7dHJ5e3ZhciBvPWUuYT9lLmEucmVzcG9uc2VUZXh0OlwiXCJ9Y2F0Y2godCl7bnQoZS5iLFwiQ2FuIG5vdCBnZXQgcmVzcG9uc2VUZXh0OiBcIit0Lm1lc3NhZ2UpLG89XCJcIn1pZihvPShlPW98fFwiXCIpLmxlbmd0aC1lLmxlbmd0aCU0LDA9PShlPWUuc3Vic3RyKHQuaSxvLXQuaSkpLmxlbmd0aClyZXR1cm47dC5pPW8sZT1mdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aCxvPTMqdC80O28lMz9vPU1hdGguZmxvb3Iobyk6eihcIj0uXCIsZVt0LTFdKSYmKG89eihcIj0uXCIsZVt0LTJdKT9vLTI6by0xKTt2YXIgcj1uZXcgVWludDhBcnJheShvKSxuPTA7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbyh0KXtmb3IoO3I8ZS5sZW5ndGg7KXt2YXIgbz1lLmNoYXJBdChyKyspLG49RHRbb107aWYobnVsbCE9bilyZXR1cm4gbjtpZighL15bXFxzXFx4YTBdKiQvLnRlc3QobykpdGhyb3cgRXJyb3IoXCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiBcIitvKX1yZXR1cm4gdH1CdCgpO2Zvcih2YXIgcj0wOzspe3ZhciBuPW8oLTEpLHM9bygwKSxpPW8oNjQpLGE9byg2NCk7aWYoNjQ9PT1hJiYtMT09PW4pYnJlYWs7dChuPDwyfHM+PjQpLDY0IT1pJiYodChzPDw0JjI0MHxpPj4yKSw2NCE9YSYmdChpPDw2JjE5MnxhKSl9fShlLChmdW5jdGlvbihlKXtyW24rK109ZX0pKSxyLnN1YmFycmF5KDAsbil9KGUpfWVsc2V7aWYoMCE9ZS5sYXN0SW5kZXhPZihcImFwcGxpY2F0aW9uL2dycGNcIiwwKSlyZXR1cm4gdm9pZCBXdCh0LG5ldyBEKDIsXCJVbmtub3duIENvbnRlbnQtdHlwZSByZWNlaXZlZC5cIikpO2U9bmV3IFVpbnQ4QXJyYXkoZnVuY3Rpb24oZSl7dHJ5e2lmKCFlLmEpcmV0dXJuIG51bGw7aWYoXCJyZXNwb25zZVwiaW4gZS5hKXJldHVybiBlLmEucmVzcG9uc2U7c3dpdGNoKGUubSl7Y2FzZSBBdDpjYXNlXCJ0ZXh0XCI6cmV0dXJuIGUuYS5yZXNwb25zZVRleHQ7Y2FzZVwiYXJyYXlidWZmZXJcIjppZihcIm1velJlc3BvbnNlQXJyYXlCdWZmZXJcImluIGUuYSlyZXR1cm4gZS5hLm1velJlc3BvbnNlQXJyYXlCdWZmZXJ9dmFyIHQ9ZS5iO3JldHVybiB0JiZydCh0LEtlLFwiUmVzcG9uc2UgdHlwZSBcIitlLm0rXCIgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGJyb3dzZXJcIiksbnVsbH1jYXRjaCh0KXtyZXR1cm4gbnQoZS5iLFwiQ2FuIG5vdCBnZXQgcmVzcG9uc2U6IFwiK3QubWVzc2FnZSksbnVsbH19KHQuYSkpfW89bnVsbDt0cnl7bz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG8oZSl7YS5mKyssYS5hPShhLmE8PDgpK2UsND09YS5mJiYoYS5iPTIsYS5nPTAsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4QXJyYXk/YS5jPW5ldyBVaW50OEFycmF5KGEuYSk6YS5jPUFycmF5KGEuYSksMD09YS5hJiZuKCkpfWZ1bmN0aW9uIHIoZSl7YS5jW2EuZysrXT1lLGEuZz09YS5hJiZuKCl9ZnVuY3Rpb24gbigpe3ZhciBlPXt9O2VbYS5oXT1hLmMsYS5pLnB1c2goZSksYS5iPVd9dmFyIHMsaSxhPWUsZz0wO2ZvcihzPXQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgQXJyYXk/dDpuZXcgVWludDhBcnJheSh0KTtnPHMubGVuZ3RoOyl7c3dpdGNoKGEuYil7Y2FzZSAzOlYoYSxzLGcsXCJzdHJlYW0gYWxyZWFkeSBicm9rZW5cIik7YnJlYWs7Y2FzZSBXOjA9PShpPXNbZ10pfHxpPT1IP2EuaD1pOlYoYSxzLGcsXCJpbnZhbGlkIGZyYW1lIGJ5dGVcIiksYS5iPTEsYS5hPTAsYS5mPTA7YnJlYWs7Y2FzZSAxOm8oc1tnXSk7YnJlYWs7Y2FzZSAyOnIoc1tnXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihcInVuZXhwZWN0ZWQgcGFyc2VyIHN0YXRlOiBcIithLmIpfWEubSsrLGcrK31yZXR1cm4gZT1hLmksYS5pPVtdLDA8ZS5sZW5ndGg/ZTpudWxsfSh0LnMsZSl9Y2F0Y2goZSl7V3QodCxuZXcgRCgyLFwiRXJyb3IgaW4gcGFyc2luZyByZXNwb25zZSBib2R5XCIpKX1pZihvKWZvcihlPTA7ZTxvLmxlbmd0aDtlKyspe2lmKDAgaW4gb1tlXSl7dmFyIHI9b1tlXVswXTtpZihyKXt2YXIgbj12b2lkIDA7dHJ5e249dC5tKHIpfWNhdGNoKGUpe1d0KHQsbmV3IEQoMTMsXCJFcnJvciB3aGVuIGRlc2VyaWFsaXppbmcgcmVzcG9uc2UgZGF0YTogXCIrbikpfWlmKG4pe3I9dDtmb3IodmFyIHM9MDtzPHIuYi5sZW5ndGg7cysrKXIuYltzXShuKX19fWlmKEggaW4gb1tlXSYmMDxvW2VdW0hdLmxlbmd0aCl7Zm9yKHI9XCJcIixuPTA7bjxvW2VdW0hdLmxlbmd0aDtuKyspcis9U3RyaW5nLmZyb21DaGFyQ29kZShvW2VdW0hdW25dKTtmb3Iocj1yLnRyaW0oKS5zcGxpdChcIlxcclxcblwiKSxuPXt9LHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGk9cltzXS5pbmRleE9mKFwiOlwiKTtuW3Jbc10uc3Vic3RyaW5nKDAsaSkudHJpbSgpXT1yW3NdLnN1YnN0cmluZyhpKzEpLnRyaW0oKX1yPW4sbj0wLHM9XCJcIixcImdycGMtc3RhdHVzXCJpbiByJiYobj1OdW1iZXIocltcImdycGMtc3RhdHVzXCJdKSxkZWxldGUgcltcImdycGMtc3RhdHVzXCJdKSxcImdycGMtbWVzc2FnZVwiaW4gciYmKHM9cltcImdycGMtbWVzc2FnZVwiXSxkZWxldGUgcltcImdycGMtbWVzc2FnZVwiXSksV3QodCxuZXcgRChuLHMscikpfX19fSkpLGplKHRoaXMuYSxcImNvbXBsZXRlXCIsKGZ1bmN0aW9uKCl7dmFyIGU9dC5hLmcsbz0yLHI9XCJcIixuPXt9LHM9ZnVuY3Rpb24oZSl7dmFyIHQ9e307ZT0oZS5hJiY0PT1DdChlKSYmZS5hLmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHxcIlwiKS5zcGxpdChcIlxcclxcblwiKTtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZighL15bXFxzXFx4YTBdKiQvLnRlc3QoZVtvXSkpe3ZhciByPVooZVtvXSksbj1yWzBdO2lmKFwic3RyaW5nXCI9PXR5cGVvZihyPXJbMV0pKXtyPXIudHJpbSgpO3ZhciBzPXRbbl18fFtdO3Rbbl09cyxzLnB1c2gocil9fXJldHVybiBmdW5jdGlvbihlLHQpe3ZhciBvLHI9e307Zm9yKG8gaW4gZSlyW29dPXQuY2FsbCh2b2lkIDAsZVtvXSxvLGUpO3JldHVybiByfSh0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5qb2luKFwiLCBcIil9KSl9KHQuYSk7aWYoT2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7UHQuaW5jbHVkZXMoZSl8fChuW2VdPXNbZV0pfSkpLGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvPTA7bzxlLmcubGVuZ3RoO28rKyllLmdbb10odCl9KHQsbiksMCE9ZSl7c3dpdGNoKGUpe2Nhc2UgNzpvPTEwO2JyZWFrO2Nhc2UgODpvPTQ7YnJlYWs7Y2FzZSA2Om89ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgMjAwOnJldHVybiAwO2Nhc2UgNDAwOnJldHVybiAzO2Nhc2UgNDAxOnJldHVybiAxNjtjYXNlIDQwMzpyZXR1cm4gNztjYXNlIDQwNDpyZXR1cm4gNTtjYXNlIDQwOTpyZXR1cm4gMTA7Y2FzZSA0MTI6cmV0dXJuIDk7Y2FzZSA0Mjk6cmV0dXJuIDg7Y2FzZSA0OTk6cmV0dXJuIDE7Y2FzZSA1MDA6ZGVmYXVsdDpyZXR1cm4gMjtjYXNlIDUwMTpyZXR1cm4gMTI7Y2FzZSA1MDM6cmV0dXJuIDE0O2Nhc2UgNTA0OnJldHVybiA0fX0odC5hLmdldFN0YXR1cygpKTticmVhaztkZWZhdWx0Om89MTR9MTA9PW8mJnQubHx8V3QodCxuZXcgRChvLGZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuXCJObyBFcnJvclwiO2Nhc2UgMTpyZXR1cm5cIkFjY2VzcyBkZW5pZWQgdG8gY29udGVudCBkb2N1bWVudFwiO2Nhc2UgMjpyZXR1cm5cIkZpbGUgbm90IGZvdW5kXCI7Y2FzZSAzOnJldHVyblwiRmlyZWZveCBzaWxlbnRseSBlcnJvcmVkXCI7Y2FzZSA0OnJldHVyblwiQXBwbGljYXRpb24gY3VzdG9tIGVycm9yXCI7Y2FzZSA1OnJldHVyblwiQW4gZXhjZXB0aW9uIG9jY3VycmVkXCI7Y2FzZSA2OnJldHVyblwiSHR0cCByZXNwb25zZSBhdCA0MDAgb3IgNTAwIGxldmVsXCI7Y2FzZSA3OnJldHVyblwiUmVxdWVzdCB3YXMgYWJvcnRlZFwiO2Nhc2UgODpyZXR1cm5cIlJlcXVlc3QgdGltZWQgb3V0XCI7Y2FzZSA5OnJldHVyblwiVGhlIHJlc291cmNlIGlzIG5vdCBhdmFpbGFibGUgb2ZmbGluZVwiO2RlZmF1bHQ6cmV0dXJuXCJVbnJlY29nbml6ZWQgZXJyb3IgY29kZVwifX0oZSkpKX1lbHNlIGU9ITEsXCJncnBjLXN0YXR1c1wiaW4gcyYmKG89TnVtYmVyKFV0KHQuYSxcImdycGMtc3RhdHVzXCIpKSxcImdycGMtbWVzc2FnZVwiaW4gcyYmKHI9VXQodC5hLFwiZ3JwYy1tZXNzYWdlXCIpKSwwIT1vJiYoV3QodCxuZXcgRChvLHJ8fFwiXCIscykpLGU9ITApKSxlfHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUuYy5sZW5ndGg7dCsrKWUuY1t0XSgpfSh0KX0pKX1mdW5jdGlvbiB4dChlLHQpey0xPCh0PWUuaW5kZXhPZih0KSkmJmUuc3BsaWNlKHQsMSl9ZnVuY3Rpb24gV3QoZSx0KXtpZigwIT10LmNvZGUpZm9yKHZhciBvPW5ldyBEKHQuY29kZSxkZWNvZGVVUklDb21wb25lbnQodC5tZXNzYWdlfHxcIlwiKSx0Lm1ldGFkYXRhKSxyPTA7cjxlLmYubGVuZ3RoO3IrKyllLmZbcl0obyk7Zm9yKHQ9e2NvZGU6dC5jb2RlLGRldGFpbHM6ZGVjb2RlVVJJQ29tcG9uZW50KHQubWVzc2FnZXx8XCJcIiksbWV0YWRhdGE6dC5tZXRhZGF0YX0sbz0wO288ZS5oLmxlbmd0aDtvKyspZS5oW29dKHQpfWZ1bmN0aW9uIEh0KGUsdCl7ZT12b2lkIDA9PT1lP3t9OmUsdGhpcy5hPWUuZm9ybWF0fHxUKFwiZm9ybWF0XCIsZSl8fFwidGV4dFwiLHRoaXMuZz1lLmFhfHxUKFwic3VwcHJlc3NDb3JzUHJlZmxpZ2h0XCIsZSl8fCExLHRoaXMuZj1lLndpdGhDcmVkZW50aWFsc3x8VChcIndpdGhDcmVkZW50aWFsc1wiLGUpfHwhMSx0aGlzLmI9ZS4kfHxUKFwic3RyZWFtSW50ZXJjZXB0b3JzXCIsZSl8fFtdLHRoaXMuaD1lLmJhfHxUKFwidW5hcnlJbnRlcmNlcHRvcnNcIixlKXx8W10sdGhpcy5jPXR8fG51bGx9ZnVuY3Rpb24gVnQoZSx0LG8pe3ZhciByPXQuZ2V0TWV0aG9kRGVzY3JpcHRvcigpLG49bytyLm5hbWU7KG89ZS5jP2UuYzpuZXcgVHQpLk09ZS5mO3ZhciBzPW5ldyBGdCh7WjpvfSk7cy5tPXIuYjt2YXIgaT10LmdldE1ldGFkYXRhKCk7Zm9yKGEgaW4gaSlvLmhlYWRlcnMuc2V0KGEsaVthXSk7aWYoXCJ0ZXh0XCI9PWUuYT8oby5oZWFkZXJzLnNldChcIkNvbnRlbnQtVHlwZVwiLFwiYXBwbGljYXRpb24vZ3JwYy13ZWItdGV4dFwiKSxvLmhlYWRlcnMuc2V0KFwiQWNjZXB0XCIsXCJhcHBsaWNhdGlvbi9ncnBjLXdlYi10ZXh0XCIpKTpvLmhlYWRlcnMuc2V0KFwiQ29udGVudC1UeXBlXCIsXCJhcHBsaWNhdGlvbi9ncnBjLXdlYitwcm90b1wiKSxvLmhlYWRlcnMuc2V0KFwiWC1Vc2VyLUFnZW50XCIsXCJncnBjLXdlYi1qYXZhc2NyaXB0LzAuMVwiKSxvLmhlYWRlcnMuc2V0KFwiWC1HcnBjLVdlYlwiLFwiMVwiKSxvLmhlYWRlcnMuaGFzKFwiZGVhZGxpbmVcIikpe3ZhciBhPU51bWJlcihvLmhlYWRlcnMuZ2V0KFwiZGVhZGxpbmVcIikpO2E9TWF0aC5jZWlsKGEtKG5ldyBEYXRlKS5nZXRUaW1lKCkpLG8uaGVhZGVycy5kZWxldGUoXCJkZWFkbGluZVwiKSwxLzA9PT1hJiYoYT0wKSwwPGEmJihvLmhlYWRlcnMuc2V0KFwiZ3JwYy10aW1lb3V0XCIsYStcIm1cIiksby5oPU1hdGgubWF4KDAsTWF0aC5tYXgoMWUzLE1hdGguY2VpbCgxLjEqYSkpKSl9aWYoZS5nKXthPXt9O2Zvcih2YXIgZz1wKChpPW8uaGVhZGVycykua2V5cygpKSxsPWcubmV4dCgpOyFsLmRvbmU7bD1nLm5leHQoKSlhW2w9bC52YWx1ZV09aS5nZXQobCk7by5oZWFkZXJzLmNsZWFyKCk7ZTp7Zm9yKHUgaW4gYSl7dmFyIHU9ITE7YnJlYWsgZX11PSEwfXV8fChhPWZ1bmN0aW9uKGUpe3ZhciB0PVwiXCI7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBvIGluIGUpdC5jYWxsKHZvaWQgMCxlW29dLG8sZSl9KGUsKGZ1bmN0aW9uKGUsbyl7dCs9byx0Kz1cIjpcIix0Kz1lLHQrPVwiXFxyXFxuXCJ9KSksdH0oYSksXCJzdHJpbmdcIj09dHlwZW9mIG4/KHU9ZW5jb2RlVVJJQ29tcG9uZW50KFwiJGh0dHBIZWFkZXJzXCIpLCh1Kz1hPW51bGwhPWE/XCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhhKSk6XCJcIikmJigwPihhPW4uaW5kZXhPZihcIiNcIikpJiYoYT1uLmxlbmd0aCksMD4oaT1uLmluZGV4T2YoXCI/XCIpKXx8aT5hPyhpPWEsZz1cIlwiKTpnPW4uc3Vic3RyaW5nKGkrMSxhKSxhPShuPVtuLnN1YnN0cigwLGkpLGcsbi5zdWJzdHIoYSldKVsxXSxuWzFdPXU/YT9hK1wiJlwiK3U6dTphLG49blswXSsoblsxXT9cIj9cIituWzFdOlwiXCIpK25bMl0pKTpuLmEoXCIkaHR0cEhlYWRlcnNcIixhKSl9Zm9yKHI9KHQ9KDAsci5hKSh0LmdldFJlcXVlc3RNZXNzYWdlKCkpKS5sZW5ndGgsdT1bMCwwLDAsMF0sYT1uZXcgVWludDhBcnJheSg1K3IpLGk9MzswPD1pO2ktLSl1W2ldPXIlMjU2LHI+Pj49ODtpZihhLnNldChuZXcgVWludDhBcnJheSh1KSwxKSxhLnNldCh0LDUpLHQ9YSxcInRleHRcIj09ZS5hKXt2YXIgYztmb3IoZT10LHZvaWQgMD09PWMmJihjPTApLEJ0KCksYz1MdFtjXSx0PUFycmF5KE1hdGguZmxvb3IoZS5sZW5ndGgvMykpLHI9Y1s2NF18fFwiXCIsdT1hPTA7YTxlLmxlbmd0aC0yO2ErPTMpe2w9ZVthXTt2YXIgZj1lW2ErMV07Zz1lW2ErMl0saT1jW2w+PjJdLGw9Y1soMyZsKTw8NHxmPj40XSxmPWNbKDE1JmYpPDwyfGc+PjZdLGc9Y1s2MyZnXSx0W3UrK109aStsK2YrZ31zd2l0Y2goaT0wLGc9cixlLmxlbmd0aC1hKXtjYXNlIDI6Zz1jWygxNSYoaT1lW2ErMV0pKTw8Ml18fHI7Y2FzZSAxOmU9ZVthXSx0W3VdPWNbZT4+Ml0rY1soMyZlKTw8NHxpPj40XStnK3J9dD10LmpvaW4oXCJcIil9ZWxzZVwiYmluYXJ5XCI9PWUuYSYmKG8ubT1cImFycmF5YnVmZmVyXCIpO3JldHVybiBmdW5jdGlvbihlLHQsbyl7aWYoZS5hKXRocm93IEVycm9yKFwiW2dvb2cubmV0LlhocklvXSBPYmplY3QgaXMgYWN0aXZlIHdpdGggYW5vdGhlciByZXF1ZXN0PVwiK2UuditcIjsgbmV3VXJpPVwiK3QpO2Uudj10LGUubD1cIlwiLGUuZz0wLGUuUD1cIlBPU1RcIixlLkw9ITEsZS5jPSEwLGUuYT1lLkM/Z3QoZS5DKTpndChZZSksZS5KPWUuQz9pdChlLkMpOml0KFllKSxlLmEub25yZWFkeXN0YXRlY2hhbmdlPXcoZS5SLGUpO3RyeXtudChlLmIsTXQoZSxcIk9wZW5pbmcgWGhyXCIpKSxlLk49ITAsZS5hLm9wZW4oXCJQT1NUXCIsU3RyaW5nKHQpLCEwKSxlLk49ITF9Y2F0Y2godCl7cmV0dXJuIG50KGUuYixNdChlLFwiRXJyb3Igb3BlbmluZyBYaHI6IFwiK3QubWVzc2FnZSkpLHZvaWQgUnQoZSx0KX10PW98fFwiXCI7dmFyIHI9KG89ZS5oZWFkZXJzLmNsb25lKCkpLkcoKS5maW5kKChmdW5jdGlvbihlKXtyZXR1cm5cImNvbnRlbnQtdHlwZVwiPT1lLnRvTG93ZXJDYXNlKCl9KSksbj1FLkZvcm1EYXRhJiZ0IGluc3RhbmNlb2YgRS5Gb3JtRGF0YTshKDA8PWsoSXQsXCJQT1NUXCIpKXx8cnx8bnx8by5zZXQoXCJDb250ZW50LVR5cGVcIixcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04XCIpLG8uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSksZSksZS5tJiYoZS5hLnJlc3BvbnNlVHlwZT1lLm0pLFwid2l0aENyZWRlbnRpYWxzXCJpbiBlLmEmJmUuYS53aXRoQ3JlZGVudGlhbHMhPT1lLk0mJihlLmEud2l0aENyZWRlbnRpYWxzPWUuTSk7dHJ5e050KGUpLDA8ZS5oJiYoZS5JPWZ1bmN0aW9uKGUpe3JldHVybiBvZSYmY2UoKSYmXCJudW1iZXJcIj09dHlwZW9mIGUudGltZW91dCYmdm9pZCAwIT09ZS5vbnRpbWVvdXR9KGUuYSksbnQoZS5iLE10KGUsXCJXaWxsIGFib3J0IGFmdGVyIFwiK2UuaCtcIm1zIGlmIGluY29tcGxldGUsIHhocjIgXCIrZS5JKSksZS5JPyhlLmEudGltZW91dD1lLmgsZS5hLm9udGltZW91dD13KGUuVCxlKSk6ZS53PUhlKGUuVCxlLmgsZSkpLG50KGUuYixNdChlLFwiU2VuZGluZyByZXF1ZXN0XCIpKSxlLnM9ITAsZS5hLnNlbmQodCksZS5zPSExfWNhdGNoKHQpe250KGUuYixNdChlLFwiU2VuZCBlcnJvcjogXCIrdC5tZXNzYWdlKSksUnQoZSx0KX19KG8sbix0KSxzfWZ1bmN0aW9uIEd0KGUsdCxvKXt2YXIgcj0hMSxuPW51bGwscz0hMTtlLm9uKFwiZGF0YVwiLChmdW5jdGlvbihlKXtyPSEwLG49ZX0pKSxlLm9uKFwiZXJyb3JcIiwoZnVuY3Rpb24oZSl7MD09ZS5jb2RlfHxzfHwocz0hMCx0KGUsbnVsbCkpfSkpLGUub24oXCJzdGF0dXNcIiwoZnVuY3Rpb24oZSl7MD09ZS5jb2RlfHxzP28mJnQobnVsbCxudWxsLGUpOihzPSEwLHQoe2NvZGU6ZS5jb2RlLG1lc3NhZ2U6ZS5kZXRhaWxzLG1ldGFkYXRhOmUubWV0YWRhdGF9LG51bGwpKX0pKSxvJiZlLm9uKFwibWV0YWRhdGFcIiwoZnVuY3Rpb24oZSl7dChudWxsLG51bGwsbnVsbCxlKX0pKSxlLm9uKFwiZW5kXCIsKGZ1bmN0aW9uKCl7c3x8KHI/dChudWxsLG4pOnQoe2NvZGU6MixtZXNzYWdlOlwiSW5jb21wbGV0ZSByZXNwb25zZVwifSkpLG8mJnQobnVsbCxudWxsKX0pKX1mdW5jdGlvbiBrdChlLHQpe3ZhciBvPWU7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9bztvPWZ1bmN0aW9uKG8pe3JldHVybiBlLmludGVyY2VwdChvLHQpfX0pKSxvfUZ0LnByb3RvdHlwZS5vbj1mdW5jdGlvbihlLHQpe3JldHVyblwiZGF0YVwiPT1lP3RoaXMuYi5wdXNoKHQpOlwic3RhdHVzXCI9PWU/dGhpcy5oLnB1c2godCk6XCJtZXRhZGF0YVwiPT1lP3RoaXMuZy5wdXNoKHQpOlwiZW5kXCI9PWU/dGhpcy5jLnB1c2godCk6XCJlcnJvclwiPT1lJiZ0aGlzLmYucHVzaCh0KSx0aGlzfSxGdC5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm5cImRhdGFcIj09ZT94dCh0aGlzLmIsdCk6XCJzdGF0dXNcIj09ZT94dCh0aGlzLmgsdCk6XCJtZXRhZGF0YVwiPT1lP3h0KHRoaXMuZyx0KTpcImVuZFwiPT1lP3h0KHRoaXMuYyx0KTpcImVycm9yXCI9PWUmJnh0KHRoaXMuZix0KSx0aGlzfSxGdC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5sPSEwLHRoaXMuYS5hYm9ydCgpfSxGdC5wcm90b3R5cGUuY2FuY2VsPUZ0LnByb3RvdHlwZS5jYW5jZWwsRnQucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPUZ0LnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcixGdC5wcm90b3R5cGUub249RnQucHJvdG90eXBlLm9uLEh0LnByb3RvdHlwZS5YPWZ1bmN0aW9uKGUsdCxvLHIsbil7dmFyIHM9dGhpcyxpPWUuc3Vic3RyKDAsZS5sZW5ndGgtci5uYW1lLmxlbmd0aCk7cmV0dXJuIEd0KGU9a3QoKGZ1bmN0aW9uKGUpe3JldHVybiBWdChzLGUsaSl9KSx0aGlzLmIpLmNhbGwodGhpcyxMKHIsdCxvKSksbiwhMSksbmV3IEIoZSl9LEh0LnByb3RvdHlwZS5TPWZ1bmN0aW9uKGUsdCxvLHIpe3ZhciBuPXRoaXMscz1lLnN1YnN0cigwLGUubGVuZ3RoLXIubmFtZS5sZW5ndGgpO3JldHVybiBrdCgoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG8pe3ZhciByLGksYTtHdChWdChuLGUscyksKGZ1bmN0aW9uKG4scyxnLGwpe24/byhuKTpzP2E9czpnP2k9ZzpsP3I9bDoobj1lLmdldE1ldGhvZERlc2NyaXB0b3IoKSx0KG5ldyBNKGEsbixzPXZvaWQgMD09PShzPXIpP3t9OnMsdm9pZCAwPT09aT9udWxsOmkpKSl9KSwhMCl9KSl9KSx0aGlzLmgpLmNhbGwodGhpcyxMKHIsdCxvKSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0UmVzcG9uc2VNZXNzYWdlKCl9KSl9LEh0LnByb3RvdHlwZS51bmFyeUNhbGw9ZnVuY3Rpb24oZSx0LG8scil7cmV0dXJuIHRoaXMuUyhlLHQsbyxyKX0sSHQucHJvdG90eXBlLlk9ZnVuY3Rpb24oZSx0LG8scil7dmFyIG49dGhpcyxzPWUuc3Vic3RyKDAsZS5sZW5ndGgtci5uYW1lLmxlbmd0aCk7cmV0dXJuIGt0KChmdW5jdGlvbihlKXtyZXR1cm4gVnQobixlLHMpfSksdGhpcy5iKS5jYWxsKHRoaXMsTChyLHQsbykpfSxIdC5wcm90b3R5cGUuc2VydmVyU3RyZWFtaW5nPUh0LnByb3RvdHlwZS5ZLEh0LnByb3RvdHlwZS51bmFyeUNhbGw9SHQucHJvdG90eXBlLnVuYXJ5Q2FsbCxIdC5wcm90b3R5cGUudGhlbmFibGVDYWxsPUh0LnByb3RvdHlwZS5TLEh0LnByb3RvdHlwZS5ycGNDYWxsPUh0LnByb3RvdHlwZS5YLGUuZXhwb3J0cy5HcnBjV2ViQ2xpZW50QmFzZT1IdCxlLmV4cG9ydHMuU3RhdHVzQ29kZT17T0s6MCxDQU5DRUxMRUQ6MSxVTktOT1dOOjIsSU5WQUxJRF9BUkdVTUVOVDozLERFQURMSU5FX0VYQ0VFREVEOjQsTk9UX0ZPVU5EOjUsQUxSRUFEWV9FWElTVFM6NixQRVJNSVNTSU9OX0RFTklFRDo3LFVOQVVUSEVOVElDQVRFRDoxNixSRVNPVVJDRV9FWEhBVVNURUQ6OCxGQUlMRURfUFJFQ09ORElUSU9OOjksQUJPUlRFRDoxMCxPVVRfT0ZfUkFOR0U6MTEsVU5JTVBMRU1FTlRFRDoxMixJTlRFUk5BTDoxMyxVTkFWQUlMQUJMRToxNCxEQVRBX0xPU1M6MTV9LGUuZXhwb3J0cy5NZXRob2REZXNjcmlwdG9yPWZ1bmN0aW9uKGUsdCxvLHIsbixzKXt0aGlzLm5hbWU9ZSx0aGlzLmE9bix0aGlzLmI9c30sZS5leHBvcnRzLk1ldGhvZFR5cGU9e1VOQVJZOlwidW5hcnlcIixTRVJWRVJfU1RSRUFNSU5HOlwic2VydmVyX3N0cmVhbWluZ1wiLEJJRElfU1RSRUFNSU5HOlwiYmlkaV9zdHJlYW1pbmdcIn19fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhlKXt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBvPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tlXT17ZXhwb3J0czp7fX07cmV0dXJuIF9fd2VicGFja19tb2R1bGVzX19bZV0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksby5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18uZD0oZSx0KT0+e2Zvcih2YXIgbyBpbiB0KV9fd2VicGFja19yZXF1aXJlX18ubyh0LG8pJiYhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGUsbykmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8se2VudW1lcmFibGU6ITAsZ2V0OnRbb119KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5nPWZ1bmN0aW9uKCl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMpcmV0dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpfWNhdGNoKGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksX193ZWJwYWNrX3JlcXVpcmVfXy5vPShlLHQpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSxfX3dlYnBhY2tfcmVxdWlyZV9fLnI9ZT0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9O3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fPXt9O3JldHVybigoKT0+e1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHI9dFtvXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fV9fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7SW5mb1NlcnZpY2U6KCk9PmMsU2Vzc2lvbkluZm86KCk9PnIsVmVyc2lvbkluZm86KCk9PnR9KTt2YXIgdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7dmFyIG89ZS5tYWpvcixyPWUubWlub3Isbj1lLnBhdGNoLHM9ZS5wcmVSZWxlYXNlLGk9ZS5idWlsZDshZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpLHRoaXMubWFqb3I9byx0aGlzLm1pbm9yPXIsdGhpcy5wYXRjaD1uLHRoaXMucHJlUmVsZWFzZT1zLHRoaXMuYnVpbGQ9aX12YXIgbyxyO3JldHVybiBvPXQsKHI9W3trZXk6XCJub0J1aWxkXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdCh0aGlzKTtyZXR1cm4gZS5idWlsZD12b2lkIDAsZX19LHtrZXk6XCJub1ByZVJlbGVhc2VcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPW5ldyB0KHRoaXMpO3JldHVybiBlLnByZVJlbGVhc2U9dm9pZCAwLGV9fSx7a2V5OlwidG9TdHJpbmdcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPVwiXCIuY29uY2F0KHRoaXMubWFqb3IsXCIuXCIpLmNvbmNhdCh0aGlzLm1pbm9yLFwiLlwiKS5jb25jYXQodGhpcy5wYXRjaCk7cmV0dXJuIHRoaXMucHJlUmVsZWFzZSYmKGUrPVwiLVwiLmNvbmNhdCh0aGlzLnByZVJlbGVhc2UpKSx0aGlzLmJ1aWxkJiYoZSs9XCIrXCIuY29uY2F0KHRoaXMuYnVpbGQpKSxlfX1dKSYmZShvLnByb3RvdHlwZSxyKSx0fSgpO2Z1bmN0aW9uIG8oZSx0KXtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHI9dFtvXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgbz10LnJlYWxtLHI9dC51c2VybmFtZSxuPXQucm9sZXMscz10LnBlcm1pc3Npb25zLGk9dC5leHBpcmVzOyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsZSksdGhpcy5yZWFsbT1vLHRoaXMudXNlcm5hbWU9cix0aGlzLnJvbGVzPW58fFtdLHRoaXMucGVybWlzc2lvbnM9c3x8W10sdGhpcy5leHBpcmVzPWl9dmFyIHQscjtyZXR1cm4gdD1lLChyPVt7a2V5OlwiaW1wbGllc1wiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCF0aGlzLnBlcm1pc3Npb25zKXJldHVybiExO2Zvcih2YXIgdD1lLnNwbGl0KFwiOlwiKSxvPVtcIipcIixlXSxyPTE7cjx0Lmxlbmd0aDtyKyspby5wdXNoKHQuc2xpY2UoMCxyKS5qb2luKFwiOlwiKStcIipcIik7cmV0dXJuIHRoaXMucGVybWlzc2lvbnMuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gby5pbmRleE9mKGUpPi0xfSkpLmxlbmd0aD4wfX1dKSYmbyh0LnByb3RvdHlwZSxyKSxlfSgpLG49X193ZWJwYWNrX3JlcXVpcmVfXyg2NjEpO2Z1bmN0aW9uIHMoZSx0KXt2YXIgbz1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLG8ucHVzaC5hcHBseShvLHIpfXJldHVybiBvfWZ1bmN0aW9uIGkoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG89bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/cyhPYmplY3QobyksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe2EoZSx0LG9bdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOnMoT2JqZWN0KG8pKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobyx0KSl9KSl9cmV0dXJuIGV9ZnVuY3Rpb24gYShlLHQsbyl7cmV0dXJuIHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpvLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1vLGV9ZnVuY3Rpb24gZyhlLHQsbyxyLG4scyxpKXt0cnl7dmFyIGE9ZVtzXShpKSxnPWEudmFsdWV9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgbyhlKX1hLmRvbmU/dChnKTpQcm9taXNlLnJlc29sdmUoZykudGhlbihyLG4pfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxvPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7dmFyIHM9ZS5hcHBseSh0LG8pO2Z1bmN0aW9uIGkoZSl7ZyhzLHIsbixpLGEsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gYShlKXtnKHMscixuLGksYSxcInRocm93XCIsZSl9aSh2b2lkIDApfSkpfX1mdW5jdGlvbiB1KGUsdCl7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciByPXRbb107ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX12YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyxlKSx0aGlzLnVyaT10fHxcIi9hcGlcIn12YXIgbyxzLGEsZyxjLHAsZjtyZXR1cm4gbz1lLHM9W3trZXk6XCJnZXRWZXJzaW9uSW5mb1wiLHZhbHVlOihmPWwocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgbyxyLHM7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbz1uZXcgbi5oLnYxLkdlbmVyYWxJbmZvU2VydmljZVByb21pc2VDbGllbnQodGhpcy51cmksbnVsbCxudWxsKSxyPW5ldyBuLmgudjEuR2V0VmVyc2lvbkluZm9SZXF1ZXN0LGUubmV4dD00LG8uZ2V0VmVyc2lvbkluZm8ocix7fSk7Y2FzZSA0OnJldHVybiBzPWUuc2VudCxlLmFicnVwdChcInJldHVyblwiLG5ldyB0KHMuZ2V0VmVyc2lvbkluZm8oKS50b09iamVjdCgpKSk7Y2FzZSA2OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OlwiX2dldFNlc3Npb25JbmZvXCIsdmFsdWU6KHA9bChyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSh0LG8pe3ZhciBzLGEsZyxsO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHM9e30sdCYmKHMuYXV0aGVudGljYXRpb249XCJCYXNpYyBcIitidG9hKFwiXCIuY29uY2F0KHQsXCI6XCIpLmNvbmNhdChvKSkpLGE9bmV3IG4uaC52MS5HZW5lcmFsSW5mb1NlcnZpY2VQcm9taXNlQ2xpZW50KHRoaXMudXJpLG51bGwsbnVsbCksZz1uZXcgbi5oLnYxLkdldFNlc3Npb25JbmZvUmVxdWVzdCxlLm5leHQ9NixhLmdldFNlc3Npb25JbmZvKGcscyk7Y2FzZSA2OnJldHVybiBsPWUuc2VudCxlLmFicnVwdChcInJldHVyblwiLG5ldyByKGkoaSh7fSxsLnRvT2JqZWN0KCkpLHt9LHtyb2xlczpsLmdldFJvbGVzTGlzdCgpLHBlcm1pc3Npb25zOmwuZ2V0UGVybWlzc2lvbnNMaXN0KCl9KSkpO2Nhc2UgODpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSx0KXtyZXR1cm4gcC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleTpcImdldFNlc3Npb25JbmZvXCIsdmFsdWU6KGM9bChyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSgpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLHRoaXMuX2dldFNlc3Npb25JbmZvKCk7Y2FzZSAyOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLGUuc2VudCk7Y2FzZSAzOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OlwibG9naW5cIix2YWx1ZTooZz1sKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHQsbyl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsdGhpcy5fZ2V0U2Vzc2lvbkluZm8odCxvKTtjYXNlIDI6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsZS5zZW50KTtjYXNlIDM6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6XCJsb2dvdXRcIix2YWx1ZTooYT1sKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKCl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5wcmV2PTAsZS5uZXh0PTMsdGhpcy5fZ2V0U2Vzc2lvbkluZm8oXCJsb2dvdXRcIixcIlwiKTtjYXNlIDM6dGhyb3cgZS5zZW50LG5ldyBFcnJvcihcIkxvZ291dCBkaWQgbm90IHByb2NlZWQgY29ycmVjdGx5LiBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgaXQgbG9va3MgbGlrZSBhIHByb2dyYW1taW5nIGVycm9yIGluIHRoZSB3ZWJ1aS4gUGxlYXNlIHJlcG9ydFwiKTtjYXNlIDc6aWYoZS5wcmV2PTcsZS50MD1lLmNhdGNoKDApLDE2IT09ZS50MC5jb2RlKXtlLm5leHQ9MTI7YnJlYWt9cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsITApO2Nhc2UgMTI6dGhyb3cgZS50MDtjYXNlIDEzOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1swLDddXSl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9XSxzJiZ1KG8ucHJvdG90eXBlLHMpLGV9KCl9KSgpLF9fd2VicGFja19leHBvcnRzX199KSgpfSkpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///818\n')},799:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";eval('/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\nvar aa=__webpack_require__(526),ca=__webpack_require__(851);function p(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+"Capture",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||"undefined"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n["checked","multiple","muted","selected"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for("react.element"),wa=Symbol.for("react.portal"),ya=Symbol.for("react.fragment"),za=Symbol.for("react.strict_mode"),Aa=Symbol.for("react.profiler"),Ba=Symbol.for("react.provider"),Ca=Symbol.for("react.context"),Da=Symbol.for("react.forward_ref"),Ea=Symbol.for("react.suspense"),Fa=Symbol.for("react.suspense_list"),Ga=Symbol.for("react.memo"),Ha=Symbol.for("react.lazy");Symbol.for("react.scope");Symbol.for("react.debug_trace_mode");\nvar Ia=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden");Symbol.for("react.cache");Symbol.for("react.tracing_marker");var Ja=Symbol.iterator;function Ka(a){if(null===a||"object"!==typeof a)return null;a=Ja&&a[Ja]||a["@@iterator"];return"function"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||""}return"\\n"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return"";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&"string"===typeof l.stack){for(var e=l.stack.split("\\n"),\nf=d.stack.split("\\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k="\\n"+e[g].replace(" at new "," at ");a.displayName&&k.includes("<anonymous>")&&(k=k.replace("<anonymous>",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Ma(a):""}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return""}}\nfunction Qa(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||"Context")+".Consumer";case Ba:return(a._context.displayName||"Context")+".Provider";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||"",a=""!==a?"ForwardRef("+a+")":"ForwardRef");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||"Memo";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return"Cache";case 9:return(b.displayName||"Context")+".Consumer";case 10:return(b._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return a=b.render,a=a.displayName||a.name||"",b.displayName||(""!==a?"ForwardRef("+a+")":"ForwardRef");case 7:return"Fragment";case 5:return b;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(b);case 8:return b===za?"StrictMode":"Mode";case 22:return"Offscreen";\ncase 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof b)return b.displayName||b.name||null;if("string"===typeof b)return b}return null}function Sa(a){switch(typeof a){case "boolean":case "number":case "string":case "undefined":return a;case "object":return a;default:return""}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}\nfunction Ua(a){var b=Ta(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ta(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,"checked",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?cb(a,b.type,c):b.hasOwnProperty("defaultValue")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}\nfunction cb(a,b,c){if("number"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}\nfunction lb(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?kb(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}\nvar mb,nb=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{mb=mb||document.createElement("div");mb.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(""+b).trim():b+"px"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=rb(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if("object"!==typeof b.dangerouslySetInnerHTML||!("__html"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if("function"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}});window.addEventListener("test",Mb,Mb);window.removeEventListener("test",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&"function"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");\nfunction Sc(a,b){switch(a){case "focusin":case "focusout":Lc=null;break;case "dragenter":case "dragleave":Mc=null;break;case "mouseover":case "mouseout":Nc=null;break;case "pointerover":case "pointerout":Oc.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case "focusin":return Lc=Tc(Lc,a,b,c,d,e),!0;case "dragenter":return Mc=Tc(Mc,a,b,c,d,e),!0;case "mouseover":return Nc=Tc(Nc,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case "cancel":case "click":case "close":case "contextmenu":case "copy":case "cut":case "auxclick":case "dblclick":case "dragend":case "dragstart":case "drop":case "focusin":case "focusout":case "input":case "invalid":case "keydown":case "keypress":case "keyup":case "mousedown":case "mouseup":case "paste":case "pause":case "play":case "pointercancel":case "pointerdown":case "pointerup":case "ratechange":case "reset":case "resize":case "seeked":case "submit":case "touchcancel":case "touchend":case "touchstart":case "volumechange":case "change":case "selectionchange":case "textInput":case "compositionstart":case "compositionend":case "compositionupdate":case "beforeblur":case "afterblur":case "beforeinput":case "blur":case "fullscreenchange":case "focus":case "hashchange":case "popstate":case "select":case "selectstart":return 1;case "drag":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "mousemove":case "mouseout":case "mouseover":case "pointermove":case "pointerout":case "pointerover":case "scroll":case "toggle":case "touchmove":case "wheel":case "mouseenter":case "mouseleave":case "pointerenter":case "pointerleave":return 4;\ncase "message":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e="value"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if("movementX"in\na)return a.movementX;a!==yd&&(yd&&"mousemove"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return"movementY"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:"Escape",\nSpacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",\n119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Od={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=od(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?Nd[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return"keypress"===a.type?od(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===\na.type?od(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&"CompositionEvent"in window,be=null;ia&&"documentMode"in document&&(be=document.documentMode);var ce=ia&&"TextEvent"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case "keyup":return-1!==$d.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}function he(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case "compositionend":return he(b);case "keypress":if(32!==b.which)return null;fe=!0;return ee;case "textInput":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return"compositionend"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return de&&"ko"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!le[a.type]:"textarea"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,"onChange");0<b.length&&(c=new td("onChange","change",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if("change"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;");ye="function"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent("onpropertychange",Be),qe=pe=null)}function Be(a){if("value"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){"focusin"===a?(Ae(),pe=b,qe=c,pe.attachEvent("onpropertychange",Be)):"focusout"===a&&Ae()}function De(a){if("selectionchange"===a||"keyup"===a||"keydown"===a)return te(qe)}function Ee(a,b){if("click"===a)return te(b)}function Fe(a,b){if("input"===a||"change"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He="function"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),"selectionStart"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});"function"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,"selectionStart"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,"onSelect"),0<d.length&&(b=new td("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var We={animationend:Ve("Animation","AnimationEnd"),animationiteration:Ve("Animation","AnimationIteration"),animationstart:Ve("Animation","AnimationStart"),transitionend:Ve("Transition","TransitionEnd")},Xe={},Ye={};\nia&&(Ye=document.createElement("div").style,"AnimationEvent"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),"TransitionEvent"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze("animationend"),af=Ze("animationiteration"),bf=Ze("animationstart"),cf=Ze("transitionend"),df=new Map,ef="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,"on"+kf)}ff($e,"onAnimationEnd");ff(af,"onAnimationIteration");ff(bf,"onAnimationStart");ff("dblclick","onDoubleClick");ff("focusin","onFocus");ff("focusout","onBlur");ff(cf,"onTransitionEnd");ha("onMouseEnter",["mouseout","mouseover"]);ha("onMouseLeave",["mouseout","mouseover"]);ha("onPointerEnter",["pointerout","pointerover"]);\nha("onPointerLeave",["pointerout","pointerover"]);fa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));fa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));fa("onBeforeInput",["compositionend","keypress","textInput","paste"]);fa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));fa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));\nfa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var lf="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),mf=new Set("cancel close invalid load scroll toggle".split(" ").concat(lf));\nfunction nf(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+"__bubble";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf="_reactListening"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){"selectionchange"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf("selectionchange",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||"touchstart"!==b&&"touchmove"!==b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case "keypress":if(0===od(c))break a;case "keydown":case "keyup":k=Rd;break;case "focusin":n="focus";k=Fd;break;case "focusout":n="blur";k=Fd;break;case "beforeblur":case "afterblur":k=Fd;break;case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=Bd;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k=\nDd;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case "scroll":k=vd;break;case "wheel":k=Zd;break;case "copy":case "cut":case "paste":k=Jd;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=Td}var t=0!==(b&4),J=!t&&"scroll"===a,x=t?null!==h?h+"Capture":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===a;k="mouseout"===a||"pointerout"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F="onMouseLeave";x="onMouseEnter";w="mouse";if("pointerout"===a||"pointerover"===a)t=Td,F="onPointerLeave",x="onPointerEnter",w="pointer";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+"leave",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+"enter",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===k&&"file"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);"focusout"===a&&(xa=h._wrapperState)&&\nxa.controlled&&"number"===h.type&&cb(h,"number",h.value)}xa=d?ue(d):window;switch(a){case "focusin":if(me(xa)||"true"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case "focusout":Se=Re=Qe=null;break;case "mousedown":Te=!0;break;case "contextmenu":case "mouseup":case "dragend":Te=!1;Ue(g,c,e);break;case "selectionchange":if(Pe)break;case "keydown":case "keyup":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case "compositionstart":var ba="onCompositionStart";break b;case "compositionend":ba="onCompositionEnd";\nbreak b;case "compositionupdate":ba="onCompositionUpdate";break b}ba=void 0}else ie?ge(a,c)&&(ba="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(ba="onCompositionStart");ba&&(de&&"ko"!==c.locale&&(ie||"onCompositionStart"!==ba?"onCompositionEnd"===ba&&ie&&($a=nd()):(kd=e,ld="value"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,"onBeforeInput"),\n0<d.length&&(e=new Ld("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return("string"===typeof a?a:""+a).replace(xf,"\\n").replace(yf,"")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return"textarea"===a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff="function"===typeof setTimeout?setTimeout:void 0,Gf="function"===typeof clearTimeout?clearTimeout:void 0,Hf="function"===typeof Promise?Promise:void 0,Jf="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,"/$"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else"$"!==c&&"$?"!==c&&"$!"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if("$"===b||"$!"===b||"$?"===b)break;if("/$"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of="__reactFiber$"+Nf,Pf="__reactProps$"+Nf,uf="__reactContainer$"+Nf,of="__reactEvents$"+Nf,Qf="__reactListeners$"+Nf,Rf="__reactHandles$"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||"Unknown",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg="";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType="DELETED";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b="head"!==b&&"body"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==c&&"$?"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if("function"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r="function"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;"object"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state,\n"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if("string"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,"[object Object]"===a?"object with keys {"+Object.keys(b).join(", ")+"}":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||"object"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if("string"===typeof b&&""!==b||"number"===typeof b)return b=xh(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c&&""!==c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if("string"===typeof d&&""!==d||"number"===typeof d)return a=a.get(c)||null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if("function"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){"object"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if("object"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||"object"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return"string"===typeof f&&""!==f||"number"===typeof f?(f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return"function"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=":"+b+"R"+c;c=Uh++;0<c&&(b+="H"+c.toString(32));b+=":"}else c=Vh++,b=":"+b+"r"+c.toString(32)+":";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c="",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e="\\nError generating stack: "+f.message+"\\n"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni="function"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);"function"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if("function"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;q||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?("function"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4194308)):\n("function"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m="function"===typeof y||"function"===typeof g.getSnapshotBeforeUpdate)||\n"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?("function"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),"function"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:"$!"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:"hidden",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:"hidden",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:"visible",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:"visible",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:"visible",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if("$!"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if("$?"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case "together":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case "input":e=Ya(a,e);d=Ya(a,d);f=[];break;case "select":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case "textarea":e=gb(a,e);d=gb(a,d);f=[];break;default:"function"!==typeof e.onClick&&"function"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if("style"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if("style"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else"dangerouslySetInnerHTML"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):"children"===l?"string"!==typeof k&&"number"!==typeof k||(f=f||[]).push(l,""+k):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(ea.hasOwnProperty(l)?(null!=k&&"onScroll"===l&&D("scroll",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push("style",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case "dialog":D("cancel",d);D("close",d);break;case "iframe":case "object":case "embed":D("load",d);break;case "video":case "audio":for(e=0;e<lf.length;e++)D(lf[e],d);break;case "source":D("error",d);break;case "img":case "image":case "link":D("error",\nd);D("load",d);break;case "details":D("toggle",d);break;case "input":Za(d,f);D("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};D("invalid",d);break;case "textarea":hb(d,f),D("invalid",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];"children"===g?"string"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=["children",h]):"number"===typeof h&&d.textContent!==""+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=["children",""+h]):ea.hasOwnProperty(g)&&null!=h&&"onScroll"===g&&D("scroll",d)}switch(c){case "input":Va(d);db(d,f,!0);break;case "textarea":Va(d);jb(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===a&&(a=kb(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\\x3c/script>",a=a.removeChild(a.firstChild)):\n"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case "dialog":D("cancel",a);D("close",a);e=d;break;case "iframe":case "object":case "embed":D("load",a);e=d;break;case "video":case "audio":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case "source":D("error",a);e=d;break;case "img":case "image":case "link":D("error",\na);D("load",a);e=d;break;case "details":D("toggle",a);e=d;break;case "input":Za(a,d);e=Ya(a,d);D("invalid",a);break;case "option":e=d;break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D("invalid",a);break;case "textarea":hb(a,d);e=gb(a,d);D("invalid",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];"style"===f?sb(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):"children"===f?"string"===typeof k?("textarea"!==\nc||""!==k)&&ob(a,k):"number"===typeof k&&ob(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(ea.hasOwnProperty(f)?null!=k&&"onScroll"===f&&D("scroll",a):null!=k&&ta(a,f,k,g))}switch(c){case "input":Va(a);db(a,d,!1);break;case "textarea":Va(a);jb(a);break;case "option":null!=d.value&&a.setAttribute("value",""+Sa(d.value));break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:"function"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case "button":case "input":case "select":case "textarea":d=!!d.autoFocus;break a;case "img":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&"hidden"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj="function"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if("function"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if("selectionStart"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent="":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}"function"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&"function"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,"function"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,"")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{"input"===h&&"radio"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];"style"===m?sb(e,q):"dangerouslySetInnerHTML"===m?nb(e,q):"children"===m?ob(e,q):ta(e,m,q,l)}switch(h){case "input":bb(e,f);break;case "textarea":ib(e,f);break;case "select":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:"",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if("function"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,"function"===typeof f.setProperty?f.setProperty("display","none","important"):f.display="none"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty("display")?k.display:null,h.style.display=\nrb("display",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?"":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,""),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case "button":case "input":case "select":case "textarea":k.autoFocus&&c.focus();break;case "img":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if("function"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&("function"===typeof w.getDerivedStateFromError||null!==u&&"function"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&"function"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if("function"===typeof b.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;"object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,""));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if("function"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)bj(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,""));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll="function"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if("function"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,"",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if("function"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,"",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if("function"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case "input":bb(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+\'][type="radio"]\');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case "textarea":ib(a,c);break;case "select":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d="",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(",");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f="",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version="18.2.0-next-9e3b772b8-20220608";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QXNELHVLQUF1Syx5Q0FBeUMsZ0JBQWdCLE1BQU0sYUFBYSxXQUFXO0FBQ3RYLEdBQUcsa0JBQWtCLGNBQWMsaUJBQWlCLDhCQUE4QiwwQkFBMEIsOEJBQThCLGFBQWEsNkJBQTZCLDRDQUE0Qyw2QkFBNkIsMkJBQTJCLFdBQVcsRUFBRSxVQUFVLCtCQUErQjtBQUM5VSwyQ0FBMkMsbUJBQW1CLDhCQUE4QiwwREFBMEQsdUJBQXVCLGVBQWUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanM/Yjk1NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuLypcbiBNb2Rlcm5penIgMy4wLjBwcmUgKEN1c3RvbSBCdWlsZCkgfCBNSVRcbiovXG4ndXNlIHN0cmljdCc7dmFyIGFhPXJlcXVpcmUoXCJyZWFjdFwiKSxjYT1yZXF1aXJlKFwic2NoZWR1bGVyXCIpO2Z1bmN0aW9uIHAoYSl7Zm9yKHZhciBiPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYSxjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyliKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrYStcIjsgdmlzaXQgXCIrYitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9dmFyIGRhPW5ldyBTZXQsZWE9e307ZnVuY3Rpb24gZmEoYSxiKXtoYShhLGIpO2hhKGErXCJDYXB0dXJlXCIsYil9XG5mdW5jdGlvbiBoYShhLGIpe2VhW2FdPWI7Zm9yKGE9MDthPGIubGVuZ3RoO2ErKylkYS5hZGQoYlthXSl9XG52YXIgaWE9IShcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpLGphPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksa2E9L15bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXFwtLjAtOVxcdTAwQjdcXHUwMzAwLVxcdTAzNkZcXHUyMDNGLVxcdTIwNDBdKiQvLGxhPVxue30sbWE9e307ZnVuY3Rpb24gb2EoYSl7aWYoamEuY2FsbChtYSxhKSlyZXR1cm4hMDtpZihqYS5jYWxsKGxhLGEpKXJldHVybiExO2lmKGthLnRlc3QoYSkpcmV0dXJuIG1hW2FdPSEwO2xhW2FdPSEwO3JldHVybiExfWZ1bmN0aW9uIHBhKGEsYixjLGQpe2lmKG51bGwhPT1jJiYwPT09Yy50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgYil7Y2FzZSBcImZ1bmN0aW9uXCI6Y2FzZSBcInN5bWJvbFwiOnJldHVybiEwO2Nhc2UgXCJib29sZWFuXCI6aWYoZClyZXR1cm4hMTtpZihudWxsIT09YylyZXR1cm4hYy5hY2NlcHRzQm9vbGVhbnM7YT1hLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtyZXR1cm5cImRhdGEtXCIhPT1hJiZcImFyaWEtXCIhPT1hO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gcWEoYSxiLGMsZCl7aWYobnVsbD09PWJ8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYnx8cGEoYSxiLGMsZCkpcmV0dXJuITA7aWYoZClyZXR1cm4hMTtpZihudWxsIT09Yylzd2l0Y2goYy50eXBlKXtjYXNlIDM6cmV0dXJuIWI7Y2FzZSA0OnJldHVybiExPT09YjtjYXNlIDU6cmV0dXJuIGlzTmFOKGIpO2Nhc2UgNjpyZXR1cm4gaXNOYU4oYil8fDE+Yn1yZXR1cm4hMX1mdW5jdGlvbiB2KGEsYixjLGQsZSxmLGcpe3RoaXMuYWNjZXB0c0Jvb2xlYW5zPTI9PT1ifHwzPT09Ynx8ND09PWI7dGhpcy5hdHRyaWJ1dGVOYW1lPWQ7dGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2U9ZTt0aGlzLm11c3RVc2VQcm9wZXJ0eT1jO3RoaXMucHJvcGVydHlOYW1lPWE7dGhpcy50eXBlPWI7dGhpcy5zYW5pdGl6ZVVSTD1mO3RoaXMucmVtb3ZlRW1wdHlTdHJpbmc9Z312YXIgej17fTtcblwiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDAsITEsYSxudWxsLCExLCExKX0pO1tbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJjbGFzc05hbWVcIixcImNsYXNzXCJdLFtcImh0bWxGb3JcIixcImZvclwiXSxbXCJodHRwRXF1aXZcIixcImh0dHAtZXF1aXZcIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YVswXTt6W2JdPW5ldyB2KGIsMSwhMSxhWzFdLG51bGwsITEsITEpfSk7W1wiY29udGVudEVkaXRhYmxlXCIsXCJkcmFnZ2FibGVcIixcInNwZWxsQ2hlY2tcIixcInZhbHVlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDIsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG5bXCJhdXRvUmV2ZXJzZVwiLFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFwiZm9jdXNhYmxlXCIsXCJwcmVzZXJ2ZUFscGhhXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDIsITEsYSxudWxsLCExLCExKX0pO1wiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGRpc2FibGVSZW1vdGVQbGF5YmFjayBmb3JtTm9WYWxpZGF0ZSBoaWRkZW4gbG9vcCBub01vZHVsZSBub1ZhbGlkYXRlIG9wZW4gcGxheXNJbmxpbmUgcmVhZE9ubHkgcmVxdWlyZWQgcmV2ZXJzZWQgc2NvcGVkIHNlYW1sZXNzIGl0ZW1TY29wZVwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwzLCExLGEudG9Mb3dlckNhc2UoKSxudWxsLCExLCExKX0pO1xuW1wiY2hlY2tlZFwiLFwibXVsdGlwbGVcIixcIm11dGVkXCIsXCJzZWxlY3RlZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSwzLCEwLGEsbnVsbCwhMSwhMSl9KTtbXCJjYXB0dXJlXCIsXCJkb3dubG9hZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3pbYV09bmV3IHYoYSw0LCExLGEsbnVsbCwhMSwhMSl9KTtbXCJjb2xzXCIsXCJyb3dzXCIsXCJzaXplXCIsXCJzcGFuXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDYsITEsYSxudWxsLCExLCExKX0pO1tcInJvd1NwYW5cIixcInN0YXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDUsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7dmFyIHJhPS9bXFwtOl0oW2Etel0pL2c7ZnVuY3Rpb24gc2EoYSl7cmV0dXJuIGFbMV0udG9VcHBlckNhc2UoKX1cblwiYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHRcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UocmEsXG5zYSk7eltiXT1uZXcgdihiLDEsITEsYSxudWxsLCExLCExKX0pO1wieGxpbms6YWN0dWF0ZSB4bGluazphcmNyb2xlIHhsaW5rOnJvbGUgeGxpbms6c2hvdyB4bGluazp0aXRsZSB4bGluazp0eXBlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHJhLHNhKTt6W2JdPW5ldyB2KGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLCExLCExKX0pO1tcInhtbDpiYXNlXCIsXCJ4bWw6bGFuZ1wiLFwieG1sOnNwYWNlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHJhLHNhKTt6W2JdPW5ldyB2KGIsMSwhMSxhLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsITEsITEpfSk7W1widGFiSW5kZXhcIixcImNyb3NzT3JpZ2luXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEsITEpfSk7XG56LnhsaW5rSHJlZj1uZXcgdihcInhsaW5rSHJlZlwiLDEsITEsXCJ4bGluazpocmVmXCIsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITAsITEpO1tcInNyY1wiLFwiaHJlZlwiLFwiYWN0aW9uXCIsXCJmb3JtQWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7elthXT1uZXcgdihhLDEsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITAsITApfSk7XG5mdW5jdGlvbiB0YShhLGIsYyxkKXt2YXIgZT16Lmhhc093blByb3BlcnR5KGIpP3pbYl06bnVsbDtpZihudWxsIT09ZT8wIT09ZS50eXBlOmR8fCEoMjxiLmxlbmd0aCl8fFwib1wiIT09YlswXSYmXCJPXCIhPT1iWzBdfHxcIm5cIiE9PWJbMV0mJlwiTlwiIT09YlsxXSlxYShiLGMsZSxkKSYmKGM9bnVsbCksZHx8bnVsbD09PWU/b2EoYikmJihudWxsPT09Yz9hLnJlbW92ZUF0dHJpYnV0ZShiKTphLnNldEF0dHJpYnV0ZShiLFwiXCIrYykpOmUubXVzdFVzZVByb3BlcnR5P2FbZS5wcm9wZXJ0eU5hbWVdPW51bGw9PT1jPzM9PT1lLnR5cGU/ITE6XCJcIjpjOihiPWUuYXR0cmlidXRlTmFtZSxkPWUuYXR0cmlidXRlTmFtZXNwYWNlLG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOihlPWUudHlwZSxjPTM9PT1lfHw0PT09ZSYmITA9PT1jP1wiXCI6XCJcIitjLGQ/YS5zZXRBdHRyaWJ1dGVOUyhkLGIsYyk6YS5zZXRBdHRyaWJ1dGUoYixjKSkpfVxudmFyIHVhPWFhLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVELHZhPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLHdhPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikseWE9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLHphPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxBYT1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksQmE9U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpLENhPVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLERhPVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSxFYT1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksRmE9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksR2E9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksSGE9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIik7U3ltYm9sLmZvcihcInJlYWN0LnNjb3BlXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5kZWJ1Z190cmFjZV9tb2RlXCIpO1xudmFyIElhPVN5bWJvbC5mb3IoXCJyZWFjdC5vZmZzY3JlZW5cIik7U3ltYm9sLmZvcihcInJlYWN0LmxlZ2FjeV9oaWRkZW5cIik7U3ltYm9sLmZvcihcInJlYWN0LmNhY2hlXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC50cmFjaW5nX21hcmtlclwiKTt2YXIgSmE9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEthKGEpe2lmKG51bGw9PT1hfHxcIm9iamVjdFwiIT09dHlwZW9mIGEpcmV0dXJuIG51bGw7YT1KYSYmYVtKYV18fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH12YXIgQT1PYmplY3QuYXNzaWduLExhO2Z1bmN0aW9uIE1hKGEpe2lmKHZvaWQgMD09PUxhKXRyeXt0aHJvdyBFcnJvcigpO31jYXRjaChjKXt2YXIgYj1jLnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO0xhPWImJmJbMV18fFwiXCJ9cmV0dXJuXCJcXG5cIitMYSthfXZhciBOYT0hMTtcbmZ1bmN0aW9uIE9hKGEsYil7aWYoIWF8fE5hKXJldHVyblwiXCI7TmE9ITA7dmFyIGM9RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXtpZihiKWlmKGI9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpO30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIucHJvdG90eXBlLFwicHJvcHNcIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKTt9fSksXCJvYmplY3RcIj09PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmNvbnN0cnVjdCl7dHJ5e1JlZmxlY3QuY29uc3RydWN0KGIsW10pfWNhdGNoKGwpe3ZhciBkPWx9UmVmbGVjdC5jb25zdHJ1Y3QoYSxbXSxiKX1lbHNle3RyeXtiLmNhbGwoKX1jYXRjaChsKXtkPWx9YS5jYWxsKGIucHJvdG90eXBlKX1lbHNle3RyeXt0aHJvdyBFcnJvcigpO31jYXRjaChsKXtkPWx9YSgpfX1jYXRjaChsKXtpZihsJiZkJiZcInN0cmluZ1wiPT09dHlwZW9mIGwuc3RhY2spe2Zvcih2YXIgZT1sLnN0YWNrLnNwbGl0KFwiXFxuXCIpLFxuZj1kLnN0YWNrLnNwbGl0KFwiXFxuXCIpLGc9ZS5sZW5ndGgtMSxoPWYubGVuZ3RoLTE7MTw9ZyYmMDw9aCYmZVtnXSE9PWZbaF07KWgtLTtmb3IoOzE8PWcmJjA8PWg7Zy0tLGgtLSlpZihlW2ddIT09ZltoXSl7aWYoMSE9PWd8fDEhPT1oKXtkbyBpZihnLS0saC0tLDA+aHx8ZVtnXSE9PWZbaF0pe3ZhciBrPVwiXFxuXCIrZVtnXS5yZXBsYWNlKFwiIGF0IG5ldyBcIixcIiBhdCBcIik7YS5kaXNwbGF5TmFtZSYmay5pbmNsdWRlcyhcIjxhbm9ueW1vdXM+XCIpJiYoaz1rLnJlcGxhY2UoXCI8YW5vbnltb3VzPlwiLGEuZGlzcGxheU5hbWUpKTtyZXR1cm4ga313aGlsZSgxPD1nJiYwPD1oKX1icmVha319fWZpbmFsbHl7TmE9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9Y31yZXR1cm4oYT1hP2EuZGlzcGxheU5hbWV8fGEubmFtZTpcIlwiKT9NYShhKTpcIlwifVxuZnVuY3Rpb24gUGEoYSl7c3dpdGNoKGEudGFnKXtjYXNlIDU6cmV0dXJuIE1hKGEudHlwZSk7Y2FzZSAxNjpyZXR1cm4gTWEoXCJMYXp5XCIpO2Nhc2UgMTM6cmV0dXJuIE1hKFwiU3VzcGVuc2VcIik7Y2FzZSAxOTpyZXR1cm4gTWEoXCJTdXNwZW5zZUxpc3RcIik7Y2FzZSAwOmNhc2UgMjpjYXNlIDE1OnJldHVybiBhPU9hKGEudHlwZSwhMSksYTtjYXNlIDExOnJldHVybiBhPU9hKGEudHlwZS5yZW5kZXIsITEpLGE7Y2FzZSAxOnJldHVybiBhPU9hKGEudHlwZSwhMCksYTtkZWZhdWx0OnJldHVyblwiXCJ9fVxuZnVuY3Rpb24gUWEoYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSB5YTpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSB3YTpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgQWE6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2UgemE6cmV0dXJuXCJTdHJpY3RNb2RlXCI7Y2FzZSBFYTpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBGYTpyZXR1cm5cIlN1c3BlbnNlTGlzdFwifWlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBDYTpyZXR1cm4oYS5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLkNvbnN1bWVyXCI7Y2FzZSBCYTpyZXR1cm4oYS5fY29udGV4dC5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLlByb3ZpZGVyXCI7Y2FzZSBEYTp2YXIgYj1hLnJlbmRlcjthPWEuZGlzcGxheU5hbWU7YXx8KGE9Yi5kaXNwbGF5TmFtZXx8XG5iLm5hbWV8fFwiXCIsYT1cIlwiIT09YT9cIkZvcndhcmRSZWYoXCIrYStcIilcIjpcIkZvcndhcmRSZWZcIik7cmV0dXJuIGE7Y2FzZSBHYTpyZXR1cm4gYj1hLmRpc3BsYXlOYW1lfHxudWxsLG51bGwhPT1iP2I6UWEoYS50eXBlKXx8XCJNZW1vXCI7Y2FzZSBIYTpiPWEuX3BheWxvYWQ7YT1hLl9pbml0O3RyeXtyZXR1cm4gUWEoYShiKSl9Y2F0Y2goYyl7fX1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFJhKGEpe3ZhciBiPWEudHlwZTtzd2l0Y2goYS50YWcpe2Nhc2UgMjQ6cmV0dXJuXCJDYWNoZVwiO2Nhc2UgOTpyZXR1cm4oYi5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLkNvbnN1bWVyXCI7Y2FzZSAxMDpyZXR1cm4oYi5fY29udGV4dC5kaXNwbGF5TmFtZXx8XCJDb250ZXh0XCIpK1wiLlByb3ZpZGVyXCI7Y2FzZSAxODpyZXR1cm5cIkRlaHlkcmF0ZWRGcmFnbWVudFwiO2Nhc2UgMTE6cmV0dXJuIGE9Yi5yZW5kZXIsYT1hLmRpc3BsYXlOYW1lfHxhLm5hbWV8fFwiXCIsYi5kaXNwbGF5TmFtZXx8KFwiXCIhPT1hP1wiRm9yd2FyZFJlZihcIithK1wiKVwiOlwiRm9yd2FyZFJlZlwiKTtjYXNlIDc6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgNTpyZXR1cm4gYjtjYXNlIDQ6cmV0dXJuXCJQb3J0YWxcIjtjYXNlIDM6cmV0dXJuXCJSb290XCI7Y2FzZSA2OnJldHVyblwiVGV4dFwiO2Nhc2UgMTY6cmV0dXJuIFFhKGIpO2Nhc2UgODpyZXR1cm4gYj09PXphP1wiU3RyaWN0TW9kZVwiOlwiTW9kZVwiO2Nhc2UgMjI6cmV0dXJuXCJPZmZzY3JlZW5cIjtcbmNhc2UgMTI6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2UgMjE6cmV0dXJuXCJTY29wZVwiO2Nhc2UgMTM6cmV0dXJuXCJTdXNwZW5zZVwiO2Nhc2UgMTk6cmV0dXJuXCJTdXNwZW5zZUxpc3RcIjtjYXNlIDI1OnJldHVyblwiVHJhY2luZ01hcmtlclwiO2Nhc2UgMTpjYXNlIDA6Y2FzZSAxNzpjYXNlIDI6Y2FzZSAxNDpjYXNlIDE1OmlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKXJldHVybiBiLmRpc3BsYXlOYW1lfHxiLm5hbWV8fG51bGw7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBiKXJldHVybiBifXJldHVybiBudWxsfWZ1bmN0aW9uIFNhKGEpe3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSBcImJvb2xlYW5cIjpjYXNlIFwibnVtYmVyXCI6Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJ1bmRlZmluZWRcIjpyZXR1cm4gYTtjYXNlIFwib2JqZWN0XCI6cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm5cIlwifX1cbmZ1bmN0aW9uIFRhKGEpe3ZhciBiPWEudHlwZTtyZXR1cm4oYT1hLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09YS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09Ynx8XCJyYWRpb1wiPT09Yil9XG5mdW5jdGlvbiBVYShhKXt2YXIgYj1UYShhKT9cImNoZWNrZWRcIjpcInZhbHVlXCIsYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEuY29uc3RydWN0b3IucHJvdG90eXBlLGIpLGQ9XCJcIithW2JdO2lmKCFhLmhhc093blByb3BlcnR5KGIpJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLmdldCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuc2V0KXt2YXIgZT1jLmdldCxmPWMuc2V0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oYSl7ZD1cIlwiK2E7Zi5jYWxsKHRoaXMsYSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7ZW51bWVyYWJsZTpjLmVudW1lcmFibGV9KTtyZXR1cm57Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sc2V0VmFsdWU6ZnVuY3Rpb24oYSl7ZD1cIlwiK2F9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2EuX3ZhbHVlVHJhY2tlcj1cbm51bGw7ZGVsZXRlIGFbYl19fX19ZnVuY3Rpb24gVmEoYSl7YS5fdmFsdWVUcmFja2VyfHwoYS5fdmFsdWVUcmFja2VyPVVhKGEpKX1mdW5jdGlvbiBXYShhKXtpZighYSlyZXR1cm4hMTt2YXIgYj1hLl92YWx1ZVRyYWNrZXI7aWYoIWIpcmV0dXJuITA7dmFyIGM9Yi5nZXRWYWx1ZSgpO3ZhciBkPVwiXCI7YSYmKGQ9VGEoYSk/YS5jaGVja2VkP1widHJ1ZVwiOlwiZmFsc2VcIjphLnZhbHVlKTthPWQ7cmV0dXJuIGEhPT1jPyhiLnNldFZhbHVlKGEpLCEwKTohMX1mdW5jdGlvbiBYYShhKXthPWF8fChcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCk7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fHxhLmJvZHl9Y2F0Y2goYil7cmV0dXJuIGEuYm9keX19XG5mdW5jdGlvbiBZYShhLGIpe3ZhciBjPWIuY2hlY2tlZDtyZXR1cm4gQSh7fSxiLHtkZWZhdWx0Q2hlY2tlZDp2b2lkIDAsZGVmYXVsdFZhbHVlOnZvaWQgMCx2YWx1ZTp2b2lkIDAsY2hlY2tlZDpudWxsIT1jP2M6YS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkfSl9ZnVuY3Rpb24gWmEoYSxiKXt2YXIgYz1udWxsPT1iLmRlZmF1bHRWYWx1ZT9cIlwiOmIuZGVmYXVsdFZhbHVlLGQ9bnVsbCE9Yi5jaGVja2VkP2IuY2hlY2tlZDpiLmRlZmF1bHRDaGVja2VkO2M9U2EobnVsbCE9Yi52YWx1ZT9iLnZhbHVlOmMpO2EuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbENoZWNrZWQ6ZCxpbml0aWFsVmFsdWU6Yyxjb250cm9sbGVkOlwiY2hlY2tib3hcIj09PWIudHlwZXx8XCJyYWRpb1wiPT09Yi50eXBlP251bGwhPWIuY2hlY2tlZDpudWxsIT1iLnZhbHVlfX1mdW5jdGlvbiBhYihhLGIpe2I9Yi5jaGVja2VkO251bGwhPWImJnRhKGEsXCJjaGVja2VkXCIsYiwhMSl9XG5mdW5jdGlvbiBiYihhLGIpe2FiKGEsYik7dmFyIGM9U2EoYi52YWx1ZSksZD1iLnR5cGU7aWYobnVsbCE9YylpZihcIm51bWJlclwiPT09ZCl7aWYoMD09PWMmJlwiXCI9PT1hLnZhbHVlfHxhLnZhbHVlIT1jKWEudmFsdWU9XCJcIitjfWVsc2UgYS52YWx1ZSE9PVwiXCIrYyYmKGEudmFsdWU9XCJcIitjKTtlbHNlIGlmKFwic3VibWl0XCI9PT1kfHxcInJlc2V0XCI9PT1kKXthLnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpO3JldHVybn1iLmhhc093blByb3BlcnR5KFwidmFsdWVcIik/Y2IoYSxiLnR5cGUsYyk6Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSYmY2IoYSxiLnR5cGUsU2EoYi5kZWZhdWx0VmFsdWUpKTtudWxsPT1iLmNoZWNrZWQmJm51bGwhPWIuZGVmYXVsdENoZWNrZWQmJihhLmRlZmF1bHRDaGVja2VkPSEhYi5kZWZhdWx0Q2hlY2tlZCl9XG5mdW5jdGlvbiBkYihhLGIsYyl7aWYoYi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpfHxiLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFZhbHVlXCIpKXt2YXIgZD1iLnR5cGU7aWYoIShcInN1Ym1pdFwiIT09ZCYmXCJyZXNldFwiIT09ZHx8dm9pZCAwIT09Yi52YWx1ZSYmbnVsbCE9PWIudmFsdWUpKXJldHVybjtiPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTtjfHxiPT09YS52YWx1ZXx8KGEudmFsdWU9Yik7YS5kZWZhdWx0VmFsdWU9Yn1jPWEubmFtZTtcIlwiIT09YyYmKGEubmFtZT1cIlwiKTthLmRlZmF1bHRDaGVja2VkPSEhYS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkO1wiXCIhPT1jJiYoYS5uYW1lPWMpfVxuZnVuY3Rpb24gY2IoYSxiLGMpe2lmKFwibnVtYmVyXCIhPT1ifHxYYShhLm93bmVyRG9jdW1lbnQpIT09YSludWxsPT1jP2EuZGVmYXVsdFZhbHVlPVwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZTphLmRlZmF1bHRWYWx1ZSE9PVwiXCIrYyYmKGEuZGVmYXVsdFZhbHVlPVwiXCIrYyl9dmFyIGViPUFycmF5LmlzQXJyYXk7XG5mdW5jdGlvbiBmYihhLGIsYyxkKXthPWEub3B0aW9ucztpZihiKXtiPXt9O2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWJbXCIkXCIrY1tlXV09ITA7Zm9yKGM9MDtjPGEubGVuZ3RoO2MrKyllPWIuaGFzT3duUHJvcGVydHkoXCIkXCIrYVtjXS52YWx1ZSksYVtjXS5zZWxlY3RlZCE9PWUmJihhW2NdLnNlbGVjdGVkPWUpLGUmJmQmJihhW2NdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtjPVwiXCIrU2EoYyk7Yj1udWxsO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe2lmKGFbZV0udmFsdWU9PT1jKXthW2VdLnNlbGVjdGVkPSEwO2QmJihhW2VdLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT1ifHxhW2VdLmRpc2FibGVkfHwoYj1hW2VdKX1udWxsIT09YiYmKGIuc2VsZWN0ZWQ9ITApfX1cbmZ1bmN0aW9uIGdiKGEsYil7aWYobnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCl0aHJvdyBFcnJvcihwKDkxKSk7cmV0dXJuIEEoe30sYix7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46XCJcIithLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlfSl9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYz1iLnZhbHVlO2lmKG51bGw9PWMpe2M9Yi5jaGlsZHJlbjtiPWIuZGVmYXVsdFZhbHVlO2lmKG51bGwhPWMpe2lmKG51bGwhPWIpdGhyb3cgRXJyb3IocCg5MikpO2lmKGViKGMpKXtpZigxPGMubGVuZ3RoKXRocm93IEVycm9yKHAoOTMpKTtjPWNbMF19Yj1jfW51bGw9PWImJihiPVwiXCIpO2M9Yn1hLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpTYShjKX19XG5mdW5jdGlvbiBpYihhLGIpe3ZhciBjPVNhKGIudmFsdWUpLGQ9U2EoYi5kZWZhdWx0VmFsdWUpO251bGwhPWMmJihjPVwiXCIrYyxjIT09YS52YWx1ZSYmKGEudmFsdWU9YyksbnVsbD09Yi5kZWZhdWx0VmFsdWUmJmEuZGVmYXVsdFZhbHVlIT09YyYmKGEuZGVmYXVsdFZhbHVlPWMpKTtudWxsIT1kJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitkKX1mdW5jdGlvbiBqYihhKXt2YXIgYj1hLnRleHRDb250ZW50O2I9PT1hLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiZcIlwiIT09YiYmbnVsbCE9PWImJihhLnZhbHVlPWIpfWZ1bmN0aW9uIGtiKGEpe3N3aXRjaChhKXtjYXNlIFwic3ZnXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO2Nhc2UgXCJtYXRoXCI6cmV0dXJuXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI7ZGVmYXVsdDpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIn19XG5mdW5jdGlvbiBsYihhLGIpe3JldHVybiBudWxsPT1hfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWE/a2IoYik6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YSYmXCJmb3JlaWduT2JqZWN0XCI9PT1iP1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiOmF9XG52YXIgbWIsbmI9ZnVuY3Rpb24oYSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oYixjLGQsZSl7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gYShiLGMsZCxlKX0pfTphfShmdW5jdGlvbihhLGIpe2lmKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiE9PWEubmFtZXNwYWNlVVJJfHxcImlubmVySFRNTFwiaW4gYSlhLmlubmVySFRNTD1iO2Vsc2V7bWI9bWJ8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bWIuaW5uZXJIVE1MPVwiPHN2Zz5cIitiLnZhbHVlT2YoKS50b1N0cmluZygpK1wiPC9zdmc+XCI7Zm9yKGI9bWIuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2IuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChiLmZpcnN0Q2hpbGQpfX0pO1xuZnVuY3Rpb24gb2IoYSxiKXtpZihiKXt2YXIgYz1hLmZpcnN0Q2hpbGQ7aWYoYyYmYz09PWEubGFzdENoaWxkJiYzPT09Yy5ub2RlVHlwZSl7Yy5ub2RlVmFsdWU9YjtyZXR1cm59fWEudGV4dENvbnRlbnQ9Yn1cbnZhciBwYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VPdXRzZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEwLGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDohMCxjb2x1bW5Db3VudDohMCxjb2x1bW5zOiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZsZXhPcmRlcjohMCxncmlkQXJlYTohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsZ3JpZFJvd1NwYW46ITAsZ3JpZFJvd1N0YXJ0OiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3BhbjohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZm9udFdlaWdodDohMCxsaW5lQ2xhbXA6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsdGFiU2l6ZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLFxuem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxxYj1bXCJXZWJraXRcIixcIm1zXCIsXCJNb3pcIixcIk9cIl07T2JqZWN0LmtleXMocGIpLmZvckVhY2goZnVuY3Rpb24oYSl7cWIuZm9yRWFjaChmdW5jdGlvbihiKXtiPWIrYS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxKTtwYltiXT1wYlthXX0pfSk7ZnVuY3Rpb24gcmIoYSxiLGMpe3JldHVybiBudWxsPT1ifHxcImJvb2xlYW5cIj09PXR5cGVvZiBifHxcIlwiPT09Yj9cIlwiOmN8fFwibnVtYmVyXCIhPT10eXBlb2YgYnx8MD09PWJ8fHBiLmhhc093blByb3BlcnR5KGEpJiZwYlthXT8oXCJcIitiKS50cmltKCk6YitcInB4XCJ9XG5mdW5jdGlvbiBzYihhLGIpe2E9YS5zdHlsZTtmb3IodmFyIGMgaW4gYilpZihiLmhhc093blByb3BlcnR5KGMpKXt2YXIgZD0wPT09Yy5pbmRleE9mKFwiLS1cIiksZT1yYihjLGJbY10sZCk7XCJmbG9hdFwiPT09YyYmKGM9XCJjc3NGbG9hdFwiKTtkP2Euc2V0UHJvcGVydHkoYyxlKTphW2NdPWV9fXZhciB0Yj1BKHttZW51aXRlbTohMH0se2FyZWE6ITAsYmFzZTohMCxicjohMCxjb2w6ITAsZW1iZWQ6ITAsaHI6ITAsaW1nOiEwLGlucHV0OiEwLGtleWdlbjohMCxsaW5rOiEwLG1ldGE6ITAscGFyYW06ITAsc291cmNlOiEwLHRyYWNrOiEwLHdicjohMH0pO1xuZnVuY3Rpb24gdWIoYSxiKXtpZihiKXtpZih0YlthXSYmKG51bGwhPWIuY2hpbGRyZW58fG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHAoMTM3LGEpKTtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT1iLmNoaWxkcmVuKXRocm93IEVycm9yKHAoNjApKTtpZihcIm9iamVjdFwiIT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8fCEoXCJfX2h0bWxcImluIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IEVycm9yKHAoNjEpKTt9aWYobnVsbCE9Yi5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiBiLnN0eWxlKXRocm93IEVycm9yKHAoNjIpKTt9fVxuZnVuY3Rpb24gdmIoYSxiKXtpZigtMT09PWEuaW5kZXhPZihcIi1cIikpcmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBiLmlzO3N3aXRjaChhKXtjYXNlIFwiYW5ub3RhdGlvbi14bWxcIjpjYXNlIFwiY29sb3ItcHJvZmlsZVwiOmNhc2UgXCJmb250LWZhY2VcIjpjYXNlIFwiZm9udC1mYWNlLXNyY1wiOmNhc2UgXCJmb250LWZhY2UtdXJpXCI6Y2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlIFwiZm9udC1mYWNlLW5hbWVcIjpjYXNlIFwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciB3Yj1udWxsO2Z1bmN0aW9uIHhiKGEpe2E9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93O2EuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihhPWEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpO3JldHVybiAzPT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YX12YXIgeWI9bnVsbCx6Yj1udWxsLEFiPW51bGw7XG5mdW5jdGlvbiBCYihhKXtpZihhPUNiKGEpKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgeWIpdGhyb3cgRXJyb3IocCgyODApKTt2YXIgYj1hLnN0YXRlTm9kZTtiJiYoYj1EYihiKSx5YihhLnN0YXRlTm9kZSxhLnR5cGUsYikpfX1mdW5jdGlvbiBFYihhKXt6Yj9BYj9BYi5wdXNoKGEpOkFiPVthXTp6Yj1hfWZ1bmN0aW9uIEZiKCl7aWYoemIpe3ZhciBhPXpiLGI9QWI7QWI9emI9bnVsbDtCYihhKTtpZihiKWZvcihhPTA7YTxiLmxlbmd0aDthKyspQmIoYlthXSl9fWZ1bmN0aW9uIEdiKGEsYil7cmV0dXJuIGEoYil9ZnVuY3Rpb24gSGIoKXt9dmFyIEliPSExO2Z1bmN0aW9uIEpiKGEsYixjKXtpZihJYilyZXR1cm4gYShiLGMpO0liPSEwO3RyeXtyZXR1cm4gR2IoYSxiLGMpfWZpbmFsbHl7aWYoSWI9ITEsbnVsbCE9PXpifHxudWxsIT09QWIpSGIoKSxGYigpfX1cbmZ1bmN0aW9uIEtiKGEsYil7dmFyIGM9YS5zdGF0ZU5vZGU7aWYobnVsbD09PWMpcmV0dXJuIG51bGw7dmFyIGQ9RGIoYyk7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7Yz1kW2JdO2E6c3dpdGNoKGIpe2Nhc2UgXCJvbkNsaWNrXCI6Y2FzZSBcIm9uQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tcIjpjYXNlIFwib25Eb3VibGVDbGlja0NhcHR1cmVcIjpjYXNlIFwib25Nb3VzZURvd25cIjpjYXNlIFwib25Nb3VzZURvd25DYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VNb3ZlXCI6Y2FzZSBcIm9uTW91c2VNb3ZlQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlVXBcIjpjYXNlIFwib25Nb3VzZVVwQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlRW50ZXJcIjooZD0hZC5kaXNhYmxlZCl8fChhPWEudHlwZSxkPSEoXCJidXR0b25cIj09PWF8fFwiaW5wdXRcIj09PWF8fFwic2VsZWN0XCI9PT1hfHxcInRleHRhcmVhXCI9PT1hKSk7YT0hZDticmVhayBhO2RlZmF1bHQ6YT0hMX1pZihhKXJldHVybiBudWxsO2lmKGMmJlwiZnVuY3Rpb25cIiE9PVxudHlwZW9mIGMpdGhyb3cgRXJyb3IocCgyMzEsYix0eXBlb2YgYykpO3JldHVybiBjfXZhciBMYj0hMTtpZihpYSl0cnl7dmFyIE1iPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShNYixcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7TGI9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsTWIsTWIpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidGVzdFwiLE1iLE1iKX1jYXRjaChhKXtMYj0hMX1mdW5jdGlvbiBOYihhLGIsYyxkLGUsZixnLGgsayl7dmFyIGw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXtiLmFwcGx5KGMsbCl9Y2F0Y2gobSl7dGhpcy5vbkVycm9yKG0pfX12YXIgT2I9ITEsUGI9bnVsbCxRYj0hMSxSYj1udWxsLFNiPXtvbkVycm9yOmZ1bmN0aW9uKGEpe09iPSEwO1BiPWF9fTtmdW5jdGlvbiBUYihhLGIsYyxkLGUsZixnLGgsayl7T2I9ITE7UGI9bnVsbDtOYi5hcHBseShTYixhcmd1bWVudHMpfVxuZnVuY3Rpb24gVWIoYSxiLGMsZCxlLGYsZyxoLGspe1RiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihPYil7aWYoT2Ipe3ZhciBsPVBiO09iPSExO1BiPW51bGx9ZWxzZSB0aHJvdyBFcnJvcihwKDE5OCkpO1FifHwoUWI9ITAsUmI9bCl9fWZ1bmN0aW9uIFZiKGEpe3ZhciBiPWEsYz1hO2lmKGEuYWx0ZXJuYXRlKWZvcig7Yi5yZXR1cm47KWI9Yi5yZXR1cm47ZWxzZXthPWI7ZG8gYj1hLDAhPT0oYi5mbGFncyY0MDk4KSYmKGM9Yi5yZXR1cm4pLGE9Yi5yZXR1cm47d2hpbGUoYSl9cmV0dXJuIDM9PT1iLnRhZz9jOm51bGx9ZnVuY3Rpb24gV2IoYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9YS5tZW1vaXplZFN0YXRlO251bGw9PT1iJiYoYT1hLmFsdGVybmF0ZSxudWxsIT09YSYmKGI9YS5tZW1vaXplZFN0YXRlKSk7aWYobnVsbCE9PWIpcmV0dXJuIGIuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBYYihhKXtpZihWYihhKSE9PWEpdGhyb3cgRXJyb3IocCgxODgpKTt9XG5mdW5jdGlvbiBZYihhKXt2YXIgYj1hLmFsdGVybmF0ZTtpZighYil7Yj1WYihhKTtpZihudWxsPT09Yil0aHJvdyBFcnJvcihwKDE4OCkpO3JldHVybiBiIT09YT9udWxsOmF9Zm9yKHZhciBjPWEsZD1iOzspe3ZhciBlPWMucmV0dXJuO2lmKG51bGw9PT1lKWJyZWFrO3ZhciBmPWUuYWx0ZXJuYXRlO2lmKG51bGw9PT1mKXtkPWUucmV0dXJuO2lmKG51bGwhPT1kKXtjPWQ7Y29udGludWV9YnJlYWt9aWYoZS5jaGlsZD09PWYuY2hpbGQpe2ZvcihmPWUuY2hpbGQ7Zjspe2lmKGY9PT1jKXJldHVybiBYYihlKSxhO2lmKGY9PT1kKXJldHVybiBYYihlKSxiO2Y9Zi5zaWJsaW5nfXRocm93IEVycm9yKHAoMTg4KSk7fWlmKGMucmV0dXJuIT09ZC5yZXR1cm4pYz1lLGQ9ZjtlbHNle2Zvcih2YXIgZz0hMSxoPWUuY2hpbGQ7aDspe2lmKGg9PT1jKXtnPSEwO2M9ZTtkPWY7YnJlYWt9aWYoaD09PWQpe2c9ITA7ZD1lO2M9ZjticmVha31oPWguc2libGluZ31pZighZyl7Zm9yKGg9Zi5jaGlsZDtoOyl7aWYoaD09PVxuYyl7Zz0hMDtjPWY7ZD1lO2JyZWFrfWlmKGg9PT1kKXtnPSEwO2Q9ZjtjPWU7YnJlYWt9aD1oLnNpYmxpbmd9aWYoIWcpdGhyb3cgRXJyb3IocCgxODkpKTt9fWlmKGMuYWx0ZXJuYXRlIT09ZCl0aHJvdyBFcnJvcihwKDE5MCkpO31pZigzIT09Yy50YWcpdGhyb3cgRXJyb3IocCgxODgpKTtyZXR1cm4gYy5zdGF0ZU5vZGUuY3VycmVudD09PWM/YTpifWZ1bmN0aW9uIFpiKGEpe2E9WWIoYSk7cmV0dXJuIG51bGwhPT1hPyRiKGEpOm51bGx9ZnVuY3Rpb24gJGIoYSl7aWYoNT09PWEudGFnfHw2PT09YS50YWcpcmV0dXJuIGE7Zm9yKGE9YS5jaGlsZDtudWxsIT09YTspe3ZhciBiPSRiKGEpO2lmKG51bGwhPT1iKXJldHVybiBiO2E9YS5zaWJsaW5nfXJldHVybiBudWxsfVxudmFyIGFjPWNhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssYmM9Y2EudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssY2M9Y2EudW5zdGFibGVfc2hvdWxkWWllbGQsZGM9Y2EudW5zdGFibGVfcmVxdWVzdFBhaW50LEI9Y2EudW5zdGFibGVfbm93LGVjPWNhLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLGZjPWNhLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGdjPWNhLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGhjPWNhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGljPWNhLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGpjPWNhLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxrYz1udWxsLGxjPW51bGw7ZnVuY3Rpb24gbWMoYSl7aWYobGMmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBsYy5vbkNvbW1pdEZpYmVyUm9vdCl0cnl7bGMub25Db21taXRGaWJlclJvb3Qoa2MsYSx2b2lkIDAsMTI4PT09KGEuY3VycmVudC5mbGFncyYxMjgpKX1jYXRjaChiKXt9fVxudmFyIG9jPU1hdGguY2x6MzI/TWF0aC5jbHozMjpuYyxwYz1NYXRoLmxvZyxxYz1NYXRoLkxOMjtmdW5jdGlvbiBuYyhhKXthPj4+PTA7cmV0dXJuIDA9PT1hPzMyOjMxLShwYyhhKS9xY3wwKXwwfXZhciByYz02NCxzYz00MTk0MzA0O1xuZnVuY3Rpb24gdGMoYSl7c3dpdGNoKGEmLWEpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiA0O2Nhc2UgODpyZXR1cm4gODtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDMyOnJldHVybiAzMjtjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBhJjQxOTQyNDA7Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6Y2FzZSA2NzEwODg2NDpyZXR1cm4gYSYxMzAwMjM0MjQ7Y2FzZSAxMzQyMTc3Mjg6cmV0dXJuIDEzNDIxNzcyODtjYXNlIDI2ODQzNTQ1NjpyZXR1cm4gMjY4NDM1NDU2O2Nhc2UgNTM2ODcwOTEyOnJldHVybiA1MzY4NzA5MTI7Y2FzZSAxMDczNzQxODI0OnJldHVybiAxMDczNzQxODI0O1xuZGVmYXVsdDpyZXR1cm4gYX19ZnVuY3Rpb24gdWMoYSxiKXt2YXIgYz1hLnBlbmRpbmdMYW5lcztpZigwPT09YylyZXR1cm4gMDt2YXIgZD0wLGU9YS5zdXNwZW5kZWRMYW5lcyxmPWEucGluZ2VkTGFuZXMsZz1jJjI2ODQzNTQ1NTtpZigwIT09Zyl7dmFyIGg9ZyZ+ZTswIT09aD9kPXRjKGgpOihmJj1nLDAhPT1mJiYoZD10YyhmKSkpfWVsc2UgZz1jJn5lLDAhPT1nP2Q9dGMoZyk6MCE9PWYmJihkPXRjKGYpKTtpZigwPT09ZClyZXR1cm4gMDtpZigwIT09YiYmYiE9PWQmJjA9PT0oYiZlKSYmKGU9ZCYtZCxmPWImLWIsZT49Znx8MTY9PT1lJiYwIT09KGYmNDE5NDI0MCkpKXJldHVybiBiOzAhPT0oZCY0KSYmKGR8PWMmMTYpO2I9YS5lbnRhbmdsZWRMYW5lcztpZigwIT09Yilmb3IoYT1hLmVudGFuZ2xlbWVudHMsYiY9ZDswPGI7KWM9MzEtb2MoYiksZT0xPDxjLGR8PWFbY10sYiY9fmU7cmV0dXJuIGR9XG5mdW5jdGlvbiB2YyhhLGIpe3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gYisyNTA7Y2FzZSA4OmNhc2UgMTY6Y2FzZSAzMjpjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBiKzVFMztjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpjYXNlIDY3MTA4ODY0OnJldHVybi0xO2Nhc2UgMTM0MjE3NzI4OmNhc2UgMjY4NDM1NDU2OmNhc2UgNTM2ODcwOTEyOmNhc2UgMTA3Mzc0MTgyNDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX1cbmZ1bmN0aW9uIHdjKGEsYil7Zm9yKHZhciBjPWEuc3VzcGVuZGVkTGFuZXMsZD1hLnBpbmdlZExhbmVzLGU9YS5leHBpcmF0aW9uVGltZXMsZj1hLnBlbmRpbmdMYW5lczswPGY7KXt2YXIgZz0zMS1vYyhmKSxoPTE8PGcsaz1lW2ddO2lmKC0xPT09ayl7aWYoMD09PShoJmMpfHwwIT09KGgmZCkpZVtnXT12YyhoLGIpfWVsc2Ugazw9YiYmKGEuZXhwaXJlZExhbmVzfD1oKTtmJj1+aH19ZnVuY3Rpb24geGMoYSl7YT1hLnBlbmRpbmdMYW5lcyYtMTA3Mzc0MTgyNTtyZXR1cm4gMCE9PWE/YTphJjEwNzM3NDE4MjQ/MTA3Mzc0MTgyNDowfWZ1bmN0aW9uIHljKCl7dmFyIGE9cmM7cmM8PD0xOzA9PT0ocmMmNDE5NDI0MCkmJihyYz02NCk7cmV0dXJuIGF9ZnVuY3Rpb24gemMoYSl7Zm9yKHZhciBiPVtdLGM9MDszMT5jO2MrKyliLnB1c2goYSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBBYyhhLGIsYyl7YS5wZW5kaW5nTGFuZXN8PWI7NTM2ODcwOTEyIT09YiYmKGEuc3VzcGVuZGVkTGFuZXM9MCxhLnBpbmdlZExhbmVzPTApO2E9YS5ldmVudFRpbWVzO2I9MzEtb2MoYik7YVtiXT1jfWZ1bmN0aW9uIEJjKGEsYil7dmFyIGM9YS5wZW5kaW5nTGFuZXMmfmI7YS5wZW5kaW5nTGFuZXM9YjthLnN1c3BlbmRlZExhbmVzPTA7YS5waW5nZWRMYW5lcz0wO2EuZXhwaXJlZExhbmVzJj1iO2EubXV0YWJsZVJlYWRMYW5lcyY9YjthLmVudGFuZ2xlZExhbmVzJj1iO2I9YS5lbnRhbmdsZW1lbnRzO3ZhciBkPWEuZXZlbnRUaW1lcztmb3IoYT1hLmV4cGlyYXRpb25UaW1lczswPGM7KXt2YXIgZT0zMS1vYyhjKSxmPTE8PGU7YltlXT0wO2RbZV09LTE7YVtlXT0tMTtjJj1+Zn19XG5mdW5jdGlvbiBDYyhhLGIpe3ZhciBjPWEuZW50YW5nbGVkTGFuZXN8PWI7Zm9yKGE9YS5lbnRhbmdsZW1lbnRzO2M7KXt2YXIgZD0zMS1vYyhjKSxlPTE8PGQ7ZSZifGFbZF0mYiYmKGFbZF18PWIpO2MmPX5lfX12YXIgQz0wO2Z1bmN0aW9uIERjKGEpe2EmPS1hO3JldHVybiAxPGE/NDxhPzAhPT0oYSYyNjg0MzU0NTUpPzE2OjUzNjg3MDkxMjo0OjF9dmFyIEVjLEZjLEdjLEhjLEljLEpjPSExLEtjPVtdLExjPW51bGwsTWM9bnVsbCxOYz1udWxsLE9jPW5ldyBNYXAsUGM9bmV3IE1hcCxRYz1bXSxSYz1cIm1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCBzdWJtaXRcIi5zcGxpdChcIiBcIik7XG5mdW5jdGlvbiBTYyhhLGIpe3N3aXRjaChhKXtjYXNlIFwiZm9jdXNpblwiOmNhc2UgXCJmb2N1c291dFwiOkxjPW51bGw7YnJlYWs7Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnbGVhdmVcIjpNYz1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwibW91c2VvdXRcIjpOYz1udWxsO2JyZWFrO2Nhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJwb2ludGVyb3V0XCI6T2MuZGVsZXRlKGIucG9pbnRlcklkKTticmVhaztjYXNlIFwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6UGMuZGVsZXRlKGIucG9pbnRlcklkKX19XG5mdW5jdGlvbiBUYyhhLGIsYyxkLGUsZil7aWYobnVsbD09PWF8fGEubmF0aXZlRXZlbnQhPT1mKXJldHVybiBhPXtibG9ja2VkT246Yixkb21FdmVudE5hbWU6YyxldmVudFN5c3RlbUZsYWdzOmQsbmF0aXZlRXZlbnQ6Zix0YXJnZXRDb250YWluZXJzOltlXX0sbnVsbCE9PWImJihiPUNiKGIpLG51bGwhPT1iJiZGYyhiKSksYTthLmV2ZW50U3lzdGVtRmxhZ3N8PWQ7Yj1hLnRhcmdldENvbnRhaW5lcnM7bnVsbCE9PWUmJi0xPT09Yi5pbmRleE9mKGUpJiZiLnB1c2goZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiBVYyhhLGIsYyxkLGUpe3N3aXRjaChiKXtjYXNlIFwiZm9jdXNpblwiOnJldHVybiBMYz1UYyhMYyxhLGIsYyxkLGUpLCEwO2Nhc2UgXCJkcmFnZW50ZXJcIjpyZXR1cm4gTWM9VGMoTWMsYSxiLGMsZCxlKSwhMDtjYXNlIFwibW91c2VvdmVyXCI6cmV0dXJuIE5jPVRjKE5jLGEsYixjLGQsZSksITA7Y2FzZSBcInBvaW50ZXJvdmVyXCI6dmFyIGY9ZS5wb2ludGVySWQ7T2Muc2V0KGYsVGMoT2MuZ2V0KGYpfHxudWxsLGEsYixjLGQsZSkpO3JldHVybiEwO2Nhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOnJldHVybiBmPWUucG9pbnRlcklkLFBjLnNldChmLFRjKFBjLmdldChmKXx8bnVsbCxhLGIsYyxkLGUpKSwhMH1yZXR1cm4hMX1cbmZ1bmN0aW9uIFZjKGEpe3ZhciBiPVdjKGEudGFyZ2V0KTtpZihudWxsIT09Yil7dmFyIGM9VmIoYik7aWYobnVsbCE9PWMpaWYoYj1jLnRhZywxMz09PWIpe2lmKGI9V2IoYyksbnVsbCE9PWIpe2EuYmxvY2tlZE9uPWI7SWMoYS5wcmlvcml0eSxmdW5jdGlvbigpe0djKGMpfSk7cmV0dXJufX1lbHNlIGlmKDM9PT1iJiZjLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXthLmJsb2NrZWRPbj0zPT09Yy50YWc/Yy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19YS5ibG9ja2VkT249bnVsbH1cbmZ1bmN0aW9uIFhjKGEpe2lmKG51bGwhPT1hLmJsb2NrZWRPbilyZXR1cm4hMTtmb3IodmFyIGI9YS50YXJnZXRDb250YWluZXJzOzA8Yi5sZW5ndGg7KXt2YXIgYz1ZYyhhLmRvbUV2ZW50TmFtZSxhLmV2ZW50U3lzdGVtRmxhZ3MsYlswXSxhLm5hdGl2ZUV2ZW50KTtpZihudWxsPT09Yyl7Yz1hLm5hdGl2ZUV2ZW50O3ZhciBkPW5ldyBjLmNvbnN0cnVjdG9yKGMudHlwZSxjKTt3Yj1kO2MudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZCk7d2I9bnVsbH1lbHNlIHJldHVybiBiPUNiKGMpLG51bGwhPT1iJiZGYyhiKSxhLmJsb2NrZWRPbj1jLCExO2Iuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBaYyhhLGIsYyl7WGMoYSkmJmMuZGVsZXRlKGIpfWZ1bmN0aW9uICRjKCl7SmM9ITE7bnVsbCE9PUxjJiZYYyhMYykmJihMYz1udWxsKTtudWxsIT09TWMmJlhjKE1jKSYmKE1jPW51bGwpO251bGwhPT1OYyYmWGMoTmMpJiYoTmM9bnVsbCk7T2MuZm9yRWFjaChaYyk7UGMuZm9yRWFjaChaYyl9XG5mdW5jdGlvbiBhZChhLGIpe2EuYmxvY2tlZE9uPT09YiYmKGEuYmxvY2tlZE9uPW51bGwsSmN8fChKYz0hMCxjYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGNhLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCRjKSkpfVxuZnVuY3Rpb24gYmQoYSl7ZnVuY3Rpb24gYihiKXtyZXR1cm4gYWQoYixhKX1pZigwPEtjLmxlbmd0aCl7YWQoS2NbMF0sYSk7Zm9yKHZhciBjPTE7YzxLYy5sZW5ndGg7YysrKXt2YXIgZD1LY1tjXTtkLmJsb2NrZWRPbj09PWEmJihkLmJsb2NrZWRPbj1udWxsKX19bnVsbCE9PUxjJiZhZChMYyxhKTtudWxsIT09TWMmJmFkKE1jLGEpO251bGwhPT1OYyYmYWQoTmMsYSk7T2MuZm9yRWFjaChiKTtQYy5mb3JFYWNoKGIpO2ZvcihjPTA7YzxRYy5sZW5ndGg7YysrKWQ9UWNbY10sZC5ibG9ja2VkT249PT1hJiYoZC5ibG9ja2VkT249bnVsbCk7Zm9yKDswPFFjLmxlbmd0aCYmKGM9UWNbMF0sbnVsbD09PWMuYmxvY2tlZE9uKTspVmMoYyksbnVsbD09PWMuYmxvY2tlZE9uJiZRYy5zaGlmdCgpfXZhciBjZD11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxkZD0hMDtcbmZ1bmN0aW9uIGVkKGEsYixjLGQpe3ZhciBlPUMsZj1jZC50cmFuc2l0aW9uO2NkLnRyYW5zaXRpb249bnVsbDt0cnl7Qz0xLGZkKGEsYixjLGQpfWZpbmFsbHl7Qz1lLGNkLnRyYW5zaXRpb249Zn19ZnVuY3Rpb24gZ2QoYSxiLGMsZCl7dmFyIGU9QyxmPWNkLnRyYW5zaXRpb247Y2QudHJhbnNpdGlvbj1udWxsO3RyeXtDPTQsZmQoYSxiLGMsZCl9ZmluYWxseXtDPWUsY2QudHJhbnNpdGlvbj1mfX1cbmZ1bmN0aW9uIGZkKGEsYixjLGQpe2lmKGRkKXt2YXIgZT1ZYyhhLGIsYyxkKTtpZihudWxsPT09ZSloZChhLGIsZCxpZCxjKSxTYyhhLGQpO2Vsc2UgaWYoVWMoZSxhLGIsYyxkKSlkLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYoU2MoYSxkKSxiJjQmJi0xPFJjLmluZGV4T2YoYSkpe2Zvcig7bnVsbCE9PWU7KXt2YXIgZj1DYihlKTtudWxsIT09ZiYmRWMoZik7Zj1ZYyhhLGIsYyxkKTtudWxsPT09ZiYmaGQoYSxiLGQsaWQsYyk7aWYoZj09PWUpYnJlYWs7ZT1mfW51bGwhPT1lJiZkLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgaGQoYSxiLGQsbnVsbCxjKX19dmFyIGlkPW51bGw7XG5mdW5jdGlvbiBZYyhhLGIsYyxkKXtpZD1udWxsO2E9eGIoZCk7YT1XYyhhKTtpZihudWxsIT09YSlpZihiPVZiKGEpLG51bGw9PT1iKWE9bnVsbDtlbHNlIGlmKGM9Yi50YWcsMTM9PT1jKXthPVdiKGIpO2lmKG51bGwhPT1hKXJldHVybiBhO2E9bnVsbH1lbHNlIGlmKDM9PT1jKXtpZihiLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09Yi50YWc/Yi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2E9bnVsbH1lbHNlIGIhPT1hJiYoYT1udWxsKTtpZD1hO3JldHVybiBudWxsfVxuZnVuY3Rpb24gamQoYSl7c3dpdGNoKGEpe2Nhc2UgXCJjYW5jZWxcIjpjYXNlIFwiY2xpY2tcIjpjYXNlIFwiY2xvc2VcIjpjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwiY29weVwiOmNhc2UgXCJjdXRcIjpjYXNlIFwiYXV4Y2xpY2tcIjpjYXNlIFwiZGJsY2xpY2tcIjpjYXNlIFwiZHJhZ2VuZFwiOmNhc2UgXCJkcmFnc3RhcnRcIjpjYXNlIFwiZHJvcFwiOmNhc2UgXCJmb2N1c2luXCI6Y2FzZSBcImZvY3Vzb3V0XCI6Y2FzZSBcImlucHV0XCI6Y2FzZSBcImludmFsaWRcIjpjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXlwcmVzc1wiOmNhc2UgXCJrZXl1cFwiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJwYXN0ZVwiOmNhc2UgXCJwYXVzZVwiOmNhc2UgXCJwbGF5XCI6Y2FzZSBcInBvaW50ZXJjYW5jZWxcIjpjYXNlIFwicG9pbnRlcmRvd25cIjpjYXNlIFwicG9pbnRlcnVwXCI6Y2FzZSBcInJhdGVjaGFuZ2VcIjpjYXNlIFwicmVzZXRcIjpjYXNlIFwicmVzaXplXCI6Y2FzZSBcInNlZWtlZFwiOmNhc2UgXCJzdWJtaXRcIjpjYXNlIFwidG91Y2hjYW5jZWxcIjpjYXNlIFwidG91Y2hlbmRcIjpjYXNlIFwidG91Y2hzdGFydFwiOmNhc2UgXCJ2b2x1bWVjaGFuZ2VcIjpjYXNlIFwiY2hhbmdlXCI6Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmNhc2UgXCJ0ZXh0SW5wdXRcIjpjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOmNhc2UgXCJjb21wb3NpdGlvbmVuZFwiOmNhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOmNhc2UgXCJiZWZvcmVibHVyXCI6Y2FzZSBcImFmdGVyYmx1clwiOmNhc2UgXCJiZWZvcmVpbnB1dFwiOmNhc2UgXCJibHVyXCI6Y2FzZSBcImZ1bGxzY3JlZW5jaGFuZ2VcIjpjYXNlIFwiZm9jdXNcIjpjYXNlIFwiaGFzaGNoYW5nZVwiOmNhc2UgXCJwb3BzdGF0ZVwiOmNhc2UgXCJzZWxlY3RcIjpjYXNlIFwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMTtjYXNlIFwiZHJhZ1wiOmNhc2UgXCJkcmFnZW50ZXJcIjpjYXNlIFwiZHJhZ2V4aXRcIjpjYXNlIFwiZHJhZ2xlYXZlXCI6Y2FzZSBcImRyYWdvdmVyXCI6Y2FzZSBcIm1vdXNlbW92ZVwiOmNhc2UgXCJtb3VzZW91dFwiOmNhc2UgXCJtb3VzZW92ZXJcIjpjYXNlIFwicG9pbnRlcm1vdmVcIjpjYXNlIFwicG9pbnRlcm91dFwiOmNhc2UgXCJwb2ludGVyb3ZlclwiOmNhc2UgXCJzY3JvbGxcIjpjYXNlIFwidG9nZ2xlXCI6Y2FzZSBcInRvdWNobW92ZVwiOmNhc2UgXCJ3aGVlbFwiOmNhc2UgXCJtb3VzZWVudGVyXCI6Y2FzZSBcIm1vdXNlbGVhdmVcIjpjYXNlIFwicG9pbnRlcmVudGVyXCI6Y2FzZSBcInBvaW50ZXJsZWF2ZVwiOnJldHVybiA0O1xuY2FzZSBcIm1lc3NhZ2VcIjpzd2l0Y2goZWMoKSl7Y2FzZSBmYzpyZXR1cm4gMTtjYXNlIGdjOnJldHVybiA0O2Nhc2UgaGM6Y2FzZSBpYzpyZXR1cm4gMTY7Y2FzZSBqYzpyZXR1cm4gNTM2ODcwOTEyO2RlZmF1bHQ6cmV0dXJuIDE2fWRlZmF1bHQ6cmV0dXJuIDE2fX12YXIga2Q9bnVsbCxsZD1udWxsLG1kPW51bGw7ZnVuY3Rpb24gbmQoKXtpZihtZClyZXR1cm4gbWQ7dmFyIGEsYj1sZCxjPWIubGVuZ3RoLGQsZT1cInZhbHVlXCJpbiBrZD9rZC52YWx1ZTprZC50ZXh0Q29udGVudCxmPWUubGVuZ3RoO2ZvcihhPTA7YTxjJiZiW2FdPT09ZVthXTthKyspO3ZhciBnPWMtYTtmb3IoZD0xO2Q8PWcmJmJbYy1kXT09PWVbZi1kXTtkKyspO3JldHVybiBtZD1lLnNsaWNlKGEsMTxkPzEtZDp2b2lkIDApfVxuZnVuY3Rpb24gb2QoYSl7dmFyIGI9YS5rZXlDb2RlO1wiY2hhckNvZGVcImluIGE/KGE9YS5jaGFyQ29kZSwwPT09YSYmMTM9PT1iJiYoYT0xMykpOmE9YjsxMD09PWEmJihhPTEzKTtyZXR1cm4gMzI8PWF8fDEzPT09YT9hOjB9ZnVuY3Rpb24gcGQoKXtyZXR1cm4hMH1mdW5jdGlvbiBxZCgpe3JldHVybiExfVxuZnVuY3Rpb24gcmQoYSl7ZnVuY3Rpb24gYihiLGQsZSxmLGcpe3RoaXMuX3JlYWN0TmFtZT1iO3RoaXMuX3RhcmdldEluc3Q9ZTt0aGlzLnR5cGU9ZDt0aGlzLm5hdGl2ZUV2ZW50PWY7dGhpcy50YXJnZXQ9Zzt0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbDtmb3IodmFyIGMgaW4gYSlhLmhhc093blByb3BlcnR5KGMpJiYoYj1hW2NdLHRoaXNbY109Yj9iKGYpOmZbY10pO3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1mLmRlZmF1bHRQcmV2ZW50ZWQ/Zi5kZWZhdWx0UHJldmVudGVkOiExPT09Zi5yZXR1cm5WYWx1ZSk/cGQ6cWQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1xZDtyZXR1cm4gdGhpc31BKGIucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgYT10aGlzLm5hdGl2ZUV2ZW50O2EmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9PXR5cGVvZiBhLnJldHVyblZhbHVlJiZcbihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wZCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5jYW5jZWxCdWJibGUmJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wZCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpwZH0pO3JldHVybiBifVxudmFyIHNkPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LHRkPXJkKHNkKSx1ZD1BKHt9LHNkLHt2aWV3OjAsZGV0YWlsOjB9KSx2ZD1yZCh1ZCksd2QseGQseWQsQWQ9QSh7fSx1ZCx7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZCxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YS5yZWxhdGVkVGFyZ2V0P2EuZnJvbUVsZW1lbnQ9PT1hLnNyY0VsZW1lbnQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDphLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WFwiaW5cbmEpcmV0dXJuIGEubW92ZW1lbnRYO2EhPT15ZCYmKHlkJiZcIm1vdXNlbW92ZVwiPT09YS50eXBlPyh3ZD1hLnNjcmVlblgteWQuc2NyZWVuWCx4ZD1hLnNjcmVlblkteWQuc2NyZWVuWSk6eGQ9d2Q9MCx5ZD1hKTtyZXR1cm4gd2R9LG1vdmVtZW50WTpmdW5jdGlvbihhKXtyZXR1cm5cIm1vdmVtZW50WVwiaW4gYT9hLm1vdmVtZW50WTp4ZH19KSxCZD1yZChBZCksQ2Q9QSh7fSxBZCx7ZGF0YVRyYW5zZmVyOjB9KSxEZD1yZChDZCksRWQ9QSh7fSx1ZCx7cmVsYXRlZFRhcmdldDowfSksRmQ9cmQoRWQpLEdkPUEoe30sc2Qse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLEhkPXJkKEdkKSxJZD1BKHt9LHNkLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGEpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gYT9hLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksSmQ9cmQoSWQpLEtkPUEoe30sc2Qse2RhdGE6MH0pLExkPXJkKEtkKSxNZD17RXNjOlwiRXNjYXBlXCIsXG5TcGFjZWJhcjpcIiBcIixMZWZ0OlwiQXJyb3dMZWZ0XCIsVXA6XCJBcnJvd1VwXCIsUmlnaHQ6XCJBcnJvd1JpZ2h0XCIsRG93bjpcIkFycm93RG93blwiLERlbDpcIkRlbGV0ZVwiLFdpbjpcIk9TXCIsTWVudTpcIkNvbnRleHRNZW51XCIsQXBwczpcIkNvbnRleHRNZW51XCIsU2Nyb2xsOlwiU2Nyb2xsTG9ja1wiLE1velByaW50YWJsZUtleTpcIlVuaWRlbnRpZmllZFwifSxOZD17ODpcIkJhY2tzcGFjZVwiLDk6XCJUYWJcIiwxMjpcIkNsZWFyXCIsMTM6XCJFbnRlclwiLDE2OlwiU2hpZnRcIiwxNzpcIkNvbnRyb2xcIiwxODpcIkFsdFwiLDE5OlwiUGF1c2VcIiwyMDpcIkNhcHNMb2NrXCIsMjc6XCJFc2NhcGVcIiwzMjpcIiBcIiwzMzpcIlBhZ2VVcFwiLDM0OlwiUGFnZURvd25cIiwzNTpcIkVuZFwiLDM2OlwiSG9tZVwiLDM3OlwiQXJyb3dMZWZ0XCIsMzg6XCJBcnJvd1VwXCIsMzk6XCJBcnJvd1JpZ2h0XCIsNDA6XCJBcnJvd0Rvd25cIiw0NTpcIkluc2VydFwiLDQ2OlwiRGVsZXRlXCIsMTEyOlwiRjFcIiwxMTM6XCJGMlwiLDExNDpcIkYzXCIsMTE1OlwiRjRcIiwxMTY6XCJGNVwiLDExNzpcIkY2XCIsMTE4OlwiRjdcIixcbjExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sT2Q9e0FsdDpcImFsdEtleVwiLENvbnRyb2w6XCJjdHJsS2V5XCIsTWV0YTpcIm1ldGFLZXlcIixTaGlmdDpcInNoaWZ0S2V5XCJ9O2Z1bmN0aW9uIFBkKGEpe3ZhciBiPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIGIuZ2V0TW9kaWZpZXJTdGF0ZT9iLmdldE1vZGlmaWVyU3RhdGUoYSk6KGE9T2RbYV0pPyEhYlthXTohMX1mdW5jdGlvbiB6ZCgpe3JldHVybiBQZH1cbnZhciBRZD1BKHt9LHVkLHtrZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPU1kW2Eua2V5XXx8YS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PWIpcmV0dXJuIGJ9cmV0dXJuXCJrZXlwcmVzc1wiPT09YS50eXBlPyhhPW9kKGEpLDEzPT09YT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShhKSk6XCJrZXlkb3duXCI9PT1hLnR5cGV8fFwia2V5dXBcIj09PWEudHlwZT9OZFthLmtleUNvZGVdfHxcIlVuaWRlbnRpZmllZFwiOlwiXCJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOnpkLGNoYXJDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT9vZChhKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PVxuYS50eXBlP29kKGEpOlwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9fSksUmQ9cmQoUWQpLFNkPUEoe30sQWQse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSksVGQ9cmQoU2QpLFVkPUEoe30sdWQse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTp6ZH0pLFZkPXJkKFVkKSxXZD1BKHt9LHNkLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pLFhkPXJkKFdkKSxZZD1BKHt9LEFkLHtkZWx0YVg6ZnVuY3Rpb24oYSl7cmV0dXJuXCJkZWx0YVhcImluIGE/YS5kZWx0YVg6XCJ3aGVlbERlbHRhWFwiaW4gYT8tYS53aGVlbERlbHRhWDowfSxcbmRlbHRhWTpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWVwiaW4gYT9hLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBhPy1hLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gYT8tYS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSksWmQ9cmQoWWQpLCRkPVs5LDEzLDI3LDMyXSxhZT1pYSYmXCJDb21wb3NpdGlvbkV2ZW50XCJpbiB3aW5kb3csYmU9bnVsbDtpYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYoYmU9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgY2U9aWEmJlwiVGV4dEV2ZW50XCJpbiB3aW5kb3cmJiFiZSxkZT1pYSYmKCFhZXx8YmUmJjg8YmUmJjExPj1iZSksZWU9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksZmU9ITE7XG5mdW5jdGlvbiBnZShhLGIpe3N3aXRjaChhKXtjYXNlIFwia2V5dXBcIjpyZXR1cm4tMSE9PSRkLmluZGV4T2YoYi5rZXlDb2RlKTtjYXNlIFwia2V5ZG93blwiOnJldHVybiAyMjkhPT1iLmtleUNvZGU7Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJmb2N1c291dFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGhlKGEpe2E9YS5kZXRhaWw7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZcImRhdGFcImluIGE/YS5kYXRhOm51bGx9dmFyIGllPSExO2Z1bmN0aW9uIGplKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJjb21wb3NpdGlvbmVuZFwiOnJldHVybiBoZShiKTtjYXNlIFwia2V5cHJlc3NcIjppZigzMiE9PWIud2hpY2gpcmV0dXJuIG51bGw7ZmU9ITA7cmV0dXJuIGVlO2Nhc2UgXCJ0ZXh0SW5wdXRcIjpyZXR1cm4gYT1iLmRhdGEsYT09PWVlJiZmZT9udWxsOmE7ZGVmYXVsdDpyZXR1cm4gbnVsbH19XG5mdW5jdGlvbiBrZShhLGIpe2lmKGllKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWF8fCFhZSYmZ2UoYSxiKT8oYT1uZCgpLG1kPWxkPWtkPW51bGwsaWU9ITEsYSk6bnVsbDtzd2l0Y2goYSl7Y2FzZSBcInBhc3RlXCI6cmV0dXJuIG51bGw7Y2FzZSBcImtleXByZXNzXCI6aWYoIShiLmN0cmxLZXl8fGIuYWx0S2V5fHxiLm1ldGFLZXkpfHxiLmN0cmxLZXkmJmIuYWx0S2V5KXtpZihiLmNoYXImJjE8Yi5jaGFyLmxlbmd0aClyZXR1cm4gYi5jaGFyO2lmKGIud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoYi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIGRlJiZcImtvXCIhPT1iLmxvY2FsZT9udWxsOmIuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbnZhciBsZT17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCxcImRhdGV0aW1lLWxvY2FsXCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBtZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09Yj8hIWxlW2EudHlwZV06XCJ0ZXh0YXJlYVwiPT09Yj8hMDohMX1mdW5jdGlvbiBuZShhLGIsYyxkKXtFYihkKTtiPW9lKGIsXCJvbkNoYW5nZVwiKTswPGIubGVuZ3RoJiYoYz1uZXcgdGQoXCJvbkNoYW5nZVwiLFwiY2hhbmdlXCIsbnVsbCxjLGQpLGEucHVzaCh7ZXZlbnQ6YyxsaXN0ZW5lcnM6Yn0pKX12YXIgcGU9bnVsbCxxZT1udWxsO2Z1bmN0aW9uIHJlKGEpe3NlKGEsMCl9ZnVuY3Rpb24gdGUoYSl7dmFyIGI9dWUoYSk7aWYoV2EoYikpcmV0dXJuIGF9XG5mdW5jdGlvbiB2ZShhLGIpe2lmKFwiY2hhbmdlXCI9PT1hKXJldHVybiBifXZhciB3ZT0hMTtpZihpYSl7dmFyIHhlO2lmKGlhKXt2YXIgeWU9XCJvbmlucHV0XCJpbiBkb2N1bWVudDtpZigheWUpe3ZhciB6ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3plLnNldEF0dHJpYnV0ZShcIm9uaW5wdXRcIixcInJldHVybjtcIik7eWU9XCJmdW5jdGlvblwiPT09dHlwZW9mIHplLm9uaW5wdXR9eGU9eWV9ZWxzZSB4ZT0hMTt3ZT14ZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBBZSgpe3BlJiYocGUuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpLHFlPXBlPW51bGwpfWZ1bmN0aW9uIEJlKGEpe2lmKFwidmFsdWVcIj09PWEucHJvcGVydHlOYW1lJiZ0ZShxZSkpe3ZhciBiPVtdO25lKGIscWUsYSx4YihhKSk7SmIocmUsYil9fVxuZnVuY3Rpb24gQ2UoYSxiLGMpe1wiZm9jdXNpblwiPT09YT8oQWUoKSxwZT1iLHFlPWMscGUuYXR0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsQmUpKTpcImZvY3Vzb3V0XCI9PT1hJiZBZSgpfWZ1bmN0aW9uIERlKGEpe2lmKFwic2VsZWN0aW9uY2hhbmdlXCI9PT1hfHxcImtleXVwXCI9PT1hfHxcImtleWRvd25cIj09PWEpcmV0dXJuIHRlKHFlKX1mdW5jdGlvbiBFZShhLGIpe2lmKFwiY2xpY2tcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEZlKGEsYil7aWYoXCJpbnB1dFwiPT09YXx8XCJjaGFuZ2VcIj09PWEpcmV0dXJuIHRlKGIpfWZ1bmN0aW9uIEdlKGEsYil7cmV0dXJuIGE9PT1iJiYoMCE9PWF8fDEvYT09PTEvYil8fGEhPT1hJiZiIT09Yn12YXIgSGU9XCJmdW5jdGlvblwiPT09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6R2U7XG5mdW5jdGlvbiBJZShhLGIpe2lmKEhlKGEsYikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhfHxudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBifHxudWxsPT09YilyZXR1cm4hMTt2YXIgYz1PYmplY3Qua2V5cyhhKSxkPU9iamVjdC5rZXlzKGIpO2lmKGMubGVuZ3RoIT09ZC5sZW5ndGgpcmV0dXJuITE7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTtpZighamEuY2FsbChiLGUpfHwhSGUoYVtlXSxiW2VdKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBKZShhKXtmb3IoO2EmJmEuZmlyc3RDaGlsZDspYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9XG5mdW5jdGlvbiBLZShhLGIpe3ZhciBjPUplKGEpO2E9MDtmb3IodmFyIGQ7Yzspe2lmKDM9PT1jLm5vZGVUeXBlKXtkPWErYy50ZXh0Q29udGVudC5sZW5ndGg7aWYoYTw9YiYmZD49YilyZXR1cm57bm9kZTpjLG9mZnNldDpiLWF9O2E9ZH1hOntmb3IoO2M7KXtpZihjLm5leHRTaWJsaW5nKXtjPWMubmV4dFNpYmxpbmc7YnJlYWsgYX1jPWMucGFyZW50Tm9kZX1jPXZvaWQgMH1jPUplKGMpfX1mdW5jdGlvbiBMZShhLGIpe3JldHVybiBhJiZiP2E9PT1iPyEwOmEmJjM9PT1hLm5vZGVUeXBlPyExOmImJjM9PT1iLm5vZGVUeXBlP0xlKGEsYi5wYXJlbnROb2RlKTpcImNvbnRhaW5zXCJpbiBhP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8hIShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KTohMTohMX1cbmZ1bmN0aW9uIE1lKCl7Zm9yKHZhciBhPXdpbmRvdyxiPVhhKCk7YiBpbnN0YW5jZW9mIGEuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIGM9XCJzdHJpbmdcIj09PXR5cGVvZiBiLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChkKXtjPSExfWlmKGMpYT1iLmNvbnRlbnRXaW5kb3c7ZWxzZSBicmVhaztiPVhhKGEuZG9jdW1lbnQpfXJldHVybiBifWZ1bmN0aW9uIE5lKGEpe3ZhciBiPWEmJmEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gYiYmKFwiaW5wdXRcIj09PWImJihcInRleHRcIj09PWEudHlwZXx8XCJzZWFyY2hcIj09PWEudHlwZXx8XCJ0ZWxcIj09PWEudHlwZXx8XCJ1cmxcIj09PWEudHlwZXx8XCJwYXNzd29yZFwiPT09YS50eXBlKXx8XCJ0ZXh0YXJlYVwiPT09Ynx8XCJ0cnVlXCI9PT1hLmNvbnRlbnRFZGl0YWJsZSl9XG5mdW5jdGlvbiBPZShhKXt2YXIgYj1NZSgpLGM9YS5mb2N1c2VkRWxlbSxkPWEuc2VsZWN0aW9uUmFuZ2U7aWYoYiE9PWMmJmMmJmMub3duZXJEb2N1bWVudCYmTGUoYy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxjKSl7aWYobnVsbCE9PWQmJk5lKGMpKWlmKGI9ZC5zdGFydCxhPWQuZW5kLHZvaWQgMD09PWEmJihhPWIpLFwic2VsZWN0aW9uU3RhcnRcImluIGMpYy5zZWxlY3Rpb25TdGFydD1iLGMuc2VsZWN0aW9uRW5kPU1hdGgubWluKGEsYy52YWx1ZS5sZW5ndGgpO2Vsc2UgaWYoYT0oYj1jLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KSYmYi5kZWZhdWx0Vmlld3x8d2luZG93LGEuZ2V0U2VsZWN0aW9uKXthPWEuZ2V0U2VsZWN0aW9uKCk7dmFyIGU9Yy50ZXh0Q29udGVudC5sZW5ndGgsZj1NYXRoLm1pbihkLnN0YXJ0LGUpO2Q9dm9pZCAwPT09ZC5lbmQ/ZjpNYXRoLm1pbihkLmVuZCxlKTshYS5leHRlbmQmJmY+ZCYmKGU9ZCxkPWYsZj1lKTtlPUtlKGMsZik7dmFyIGc9S2UoYyxcbmQpO2UmJmcmJigxIT09YS5yYW5nZUNvdW50fHxhLmFuY2hvck5vZGUhPT1lLm5vZGV8fGEuYW5jaG9yT2Zmc2V0IT09ZS5vZmZzZXR8fGEuZm9jdXNOb2RlIT09Zy5ub2RlfHxhLmZvY3VzT2Zmc2V0IT09Zy5vZmZzZXQpJiYoYj1iLmNyZWF0ZVJhbmdlKCksYi5zZXRTdGFydChlLm5vZGUsZS5vZmZzZXQpLGEucmVtb3ZlQWxsUmFuZ2VzKCksZj5kPyhhLmFkZFJhbmdlKGIpLGEuZXh0ZW5kKGcubm9kZSxnLm9mZnNldCkpOihiLnNldEVuZChnLm5vZGUsZy5vZmZzZXQpLGEuYWRkUmFuZ2UoYikpKX1iPVtdO2ZvcihhPWM7YT1hLnBhcmVudE5vZGU7KTE9PT1hLm5vZGVUeXBlJiZiLnB1c2goe2VsZW1lbnQ6YSxsZWZ0OmEuc2Nyb2xsTGVmdCx0b3A6YS5zY3JvbGxUb3B9KTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5mb2N1cyYmYy5mb2N1cygpO2ZvcihjPTA7YzxiLmxlbmd0aDtjKyspYT1iW2NdLGEuZWxlbWVudC5zY3JvbGxMZWZ0PWEubGVmdCxhLmVsZW1lbnQuc2Nyb2xsVG9wPWEudG9wfX1cbnZhciBQZT1pYSYmXCJkb2N1bWVudE1vZGVcImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLFFlPW51bGwsUmU9bnVsbCxTZT1udWxsLFRlPSExO1xuZnVuY3Rpb24gVWUoYSxiLGMpe3ZhciBkPWMud2luZG93PT09Yz9jLmRvY3VtZW50Ojk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50O1RlfHxudWxsPT1RZXx8UWUhPT1YYShkKXx8KGQ9UWUsXCJzZWxlY3Rpb25TdGFydFwiaW4gZCYmTmUoZCk/ZD17c3RhcnQ6ZC5zZWxlY3Rpb25TdGFydCxlbmQ6ZC5zZWxlY3Rpb25FbmR9OihkPShkLm93bmVyRG9jdW1lbnQmJmQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxkPXthbmNob3JOb2RlOmQuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ZC5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOmQuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OmQuZm9jdXNPZmZzZXR9KSxTZSYmSWUoU2UsZCl8fChTZT1kLGQ9b2UoUmUsXCJvblNlbGVjdFwiKSwwPGQubGVuZ3RoJiYoYj1uZXcgdGQoXCJvblNlbGVjdFwiLFwic2VsZWN0XCIsbnVsbCxiLGMpLGEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6ZH0pLGIudGFyZ2V0PVFlKSkpfVxuZnVuY3Rpb24gVmUoYSxiKXt2YXIgYz17fTtjW2EudG9Mb3dlckNhc2UoKV09Yi50b0xvd2VyQ2FzZSgpO2NbXCJXZWJraXRcIithXT1cIndlYmtpdFwiK2I7Y1tcIk1velwiK2FdPVwibW96XCIrYjtyZXR1cm4gY312YXIgV2U9e2FuaW1hdGlvbmVuZDpWZShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uRW5kXCIpLGFuaW1hdGlvbml0ZXJhdGlvbjpWZShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uSXRlcmF0aW9uXCIpLGFuaW1hdGlvbnN0YXJ0OlZlKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25TdGFydFwiKSx0cmFuc2l0aW9uZW5kOlZlKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkVuZFwiKX0sWGU9e30sWWU9e307XG5pYSYmKFllPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJBbmltYXRpb25FdmVudFwiaW4gd2luZG93fHwoZGVsZXRlIFdlLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIFdlLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIFdlLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXCJUcmFuc2l0aW9uRXZlbnRcImluIHdpbmRvd3x8ZGVsZXRlIFdlLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gWmUoYSl7aWYoWGVbYV0pcmV0dXJuIFhlW2FdO2lmKCFXZVthXSlyZXR1cm4gYTt2YXIgYj1XZVthXSxjO2ZvcihjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSYmYyBpbiBZZSlyZXR1cm4gWGVbYV09YltjXTtyZXR1cm4gYX12YXIgJGU9WmUoXCJhbmltYXRpb25lbmRcIiksYWY9WmUoXCJhbmltYXRpb25pdGVyYXRpb25cIiksYmY9WmUoXCJhbmltYXRpb25zdGFydFwiKSxjZj1aZShcInRyYW5zaXRpb25lbmRcIiksZGY9bmV3IE1hcCxlZj1cImFib3J0IGF1eENsaWNrIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsXCIuc3BsaXQoXCIgXCIpO1xuZnVuY3Rpb24gZmYoYSxiKXtkZi5zZXQoYSxiKTtmYShiLFthXSl9Zm9yKHZhciBnZj0wO2dmPGVmLmxlbmd0aDtnZisrKXt2YXIgaGY9ZWZbZ2ZdLGpmPWhmLnRvTG93ZXJDYXNlKCksa2Y9aGZbMF0udG9VcHBlckNhc2UoKStoZi5zbGljZSgxKTtmZihqZixcIm9uXCIra2YpfWZmKCRlLFwib25BbmltYXRpb25FbmRcIik7ZmYoYWYsXCJvbkFuaW1hdGlvbkl0ZXJhdGlvblwiKTtmZihiZixcIm9uQW5pbWF0aW9uU3RhcnRcIik7ZmYoXCJkYmxjbGlja1wiLFwib25Eb3VibGVDbGlja1wiKTtmZihcImZvY3VzaW5cIixcIm9uRm9jdXNcIik7ZmYoXCJmb2N1c291dFwiLFwib25CbHVyXCIpO2ZmKGNmLFwib25UcmFuc2l0aW9uRW5kXCIpO2hhKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSk7aGEoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKTtoYShcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pO1xuaGEoXCJvblBvaW50ZXJMZWF2ZVwiLFtcInBvaW50ZXJvdXRcIixcInBvaW50ZXJvdmVyXCJdKTtmYShcIm9uQ2hhbmdlXCIsXCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSk7ZmEoXCJvblNlbGVjdFwiLFwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlXCIuc3BsaXQoXCIgXCIpKTtmYShcIm9uQmVmb3JlSW5wdXRcIixbXCJjb21wb3NpdGlvbmVuZFwiLFwia2V5cHJlc3NcIixcInRleHRJbnB1dFwiLFwicGFzdGVcIl0pO2ZhKFwib25Db21wb3NpdGlvbkVuZFwiLFwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpO2ZhKFwib25Db21wb3NpdGlvblN0YXJ0XCIsXCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKTtcbmZhKFwib25Db21wb3NpdGlvblVwZGF0ZVwiLFwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIikpO3ZhciBsZj1cImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nXCIuc3BsaXQoXCIgXCIpLG1mPW5ldyBTZXQoXCJjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCB0b2dnbGVcIi5zcGxpdChcIiBcIikuY29uY2F0KGxmKSk7XG5mdW5jdGlvbiBuZihhLGIsYyl7dmFyIGQ9YS50eXBlfHxcInVua25vd24tZXZlbnRcIjthLmN1cnJlbnRUYXJnZXQ9YztVYihkLGIsdm9pZCAwLGEpO2EuY3VycmVudFRhcmdldD1udWxsfVxuZnVuY3Rpb24gc2UoYSxiKXtiPTAhPT0oYiY0KTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyl7dmFyIGQ9YVtjXSxlPWQuZXZlbnQ7ZD1kLmxpc3RlbmVyczthOnt2YXIgZj12b2lkIDA7aWYoYilmb3IodmFyIGc9ZC5sZW5ndGgtMTswPD1nO2ctLSl7dmFyIGg9ZFtnXSxrPWguaW5zdGFuY2UsbD1oLmN1cnJlbnRUYXJnZXQ7aD1oLmxpc3RlbmVyO2lmKGshPT1mJiZlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgYTtuZihlLGgsbCk7Zj1rfWVsc2UgZm9yKGc9MDtnPGQubGVuZ3RoO2crKyl7aD1kW2ddO2s9aC5pbnN0YW5jZTtsPWguY3VycmVudFRhcmdldDtoPWgubGlzdGVuZXI7aWYoayE9PWYmJmUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBhO25mKGUsaCxsKTtmPWt9fX1pZihRYil0aHJvdyBhPVJiLFFiPSExLFJiPW51bGwsYTt9XG5mdW5jdGlvbiBEKGEsYil7dmFyIGM9YltvZl07dm9pZCAwPT09YyYmKGM9YltvZl09bmV3IFNldCk7dmFyIGQ9YStcIl9fYnViYmxlXCI7Yy5oYXMoZCl8fChwZihiLGEsMiwhMSksYy5hZGQoZCkpfWZ1bmN0aW9uIHFmKGEsYixjKXt2YXIgZD0wO2ImJihkfD00KTtwZihjLGEsZCxiKX12YXIgcmY9XCJfcmVhY3RMaXN0ZW5pbmdcIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzZihhKXtpZighYVtyZl0pe2FbcmZdPSEwO2RhLmZvckVhY2goZnVuY3Rpb24oYil7XCJzZWxlY3Rpb25jaGFuZ2VcIiE9PWImJihtZi5oYXMoYil8fHFmKGIsITEsYSkscWYoYiwhMCxhKSl9KTt2YXIgYj05PT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudDtudWxsPT09Ynx8YltyZl18fChiW3JmXT0hMCxxZihcInNlbGVjdGlvbmNoYW5nZVwiLCExLGIpKX19XG5mdW5jdGlvbiBwZihhLGIsYyxkKXtzd2l0Y2goamQoYikpe2Nhc2UgMTp2YXIgZT1lZDticmVhaztjYXNlIDQ6ZT1nZDticmVhaztkZWZhdWx0OmU9ZmR9Yz1lLmJpbmQobnVsbCxiLGMsYSk7ZT12b2lkIDA7IUxifHxcInRvdWNoc3RhcnRcIiE9PWImJlwidG91Y2htb3ZlXCIhPT1iJiZcIndoZWVsXCIhPT1ifHwoZT0hMCk7ZD92b2lkIDAhPT1lP2EuYWRkRXZlbnRMaXN0ZW5lcihiLGMse2NhcHR1cmU6ITAscGFzc2l2ZTplfSk6YS5hZGRFdmVudExpc3RlbmVyKGIsYywhMCk6dm9pZCAwIT09ZT9hLmFkZEV2ZW50TGlzdGVuZXIoYixjLHtwYXNzaXZlOmV9KTphLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKX1cbmZ1bmN0aW9uIGhkKGEsYixjLGQsZSl7dmFyIGY9ZDtpZigwPT09KGImMSkmJjA9PT0oYiYyKSYmbnVsbCE9PWQpYTpmb3IoOzspe2lmKG51bGw9PT1kKXJldHVybjt2YXIgZz1kLnRhZztpZigzPT09Z3x8ND09PWcpe3ZhciBoPWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaD09PWV8fDg9PT1oLm5vZGVUeXBlJiZoLnBhcmVudE5vZGU9PT1lKWJyZWFrO2lmKDQ9PT1nKWZvcihnPWQucmV0dXJuO251bGwhPT1nOyl7dmFyIGs9Zy50YWc7aWYoMz09PWt8fDQ9PT1rKWlmKGs9Zy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxrPT09ZXx8OD09PWsubm9kZVR5cGUmJmsucGFyZW50Tm9kZT09PWUpcmV0dXJuO2c9Zy5yZXR1cm59Zm9yKDtudWxsIT09aDspe2c9V2MoaCk7aWYobnVsbD09PWcpcmV0dXJuO2s9Zy50YWc7aWYoNT09PWt8fDY9PT1rKXtkPWY9Zztjb250aW51ZSBhfWg9aC5wYXJlbnROb2RlfX1kPWQucmV0dXJufUpiKGZ1bmN0aW9uKCl7dmFyIGQ9ZixlPXhiKGMpLGc9W107XG5hOnt2YXIgaD1kZi5nZXQoYSk7aWYodm9pZCAwIT09aCl7dmFyIGs9dGQsbj1hO3N3aXRjaChhKXtjYXNlIFwia2V5cHJlc3NcIjppZigwPT09b2QoYykpYnJlYWsgYTtjYXNlIFwia2V5ZG93blwiOmNhc2UgXCJrZXl1cFwiOms9UmQ7YnJlYWs7Y2FzZSBcImZvY3VzaW5cIjpuPVwiZm9jdXNcIjtrPUZkO2JyZWFrO2Nhc2UgXCJmb2N1c291dFwiOm49XCJibHVyXCI7az1GZDticmVhaztjYXNlIFwiYmVmb3JlYmx1clwiOmNhc2UgXCJhZnRlcmJsdXJcIjprPUZkO2JyZWFrO2Nhc2UgXCJjbGlja1wiOmlmKDI9PT1jLmJ1dHRvbilicmVhayBhO2Nhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6az1CZDticmVhaztjYXNlIFwiZHJhZ1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjprPVxuRGQ7YnJlYWs7Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNobW92ZVwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6az1WZDticmVhaztjYXNlICRlOmNhc2UgYWY6Y2FzZSBiZjprPUhkO2JyZWFrO2Nhc2UgY2Y6az1YZDticmVhaztjYXNlIFwic2Nyb2xsXCI6az12ZDticmVhaztjYXNlIFwid2hlZWxcIjprPVpkO2JyZWFrO2Nhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJwYXN0ZVwiOms9SmQ7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcnVwXCI6az1UZH12YXIgdD0wIT09KGImNCksSj0hdCYmXCJzY3JvbGxcIj09PWEseD10P251bGwhPT1oP2grXCJDYXB0dXJlXCI6bnVsbDpoO3Q9W107Zm9yKHZhciB3PWQsdTtudWxsIT09XG53Oyl7dT13O3ZhciBGPXUuc3RhdGVOb2RlOzU9PT11LnRhZyYmbnVsbCE9PUYmJih1PUYsbnVsbCE9PXgmJihGPUtiKHcseCksbnVsbCE9RiYmdC5wdXNoKHRmKHcsRix1KSkpKTtpZihKKWJyZWFrO3c9dy5yZXR1cm59MDx0Lmxlbmd0aCYmKGg9bmV3IGsoaCxuLG51bGwsYyxlKSxnLnB1c2goe2V2ZW50OmgsbGlzdGVuZXJzOnR9KSl9fWlmKDA9PT0oYiY3KSl7YTp7aD1cIm1vdXNlb3ZlclwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YTtrPVwibW91c2VvdXRcIj09PWF8fFwicG9pbnRlcm91dFwiPT09YTtpZihoJiZjIT09d2ImJihuPWMucmVsYXRlZFRhcmdldHx8Yy5mcm9tRWxlbWVudCkmJihXYyhuKXx8blt1Zl0pKWJyZWFrIGE7aWYoa3x8aCl7aD1lLndpbmRvdz09PWU/ZTooaD1lLm93bmVyRG9jdW1lbnQpP2guZGVmYXVsdFZpZXd8fGgucGFyZW50V2luZG93OndpbmRvdztpZihrKXtpZihuPWMucmVsYXRlZFRhcmdldHx8Yy50b0VsZW1lbnQsaz1kLG49bj9XYyhuKTpudWxsLG51bGwhPT1cbm4mJihKPVZiKG4pLG4hPT1KfHw1IT09bi50YWcmJjYhPT1uLnRhZykpbj1udWxsfWVsc2Ugaz1udWxsLG49ZDtpZihrIT09bil7dD1CZDtGPVwib25Nb3VzZUxlYXZlXCI7eD1cIm9uTW91c2VFbnRlclwiO3c9XCJtb3VzZVwiO2lmKFwicG9pbnRlcm91dFwiPT09YXx8XCJwb2ludGVyb3ZlclwiPT09YSl0PVRkLEY9XCJvblBvaW50ZXJMZWF2ZVwiLHg9XCJvblBvaW50ZXJFbnRlclwiLHc9XCJwb2ludGVyXCI7Sj1udWxsPT1rP2g6dWUoayk7dT1udWxsPT1uP2g6dWUobik7aD1uZXcgdChGLHcrXCJsZWF2ZVwiLGssYyxlKTtoLnRhcmdldD1KO2gucmVsYXRlZFRhcmdldD11O0Y9bnVsbDtXYyhlKT09PWQmJih0PW5ldyB0KHgsdytcImVudGVyXCIsbixjLGUpLHQudGFyZ2V0PXUsdC5yZWxhdGVkVGFyZ2V0PUosRj10KTtKPUY7aWYoayYmbiliOnt0PWs7eD1uO3c9MDtmb3IodT10O3U7dT12Zih1KSl3Kys7dT0wO2ZvcihGPXg7RjtGPXZmKEYpKXUrKztmb3IoOzA8dy11Oyl0PXZmKHQpLHctLTtmb3IoOzA8dS13Oyl4PVxudmYoeCksdS0tO2Zvcig7dy0tOyl7aWYodD09PXh8fG51bGwhPT14JiZ0PT09eC5hbHRlcm5hdGUpYnJlYWsgYjt0PXZmKHQpO3g9dmYoeCl9dD1udWxsfWVsc2UgdD1udWxsO251bGwhPT1rJiZ3ZihnLGgsayx0LCExKTtudWxsIT09biYmbnVsbCE9PUomJndmKGcsSixuLHQsITApfX19YTp7aD1kP3VlKGQpOndpbmRvdztrPWgubm9kZU5hbWUmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihcInNlbGVjdFwiPT09a3x8XCJpbnB1dFwiPT09ayYmXCJmaWxlXCI9PT1oLnR5cGUpdmFyIG5hPXZlO2Vsc2UgaWYobWUoaCkpaWYod2UpbmE9RmU7ZWxzZXtuYT1EZTt2YXIgeGE9Q2V9ZWxzZShrPWgubm9kZU5hbWUpJiZcImlucHV0XCI9PT1rLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1oLnR5cGV8fFwicmFkaW9cIj09PWgudHlwZSkmJihuYT1FZSk7aWYobmEmJihuYT1uYShhLGQpKSl7bmUoZyxuYSxjLGUpO2JyZWFrIGF9eGEmJnhhKGEsaCxkKTtcImZvY3Vzb3V0XCI9PT1hJiYoeGE9aC5fd3JhcHBlclN0YXRlKSYmXG54YS5jb250cm9sbGVkJiZcIm51bWJlclwiPT09aC50eXBlJiZjYihoLFwibnVtYmVyXCIsaC52YWx1ZSl9eGE9ZD91ZShkKTp3aW5kb3c7c3dpdGNoKGEpe2Nhc2UgXCJmb2N1c2luXCI6aWYobWUoeGEpfHxcInRydWVcIj09PXhhLmNvbnRlbnRFZGl0YWJsZSlRZT14YSxSZT1kLFNlPW51bGw7YnJlYWs7Y2FzZSBcImZvY3Vzb3V0XCI6U2U9UmU9UWU9bnVsbDticmVhaztjYXNlIFwibW91c2Vkb3duXCI6VGU9ITA7YnJlYWs7Y2FzZSBcImNvbnRleHRtZW51XCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwiZHJhZ2VuZFwiOlRlPSExO1VlKGcsYyxlKTticmVhaztjYXNlIFwic2VsZWN0aW9uY2hhbmdlXCI6aWYoUGUpYnJlYWs7Y2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5dXBcIjpVZShnLGMsZSl9dmFyICRhO2lmKGFlKWI6e3N3aXRjaChhKXtjYXNlIFwiY29tcG9zaXRpb25zdGFydFwiOnZhciBiYT1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6YmE9XCJvbkNvbXBvc2l0aW9uRW5kXCI7XG5icmVhayBiO2Nhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOmJhPVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIGJ9YmE9dm9pZCAwfWVsc2UgaWU/Z2UoYSxjKSYmKGJhPVwib25Db21wb3NpdGlvbkVuZFwiKTpcImtleWRvd25cIj09PWEmJjIyOT09PWMua2V5Q29kZSYmKGJhPVwib25Db21wb3NpdGlvblN0YXJ0XCIpO2JhJiYoZGUmJlwia29cIiE9PWMubG9jYWxlJiYoaWV8fFwib25Db21wb3NpdGlvblN0YXJ0XCIhPT1iYT9cIm9uQ29tcG9zaXRpb25FbmRcIj09PWJhJiZpZSYmKCRhPW5kKCkpOihrZD1lLGxkPVwidmFsdWVcImluIGtkP2tkLnZhbHVlOmtkLnRleHRDb250ZW50LGllPSEwKSkseGE9b2UoZCxiYSksMDx4YS5sZW5ndGgmJihiYT1uZXcgTGQoYmEsYSxudWxsLGMsZSksZy5wdXNoKHtldmVudDpiYSxsaXN0ZW5lcnM6eGF9KSwkYT9iYS5kYXRhPSRhOigkYT1oZShjKSxudWxsIT09JGEmJihiYS5kYXRhPSRhKSkpKTtpZigkYT1jZT9qZShhLGMpOmtlKGEsYykpZD1vZShkLFwib25CZWZvcmVJbnB1dFwiKSxcbjA8ZC5sZW5ndGgmJihlPW5ldyBMZChcIm9uQmVmb3JlSW5wdXRcIixcImJlZm9yZWlucHV0XCIsbnVsbCxjLGUpLGcucHVzaCh7ZXZlbnQ6ZSxsaXN0ZW5lcnM6ZH0pLGUuZGF0YT0kYSl9c2UoZyxiKX0pfWZ1bmN0aW9uIHRmKGEsYixjKXtyZXR1cm57aW5zdGFuY2U6YSxsaXN0ZW5lcjpiLGN1cnJlbnRUYXJnZXQ6Y319ZnVuY3Rpb24gb2UoYSxiKXtmb3IodmFyIGM9YitcIkNhcHR1cmVcIixkPVtdO251bGwhPT1hOyl7dmFyIGU9YSxmPWUuc3RhdGVOb2RlOzU9PT1lLnRhZyYmbnVsbCE9PWYmJihlPWYsZj1LYihhLGMpLG51bGwhPWYmJmQudW5zaGlmdCh0ZihhLGYsZSkpLGY9S2IoYSxiKSxudWxsIT1mJiZkLnB1c2godGYoYSxmLGUpKSk7YT1hLnJldHVybn1yZXR1cm4gZH1mdW5jdGlvbiB2ZihhKXtpZihudWxsPT09YSlyZXR1cm4gbnVsbDtkbyBhPWEucmV0dXJuO3doaWxlKGEmJjUhPT1hLnRhZyk7cmV0dXJuIGE/YTpudWxsfVxuZnVuY3Rpb24gd2YoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yi5fcmVhY3ROYW1lLGc9W107bnVsbCE9PWMmJmMhPT1kOyl7dmFyIGg9YyxrPWguYWx0ZXJuYXRlLGw9aC5zdGF0ZU5vZGU7aWYobnVsbCE9PWsmJms9PT1kKWJyZWFrOzU9PT1oLnRhZyYmbnVsbCE9PWwmJihoPWwsZT8oaz1LYihjLGYpLG51bGwhPWsmJmcudW5zaGlmdCh0ZihjLGssaCkpKTplfHwoaz1LYihjLGYpLG51bGwhPWsmJmcucHVzaCh0ZihjLGssaCkpKSk7Yz1jLnJldHVybn0wIT09Zy5sZW5ndGgmJmEucHVzaCh7ZXZlbnQ6YixsaXN0ZW5lcnM6Z30pfXZhciB4Zj0vXFxyXFxuPy9nLHlmPS9cXHUwMDAwfFxcdUZGRkQvZztmdW5jdGlvbiB6ZihhKXtyZXR1cm4oXCJzdHJpbmdcIj09PXR5cGVvZiBhP2E6XCJcIithKS5yZXBsYWNlKHhmLFwiXFxuXCIpLnJlcGxhY2UoeWYsXCJcIil9ZnVuY3Rpb24gQWYoYSxiLGMpe2I9emYoYik7aWYoemYoYSkhPT1iJiZjKXRocm93IEVycm9yKHAoNDI1KSk7fWZ1bmN0aW9uIEJmKCl7fVxudmFyIENmPW51bGwsRGY9bnVsbDtmdW5jdGlvbiBFZihhLGIpe3JldHVyblwidGV4dGFyZWFcIj09PWF8fFwibm9zY3JpcHRcIj09PWF8fFwic3RyaW5nXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJudW1iZXJcIj09PXR5cGVvZiBiLmNoaWxkcmVufHxcIm9iamVjdFwiPT09dHlwZW9mIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH1cbnZhciBGZj1cImZ1bmN0aW9uXCI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxHZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDp2b2lkIDAsSGY9XCJmdW5jdGlvblwiPT09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsSmY9XCJmdW5jdGlvblwiPT09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOlwidW5kZWZpbmVkXCIhPT10eXBlb2YgSGY/ZnVuY3Rpb24oYSl7cmV0dXJuIEhmLnJlc29sdmUobnVsbCkudGhlbihhKS5jYXRjaChJZil9OkZmO2Z1bmN0aW9uIElmKGEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30pfVxuZnVuY3Rpb24gS2YoYSxiKXt2YXIgYz1iLGQ9MDtkb3t2YXIgZT1jLm5leHRTaWJsaW5nO2EucmVtb3ZlQ2hpbGQoYyk7aWYoZSYmOD09PWUubm9kZVR5cGUpaWYoYz1lLmRhdGEsXCIvJFwiPT09Yyl7aWYoMD09PWQpe2EucmVtb3ZlQ2hpbGQoZSk7YmQoYik7cmV0dXJufWQtLX1lbHNlXCIkXCIhPT1jJiZcIiQ/XCIhPT1jJiZcIiQhXCIhPT1jfHxkKys7Yz1lfXdoaWxlKGMpO2JkKGIpfWZ1bmN0aW9uIExmKGEpe2Zvcig7bnVsbCE9YTthPWEubmV4dFNpYmxpbmcpe3ZhciBiPWEubm9kZVR5cGU7aWYoMT09PWJ8fDM9PT1iKWJyZWFrO2lmKDg9PT1iKXtiPWEuZGF0YTtpZihcIiRcIj09PWJ8fFwiJCFcIj09PWJ8fFwiJD9cIj09PWIpYnJlYWs7aWYoXCIvJFwiPT09YilyZXR1cm4gbnVsbH19cmV0dXJuIGF9XG5mdW5jdGlvbiBNZihhKXthPWEucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgYj0wO2E7KXtpZig4PT09YS5ub2RlVHlwZSl7dmFyIGM9YS5kYXRhO2lmKFwiJFwiPT09Y3x8XCIkIVwiPT09Y3x8XCIkP1wiPT09Yyl7aWYoMD09PWIpcmV0dXJuIGE7Yi0tfWVsc2VcIi8kXCI9PT1jJiZiKyt9YT1hLnByZXZpb3VzU2libGluZ31yZXR1cm4gbnVsbH12YXIgTmY9TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksT2Y9XCJfX3JlYWN0RmliZXIkXCIrTmYsUGY9XCJfX3JlYWN0UHJvcHMkXCIrTmYsdWY9XCJfX3JlYWN0Q29udGFpbmVyJFwiK05mLG9mPVwiX19yZWFjdEV2ZW50cyRcIitOZixRZj1cIl9fcmVhY3RMaXN0ZW5lcnMkXCIrTmYsUmY9XCJfX3JlYWN0SGFuZGxlcyRcIitOZjtcbmZ1bmN0aW9uIFdjKGEpe3ZhciBiPWFbT2ZdO2lmKGIpcmV0dXJuIGI7Zm9yKHZhciBjPWEucGFyZW50Tm9kZTtjOyl7aWYoYj1jW3VmXXx8Y1tPZl0pe2M9Yi5hbHRlcm5hdGU7aWYobnVsbCE9PWIuY2hpbGR8fG51bGwhPT1jJiZudWxsIT09Yy5jaGlsZClmb3IoYT1NZihhKTtudWxsIT09YTspe2lmKGM9YVtPZl0pcmV0dXJuIGM7YT1NZihhKX1yZXR1cm4gYn1hPWM7Yz1hLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQ2IoYSl7YT1hW09mXXx8YVt1Zl07cmV0dXJuIWF8fDUhPT1hLnRhZyYmNiE9PWEudGFnJiYxMyE9PWEudGFnJiYzIT09YS50YWc/bnVsbDphfWZ1bmN0aW9uIHVlKGEpe2lmKDU9PT1hLnRhZ3x8Nj09PWEudGFnKXJldHVybiBhLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihwKDMzKSk7fWZ1bmN0aW9uIERiKGEpe3JldHVybiBhW1BmXXx8bnVsbH12YXIgU2Y9W10sVGY9LTE7ZnVuY3Rpb24gVWYoYSl7cmV0dXJue2N1cnJlbnQ6YX19XG5mdW5jdGlvbiBFKGEpezA+VGZ8fChhLmN1cnJlbnQ9U2ZbVGZdLFNmW1RmXT1udWxsLFRmLS0pfWZ1bmN0aW9uIEcoYSxiKXtUZisrO1NmW1RmXT1hLmN1cnJlbnQ7YS5jdXJyZW50PWJ9dmFyIFZmPXt9LEg9VWYoVmYpLFdmPVVmKCExKSxYZj1WZjtmdW5jdGlvbiBZZihhLGIpe3ZhciBjPWEudHlwZS5jb250ZXh0VHlwZXM7aWYoIWMpcmV0dXJuIFZmO3ZhciBkPWEuc3RhdGVOb2RlO2lmKGQmJmQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PWIpcmV0dXJuIGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIGU9e30sZjtmb3IoZiBpbiBjKWVbZl09YltmXTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9YixhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWUpO3JldHVybiBlfVxuZnVuY3Rpb24gWmYoYSl7YT1hLmNoaWxkQ29udGV4dFR5cGVzO3JldHVybiBudWxsIT09YSYmdm9pZCAwIT09YX1mdW5jdGlvbiAkZigpe0UoV2YpO0UoSCl9ZnVuY3Rpb24gYWcoYSxiLGMpe2lmKEguY3VycmVudCE9PVZmKXRocm93IEVycm9yKHAoMTY4KSk7RyhILGIpO0coV2YsYyl9ZnVuY3Rpb24gYmcoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2I9Yi5jaGlsZENvbnRleHRUeXBlcztpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZC5nZXRDaGlsZENvbnRleHQpcmV0dXJuIGM7ZD1kLmdldENoaWxkQ29udGV4dCgpO2Zvcih2YXIgZSBpbiBkKWlmKCEoZSBpbiBiKSl0aHJvdyBFcnJvcihwKDEwOCxSYShhKXx8XCJVbmtub3duXCIsZSkpO3JldHVybiBBKHt9LGMsZCl9XG5mdW5jdGlvbiBjZyhhKXthPShhPWEuc3RhdGVOb2RlKSYmYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dHx8VmY7WGY9SC5jdXJyZW50O0coSCxhKTtHKFdmLFdmLmN1cnJlbnQpO3JldHVybiEwfWZ1bmN0aW9uIGRnKGEsYixjKXt2YXIgZD1hLnN0YXRlTm9kZTtpZighZCl0aHJvdyBFcnJvcihwKDE2OSkpO2M/KGE9YmcoYSxiLFhmKSxkLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0PWEsRShXZiksRShIKSxHKEgsYSkpOkUoV2YpO0coV2YsYyl9dmFyIGVnPW51bGwsZmc9ITEsZ2c9ITE7ZnVuY3Rpb24gaGcoYSl7bnVsbD09PWVnP2VnPVthXTplZy5wdXNoKGEpfWZ1bmN0aW9uIGlnKGEpe2ZnPSEwO2hnKGEpfVxuZnVuY3Rpb24gamcoKXtpZighZ2cmJm51bGwhPT1lZyl7Z2c9ITA7dmFyIGE9MCxiPUM7dHJ5e3ZhciBjPWVnO2ZvcihDPTE7YTxjLmxlbmd0aDthKyspe3ZhciBkPWNbYV07ZG8gZD1kKCEwKTt3aGlsZShudWxsIT09ZCl9ZWc9bnVsbDtmZz0hMX1jYXRjaChlKXt0aHJvdyBudWxsIT09ZWcmJihlZz1lZy5zbGljZShhKzEpKSxhYyhmYyxqZyksZTt9ZmluYWxseXtDPWIsZ2c9ITF9fXJldHVybiBudWxsfXZhciBrZz1bXSxsZz0wLG1nPW51bGwsbmc9MCxvZz1bXSxwZz0wLHFnPW51bGwscmc9MSxzZz1cIlwiO2Z1bmN0aW9uIHRnKGEsYil7a2dbbGcrK109bmc7a2dbbGcrK109bWc7bWc9YTtuZz1ifVxuZnVuY3Rpb24gdWcoYSxiLGMpe29nW3BnKytdPXJnO29nW3BnKytdPXNnO29nW3BnKytdPXFnO3FnPWE7dmFyIGQ9cmc7YT1zZzt2YXIgZT0zMi1vYyhkKS0xO2QmPX4oMTw8ZSk7Yys9MTt2YXIgZj0zMi1vYyhiKStlO2lmKDMwPGYpe3ZhciBnPWUtZSU1O2Y9KGQmKDE8PGcpLTEpLnRvU3RyaW5nKDMyKTtkPj49ZztlLT1nO3JnPTE8PDMyLW9jKGIpK2V8Yzw8ZXxkO3NnPWYrYX1lbHNlIHJnPTE8PGZ8Yzw8ZXxkLHNnPWF9ZnVuY3Rpb24gdmcoYSl7bnVsbCE9PWEucmV0dXJuJiYodGcoYSwxKSx1ZyhhLDEsMCkpfWZ1bmN0aW9uIHdnKGEpe2Zvcig7YT09PW1nOyltZz1rZ1stLWxnXSxrZ1tsZ109bnVsbCxuZz1rZ1stLWxnXSxrZ1tsZ109bnVsbDtmb3IoO2E9PT1xZzspcWc9b2dbLS1wZ10sb2dbcGddPW51bGwsc2c9b2dbLS1wZ10sb2dbcGddPW51bGwscmc9b2dbLS1wZ10sb2dbcGddPW51bGx9dmFyIHhnPW51bGwseWc9bnVsbCxJPSExLHpnPW51bGw7XG5mdW5jdGlvbiBBZyhhLGIpe3ZhciBjPUJnKDUsbnVsbCxudWxsLDApO2MuZWxlbWVudFR5cGU9XCJERUxFVEVEXCI7Yy5zdGF0ZU5vZGU9YjtjLnJldHVybj1hO2I9YS5kZWxldGlvbnM7bnVsbD09PWI/KGEuZGVsZXRpb25zPVtjXSxhLmZsYWdzfD0xNik6Yi5wdXNoKGMpfVxuZnVuY3Rpb24gQ2coYSxiKXtzd2l0Y2goYS50YWcpe2Nhc2UgNTp2YXIgYz1hLnR5cGU7Yj0xIT09Yi5ub2RlVHlwZXx8Yy50b0xvd2VyQ2FzZSgpIT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP251bGw6YjtyZXR1cm4gbnVsbCE9PWI/KGEuc3RhdGVOb2RlPWIseGc9YSx5Zz1MZihiLmZpcnN0Q2hpbGQpLCEwKTohMTtjYXNlIDY6cmV0dXJuIGI9XCJcIj09PWEucGVuZGluZ1Byb3BzfHwzIT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGEuc3RhdGVOb2RlPWIseGc9YSx5Zz1udWxsLCEwKTohMTtjYXNlIDEzOnJldHVybiBiPTghPT1iLm5vZGVUeXBlP251bGw6YixudWxsIT09Yj8oYz1udWxsIT09cWc/e2lkOnJnLG92ZXJmbG93OnNnfTpudWxsLGEubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDpiLHRyZWVDb250ZXh0OmMscmV0cnlMYW5lOjEwNzM3NDE4MjR9LGM9QmcoMTgsbnVsbCxudWxsLDApLGMuc3RhdGVOb2RlPWIsYy5yZXR1cm49YSxhLmNoaWxkPWMseGc9YSx5Zz1cbm51bGwsITApOiExO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIERnKGEpe3JldHVybiAwIT09KGEubW9kZSYxKSYmMD09PShhLmZsYWdzJjEyOCl9ZnVuY3Rpb24gRWcoYSl7aWYoSSl7dmFyIGI9eWc7aWYoYil7dmFyIGM9YjtpZighQ2coYSxiKSl7aWYoRGcoYSkpdGhyb3cgRXJyb3IocCg0MTgpKTtiPUxmKGMubmV4dFNpYmxpbmcpO3ZhciBkPXhnO2ImJkNnKGEsYik/QWcoZCxjKTooYS5mbGFncz1hLmZsYWdzJi00MDk3fDIsST0hMSx4Zz1hKX19ZWxzZXtpZihEZyhhKSl0aHJvdyBFcnJvcihwKDQxOCkpO2EuZmxhZ3M9YS5mbGFncyYtNDA5N3wyO0k9ITE7eGc9YX19fWZ1bmN0aW9uIEZnKGEpe2ZvcihhPWEucmV0dXJuO251bGwhPT1hJiY1IT09YS50YWcmJjMhPT1hLnRhZyYmMTMhPT1hLnRhZzspYT1hLnJldHVybjt4Zz1hfVxuZnVuY3Rpb24gR2coYSl7aWYoYSE9PXhnKXJldHVybiExO2lmKCFJKXJldHVybiBGZyhhKSxJPSEwLCExO3ZhciBiOyhiPTMhPT1hLnRhZykmJiEoYj01IT09YS50YWcpJiYoYj1hLnR5cGUsYj1cImhlYWRcIiE9PWImJlwiYm9keVwiIT09YiYmIUVmKGEudHlwZSxhLm1lbW9pemVkUHJvcHMpKTtpZihiJiYoYj15Zykpe2lmKERnKGEpKXRocm93IEhnKCksRXJyb3IocCg0MTgpKTtmb3IoO2I7KUFnKGEsYiksYj1MZihiLm5leHRTaWJsaW5nKX1GZyhhKTtpZigxMz09PWEudGFnKXthPWEubWVtb2l6ZWRTdGF0ZTthPW51bGwhPT1hP2EuZGVoeWRyYXRlZDpudWxsO2lmKCFhKXRocm93IEVycm9yKHAoMzE3KSk7YTp7YT1hLm5leHRTaWJsaW5nO2ZvcihiPTA7YTspe2lmKDg9PT1hLm5vZGVUeXBlKXt2YXIgYz1hLmRhdGE7aWYoXCIvJFwiPT09Yyl7aWYoMD09PWIpe3lnPUxmKGEubmV4dFNpYmxpbmcpO2JyZWFrIGF9Yi0tfWVsc2VcIiRcIiE9PWMmJlwiJCFcIiE9PWMmJlwiJD9cIiE9PWN8fGIrK31hPWEubmV4dFNpYmxpbmd9eWc9XG5udWxsfX1lbHNlIHlnPXhnP0xmKGEuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEhnKCl7Zm9yKHZhciBhPXlnO2E7KWE9TGYoYS5uZXh0U2libGluZyl9ZnVuY3Rpb24gSWcoKXt5Zz14Zz1udWxsO0k9ITF9ZnVuY3Rpb24gSmcoYSl7bnVsbD09PXpnP3pnPVthXTp6Zy5wdXNoKGEpfXZhciBLZz11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZztmdW5jdGlvbiBMZyhhLGIpe2lmKGEmJmEuZGVmYXVsdFByb3BzKXtiPUEoe30sYik7YT1hLmRlZmF1bHRQcm9wcztmb3IodmFyIGMgaW4gYSl2b2lkIDA9PT1iW2NdJiYoYltjXT1hW2NdKTtyZXR1cm4gYn1yZXR1cm4gYn12YXIgTWc9VWYobnVsbCksTmc9bnVsbCxPZz1udWxsLFBnPW51bGw7ZnVuY3Rpb24gUWcoKXtQZz1PZz1OZz1udWxsfWZ1bmN0aW9uIFJnKGEpe3ZhciBiPU1nLmN1cnJlbnQ7RShNZyk7YS5fY3VycmVudFZhbHVlPWJ9XG5mdW5jdGlvbiBTZyhhLGIsYyl7Zm9yKDtudWxsIT09YTspe3ZhciBkPWEuYWx0ZXJuYXRlOyhhLmNoaWxkTGFuZXMmYikhPT1iPyhhLmNoaWxkTGFuZXN8PWIsbnVsbCE9PWQmJihkLmNoaWxkTGFuZXN8PWIpKTpudWxsIT09ZCYmKGQuY2hpbGRMYW5lcyZiKSE9PWImJihkLmNoaWxkTGFuZXN8PWIpO2lmKGE9PT1jKWJyZWFrO2E9YS5yZXR1cm59fWZ1bmN0aW9uIFRnKGEsYil7Tmc9YTtQZz1PZz1udWxsO2E9YS5kZXBlbmRlbmNpZXM7bnVsbCE9PWEmJm51bGwhPT1hLmZpcnN0Q29udGV4dCYmKDAhPT0oYS5sYW5lcyZiKSYmKFVnPSEwKSxhLmZpcnN0Q29udGV4dD1udWxsKX1cbmZ1bmN0aW9uIFZnKGEpe3ZhciBiPWEuX2N1cnJlbnRWYWx1ZTtpZihQZyE9PWEpaWYoYT17Y29udGV4dDphLG1lbW9pemVkVmFsdWU6YixuZXh0Om51bGx9LG51bGw9PT1PZyl7aWYobnVsbD09PU5nKXRocm93IEVycm9yKHAoMzA4KSk7T2c9YTtOZy5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OmF9fWVsc2UgT2c9T2cubmV4dD1hO3JldHVybiBifXZhciBXZz1udWxsO2Z1bmN0aW9uIFhnKGEpe251bGw9PT1XZz9XZz1bYV06V2cucHVzaChhKX1mdW5jdGlvbiBZZyhhLGIsYyxkKXt2YXIgZT1iLmludGVybGVhdmVkO251bGw9PT1lPyhjLm5leHQ9YyxYZyhiKSk6KGMubmV4dD1lLm5leHQsZS5uZXh0PWMpO2IuaW50ZXJsZWF2ZWQ9YztyZXR1cm4gWmcoYSxkKX1cbmZ1bmN0aW9uIFpnKGEsYil7YS5sYW5lc3w9Yjt2YXIgYz1hLmFsdGVybmF0ZTtudWxsIT09YyYmKGMubGFuZXN8PWIpO2M9YTtmb3IoYT1hLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD1iLGM9YS5hbHRlcm5hdGUsbnVsbCE9PWMmJihjLmNoaWxkTGFuZXN8PWIpLGM9YSxhPWEucmV0dXJuO3JldHVybiAzPT09Yy50YWc/Yy5zdGF0ZU5vZGU6bnVsbH12YXIgJGc9ITE7ZnVuY3Rpb24gYWgoYSl7YS51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEubWVtb2l6ZWRTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6bnVsbCxsYXN0QmFzZVVwZGF0ZTpudWxsLHNoYXJlZDp7cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MH0sZWZmZWN0czpudWxsfX1cbmZ1bmN0aW9uIGJoKGEsYil7YT1hLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9PT1hJiYoYi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTphLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTphLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDphLnNoYXJlZCxlZmZlY3RzOmEuZWZmZWN0c30pfWZ1bmN0aW9uIGNoKGEsYil7cmV0dXJue2V2ZW50VGltZTphLGxhbmU6Yix0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fVxuZnVuY3Rpb24gZGgoYSxiLGMpe3ZhciBkPWEudXBkYXRlUXVldWU7aWYobnVsbD09PWQpcmV0dXJuIG51bGw7ZD1kLnNoYXJlZDtpZigwIT09KEsmMikpe3ZhciBlPWQucGVuZGluZztudWxsPT09ZT9iLm5leHQ9YjooYi5uZXh0PWUubmV4dCxlLm5leHQ9Yik7ZC5wZW5kaW5nPWI7cmV0dXJuIFpnKGEsYyl9ZT1kLmludGVybGVhdmVkO251bGw9PT1lPyhiLm5leHQ9YixYZyhkKSk6KGIubmV4dD1lLm5leHQsZS5uZXh0PWIpO2QuaW50ZXJsZWF2ZWQ9YjtyZXR1cm4gWmcoYSxjKX1mdW5jdGlvbiBlaChhLGIsYyl7Yj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iJiYoYj1iLnNoYXJlZCwwIT09KGMmNDE5NDI0MCkpKXt2YXIgZD1iLmxhbmVzO2QmPWEucGVuZGluZ0xhbmVzO2N8PWQ7Yi5sYW5lcz1jO0NjKGEsYyl9fVxuZnVuY3Rpb24gZmgoYSxiKXt2YXIgYz1hLnVwZGF0ZVF1ZXVlLGQ9YS5hbHRlcm5hdGU7aWYobnVsbCE9PWQmJihkPWQudXBkYXRlUXVldWUsYz09PWQpKXt2YXIgZT1udWxsLGY9bnVsbDtjPWMuZmlyc3RCYXNlVXBkYXRlO2lmKG51bGwhPT1jKXtkb3t2YXIgZz17ZXZlbnRUaW1lOmMuZXZlbnRUaW1lLGxhbmU6Yy5sYW5lLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpjLmNhbGxiYWNrLG5leHQ6bnVsbH07bnVsbD09PWY/ZT1mPWc6Zj1mLm5leHQ9ZztjPWMubmV4dH13aGlsZShudWxsIT09Yyk7bnVsbD09PWY/ZT1mPWI6Zj1mLm5leHQ9Yn1lbHNlIGU9Zj1iO2M9e2Jhc2VTdGF0ZTpkLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6ZSxsYXN0QmFzZVVwZGF0ZTpmLHNoYXJlZDpkLnNoYXJlZCxlZmZlY3RzOmQuZWZmZWN0c307YS51cGRhdGVRdWV1ZT1jO3JldHVybn1hPWMubGFzdEJhc2VVcGRhdGU7bnVsbD09PWE/Yy5maXJzdEJhc2VVcGRhdGU9YjphLm5leHQ9XG5iO2MubGFzdEJhc2VVcGRhdGU9Yn1cbmZ1bmN0aW9uIGdoKGEsYixjLGQpe3ZhciBlPWEudXBkYXRlUXVldWU7JGc9ITE7dmFyIGY9ZS5maXJzdEJhc2VVcGRhdGUsZz1lLmxhc3RCYXNlVXBkYXRlLGg9ZS5zaGFyZWQucGVuZGluZztpZihudWxsIT09aCl7ZS5zaGFyZWQucGVuZGluZz1udWxsO3ZhciBrPWgsbD1rLm5leHQ7ay5uZXh0PW51bGw7bnVsbD09PWc/Zj1sOmcubmV4dD1sO2c9azt2YXIgbT1hLmFsdGVybmF0ZTtudWxsIT09bSYmKG09bS51cGRhdGVRdWV1ZSxoPW0ubGFzdEJhc2VVcGRhdGUsaCE9PWcmJihudWxsPT09aD9tLmZpcnN0QmFzZVVwZGF0ZT1sOmgubmV4dD1sLG0ubGFzdEJhc2VVcGRhdGU9aykpfWlmKG51bGwhPT1mKXt2YXIgcT1lLmJhc2VTdGF0ZTtnPTA7bT1sPWs9bnVsbDtoPWY7ZG97dmFyIHI9aC5sYW5lLHk9aC5ldmVudFRpbWU7aWYoKGQmcik9PT1yKXtudWxsIT09bSYmKG09bS5uZXh0PXtldmVudFRpbWU6eSxsYW5lOjAsdGFnOmgudGFnLHBheWxvYWQ6aC5wYXlsb2FkLGNhbGxiYWNrOmguY2FsbGJhY2ssXG5uZXh0Om51bGx9KTthOnt2YXIgbj1hLHQ9aDtyPWI7eT1jO3N3aXRjaCh0LnRhZyl7Y2FzZSAxOm49dC5wYXlsb2FkO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuKXtxPW4uY2FsbCh5LHEscik7YnJlYWsgYX1xPW47YnJlYWsgYTtjYXNlIDM6bi5mbGFncz1uLmZsYWdzJi02NTUzN3wxMjg7Y2FzZSAwOm49dC5wYXlsb2FkO3I9XCJmdW5jdGlvblwiPT09dHlwZW9mIG4/bi5jYWxsKHkscSxyKTpuO2lmKG51bGw9PT1yfHx2b2lkIDA9PT1yKWJyZWFrIGE7cT1BKHt9LHEscik7YnJlYWsgYTtjYXNlIDI6JGc9ITB9fW51bGwhPT1oLmNhbGxiYWNrJiYwIT09aC5sYW5lJiYoYS5mbGFnc3w9NjQscj1lLmVmZmVjdHMsbnVsbD09PXI/ZS5lZmZlY3RzPVtoXTpyLnB1c2goaCkpfWVsc2UgeT17ZXZlbnRUaW1lOnksbGFuZTpyLHRhZzpoLnRhZyxwYXlsb2FkOmgucGF5bG9hZCxjYWxsYmFjazpoLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PW0/KGw9bT15LGs9cSk6bT1tLm5leHQ9eSxnfD1yO1xuaD1oLm5leHQ7aWYobnVsbD09PWgpaWYoaD1lLnNoYXJlZC5wZW5kaW5nLG51bGw9PT1oKWJyZWFrO2Vsc2Ugcj1oLGg9ci5uZXh0LHIubmV4dD1udWxsLGUubGFzdEJhc2VVcGRhdGU9cixlLnNoYXJlZC5wZW5kaW5nPW51bGx9d2hpbGUoMSk7bnVsbD09PW0mJihrPXEpO2UuYmFzZVN0YXRlPWs7ZS5maXJzdEJhc2VVcGRhdGU9bDtlLmxhc3RCYXNlVXBkYXRlPW07Yj1lLnNoYXJlZC5pbnRlcmxlYXZlZDtpZihudWxsIT09Yil7ZT1iO2RvIGd8PWUubGFuZSxlPWUubmV4dDt3aGlsZShlIT09Yil9ZWxzZSBudWxsPT09ZiYmKGUuc2hhcmVkLmxhbmVzPTApO2hofD1nO2EubGFuZXM9ZzthLm1lbW9pemVkU3RhdGU9cX19XG5mdW5jdGlvbiBpaChhLGIsYyl7YT1iLmVmZmVjdHM7Yi5lZmZlY3RzPW51bGw7aWYobnVsbCE9PWEpZm9yKGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGQ9YVtiXSxlPWQuY2FsbGJhY2s7aWYobnVsbCE9PWUpe2QuY2FsbGJhY2s9bnVsbDtkPWM7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGUpdGhyb3cgRXJyb3IocCgxOTEsZSkpO2UuY2FsbChkKX19fXZhciBqaD0obmV3IGFhLkNvbXBvbmVudCkucmVmcztmdW5jdGlvbiBraChhLGIsYyxkKXtiPWEubWVtb2l6ZWRTdGF0ZTtjPWMoZCxiKTtjPW51bGw9PT1jfHx2b2lkIDA9PT1jP2I6QSh7fSxiLGMpO2EubWVtb2l6ZWRTdGF0ZT1jOzA9PT1hLmxhbmVzJiYoYS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9Yyl9XG52YXIgbmg9e2lzTW91bnRlZDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLl9yZWFjdEludGVybmFscyk/VmIoYSk9PT1hOiExfSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9TCgpLGU9bGgoYSksZj1jaChkLGUpO2YucGF5bG9hZD1iO3ZvaWQgMCE9PWMmJm51bGwhPT1jJiYoZi5jYWxsYmFjaz1jKTtiPWRoKGEsZixlKTtudWxsIT09YiYmKG1oKGIsYSxlLGQpLGVoKGIsYSxlKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9YS5fcmVhY3RJbnRlcm5hbHM7dmFyIGQ9TCgpLGU9bGgoYSksZj1jaChkLGUpO2YudGFnPTE7Zi5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihmLmNhbGxiYWNrPWMpO2I9ZGgoYSxmLGUpO251bGwhPT1iJiYobWgoYixhLGUsZCksZWgoYixhLGUpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsczt2YXIgYz1MKCksZD1cbmxoKGEpLGU9Y2goYyxkKTtlLnRhZz0yO3ZvaWQgMCE9PWImJm51bGwhPT1iJiYoZS5jYWxsYmFjaz1iKTtiPWRoKGEsZSxkKTtudWxsIT09YiYmKG1oKGIsYSxkLGMpLGVoKGIsYSxkKSl9fTtmdW5jdGlvbiBvaChhLGIsYyxkLGUsZixnKXthPWEuc3RhdGVOb2RlO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9hLnNob3VsZENvbXBvbmVudFVwZGF0ZShkLGYsZyk6Yi5wcm90b3R5cGUmJmIucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PyFJZShjLGQpfHwhSWUoZSxmKTohMH1cbmZ1bmN0aW9uIHBoKGEsYixjKXt2YXIgZD0hMSxlPVZmO3ZhciBmPWIuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09Zj9mPVZnKGYpOihlPVpmKGIpP1hmOkguY3VycmVudCxkPWIuY29udGV4dFR5cGVzLGY9KGQ9bnVsbCE9PWQmJnZvaWQgMCE9PWQpP1lmKGEsZSk6VmYpO2I9bmV3IGIoYyxmKTthLm1lbW9pemVkU3RhdGU9bnVsbCE9PWIuc3RhdGUmJnZvaWQgMCE9PWIuc3RhdGU/Yi5zdGF0ZTpudWxsO2IudXBkYXRlcj1uaDthLnN0YXRlTm9kZT1iO2IuX3JlYWN0SW50ZXJuYWxzPWE7ZCYmKGE9YS5zdGF0ZU5vZGUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZFVubWFza2VkQ2hpbGRDb250ZXh0PWUsYS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dD1mKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIHFoKGEsYixjLGQpe2E9Yi5zdGF0ZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYyxkKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmYi5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO2Iuc3RhdGUhPT1hJiZuaC5lbnF1ZXVlUmVwbGFjZVN0YXRlKGIsYi5zdGF0ZSxudWxsKX1cbmZ1bmN0aW9uIHJoKGEsYixjLGQpe3ZhciBlPWEuc3RhdGVOb2RlO2UucHJvcHM9YztlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZTtlLnJlZnM9amg7YWgoYSk7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2UuY29udGV4dD1WZyhmKTooZj1aZihiKT9YZjpILmN1cnJlbnQsZS5jb250ZXh0PVlmKGEsZikpO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2Y9Yi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJihraChhLGIsZixjKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHwoYj1lLnN0YXRlLFxuXCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmUuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGIhPT1lLnN0YXRlJiZuaC5lbnF1ZXVlUmVwbGFjZVN0YXRlKGUsZS5zdGF0ZSxudWxsKSxnaChhLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuY29tcG9uZW50RGlkTW91bnQmJihhLmZsYWdzfD00MTk0MzA4KX1cbmZ1bmN0aW9uIHNoKGEsYixjKXthPWMucmVmO2lmKG51bGwhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmXCJvYmplY3RcIiE9PXR5cGVvZiBhKXtpZihjLl9vd25lcil7Yz1jLl9vd25lcjtpZihjKXtpZigxIT09Yy50YWcpdGhyb3cgRXJyb3IocCgzMDkpKTt2YXIgZD1jLnN0YXRlTm9kZX1pZighZCl0aHJvdyBFcnJvcihwKDE0NyxhKSk7dmFyIGU9ZCxmPVwiXCIrYTtpZihudWxsIT09YiYmbnVsbCE9PWIucmVmJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5yZWYmJmIucmVmLl9zdHJpbmdSZWY9PT1mKXJldHVybiBiLnJlZjtiPWZ1bmN0aW9uKGEpe3ZhciBiPWUucmVmcztiPT09amgmJihiPWUucmVmcz17fSk7bnVsbD09PWE/ZGVsZXRlIGJbZl06YltmXT1hfTtiLl9zdHJpbmdSZWY9ZjtyZXR1cm4gYn1pZihcInN0cmluZ1wiIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IocCgyODQpKTtpZighYy5fb3duZXIpdGhyb3cgRXJyb3IocCgyOTAsYSkpO31yZXR1cm4gYX1cbmZ1bmN0aW9uIHRoKGEsYil7YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYik7dGhyb3cgRXJyb3IocCgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09YT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKGIpLmpvaW4oXCIsIFwiKStcIn1cIjphKSk7fWZ1bmN0aW9uIHVoKGEpe3ZhciBiPWEuX2luaXQ7cmV0dXJuIGIoYS5fcGF5bG9hZCl9XG5mdW5jdGlvbiB2aChhKXtmdW5jdGlvbiBiKGIsYyl7aWYoYSl7dmFyIGQ9Yi5kZWxldGlvbnM7bnVsbD09PWQ/KGIuZGVsZXRpb25zPVtjXSxiLmZsYWdzfD0xNik6ZC5wdXNoKGMpfX1mdW5jdGlvbiBjKGMsZCl7aWYoIWEpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09ZDspYihjLGQpLGQ9ZC5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIGQoYSxiKXtmb3IoYT1uZXcgTWFwO251bGwhPT1iOyludWxsIT09Yi5rZXk/YS5zZXQoYi5rZXksYik6YS5zZXQoYi5pbmRleCxiKSxiPWIuc2libGluZztyZXR1cm4gYX1mdW5jdGlvbiBlKGEsYil7YT13aChhLGIpO2EuaW5kZXg9MDthLnNpYmxpbmc9bnVsbDtyZXR1cm4gYX1mdW5jdGlvbiBmKGIsYyxkKXtiLmluZGV4PWQ7aWYoIWEpcmV0dXJuIGIuZmxhZ3N8PTEwNDg1NzYsYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmZsYWdzfD0yLGMpOmQ7Yi5mbGFnc3w9MjtyZXR1cm4gY31mdW5jdGlvbiBnKGIpe2EmJlxubnVsbD09PWIuYWx0ZXJuYXRlJiYoYi5mbGFnc3w9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gaChhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPXhoKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIGsoYSxiLGMsZCl7dmFyIGY9Yy50eXBlO2lmKGY9PT15YSlyZXR1cm4gbShhLGIsYy5wcm9wcy5jaGlsZHJlbixkLGMua2V5KTtpZihudWxsIT09YiYmKGIuZWxlbWVudFR5cGU9PT1mfHxcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLiQkdHlwZW9mPT09SGEmJnVoKGYpPT09Yi50eXBlKSlyZXR1cm4gZD1lKGIsYy5wcm9wcyksZC5yZWY9c2goYSxiLGMpLGQucmV0dXJuPWEsZDtkPXloKGMudHlwZSxjLmtleSxjLnByb3BzLG51bGwsYS5tb2RlLGQpO2QucmVmPXNoKGEsYixjKTtkLnJldHVybj1hO3JldHVybiBkfWZ1bmN0aW9uIGwoYSxiLGMsZCl7aWYobnVsbD09PWJ8fDQhPT1iLnRhZ3x8XG5iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PWMuaW1wbGVtZW50YXRpb24pcmV0dXJuIGI9emgoYyxhLm1vZGUsZCksYi5yZXR1cm49YSxiO2I9ZShiLGMuY2hpbGRyZW58fFtdKTtiLnJldHVybj1hO3JldHVybiBifWZ1bmN0aW9uIG0oYSxiLGMsZCxmKXtpZihudWxsPT09Ynx8NyE9PWIudGFnKXJldHVybiBiPUFoKGMsYS5tb2RlLGQsZiksYi5yZXR1cm49YSxiO2I9ZShiLGMpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBiJiZcIlwiIT09Ynx8XCJudW1iZXJcIj09PXR5cGVvZiBiKXJldHVybiBiPXhoKFwiXCIrYixhLm1vZGUsYyksYi5yZXR1cm49YSxiO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmbnVsbCE9PWIpe3N3aXRjaChiLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjPXloKGIudHlwZSxiLmtleSxiLnByb3BzLG51bGwsYS5tb2RlLGMpLFxuYy5yZWY9c2goYSxudWxsLGIpLGMucmV0dXJuPWEsYztjYXNlIHdhOnJldHVybiBiPXpoKGIsYS5tb2RlLGMpLGIucmV0dXJuPWEsYjtjYXNlIEhhOnZhciBkPWIuX2luaXQ7cmV0dXJuIHEoYSxkKGIuX3BheWxvYWQpLGMpfWlmKGViKGIpfHxLYShiKSlyZXR1cm4gYj1BaChiLGEubW9kZSxjLG51bGwpLGIucmV0dXJuPWEsYjt0aChhLGIpfXJldHVybiBudWxsfWZ1bmN0aW9uIHIoYSxiLGMsZCl7dmFyIGU9bnVsbCE9PWI/Yi5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGMmJlwiXCIhPT1jfHxcIm51bWJlclwiPT09dHlwZW9mIGMpcmV0dXJuIG51bGwhPT1lP251bGw6aChhLGIsXCJcIitjLGQpO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWMpe3N3aXRjaChjLiQkdHlwZW9mKXtjYXNlIHZhOnJldHVybiBjLmtleT09PWU/ayhhLGIsYyxkKTpudWxsO2Nhc2Ugd2E6cmV0dXJuIGMua2V5PT09ZT9sKGEsYixjLGQpOm51bGw7Y2FzZSBIYTpyZXR1cm4gZT1jLl9pbml0LHIoYSxcbmIsZShjLl9wYXlsb2FkKSxkKX1pZihlYihjKXx8S2EoYykpcmV0dXJuIG51bGwhPT1lP251bGw6bShhLGIsYyxkLG51bGwpO3RoKGEsYyl9cmV0dXJuIG51bGx9ZnVuY3Rpb24geShhLGIsYyxkLGUpe2lmKFwic3RyaW5nXCI9PT10eXBlb2YgZCYmXCJcIiE9PWR8fFwibnVtYmVyXCI9PT10eXBlb2YgZClyZXR1cm4gYT1hLmdldChjKXx8bnVsbCxoKGIsYSxcIlwiK2QsZSk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgdmE6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGsoYixhLGQsZSk7Y2FzZSB3YTpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsbChiLGEsZCxlKTtjYXNlIEhhOnZhciBmPWQuX2luaXQ7cmV0dXJuIHkoYSxiLGMsZihkLl9wYXlsb2FkKSxlKX1pZihlYihkKXx8S2EoZCkpcmV0dXJuIGE9YS5nZXQoYyl8fG51bGwsbShiLGEsZCxlLG51bGwpO3RoKGIsZCl9cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBuKGUsZyxoLGspe2Zvcih2YXIgbD1udWxsLG09bnVsbCx1PWcsdz1nPTAseD1udWxsO251bGwhPT11JiZ3PGgubGVuZ3RoO3crKyl7dS5pbmRleD53Pyh4PXUsdT1udWxsKTp4PXUuc2libGluZzt2YXIgbj1yKGUsdSxoW3ddLGspO2lmKG51bGw9PT1uKXtudWxsPT09dSYmKHU9eCk7YnJlYWt9YSYmdSYmbnVsbD09PW4uYWx0ZXJuYXRlJiZiKGUsdSk7Zz1mKG4sZyx3KTtudWxsPT09bT9sPW46bS5zaWJsaW5nPW47bT1uO3U9eH1pZih3PT09aC5sZW5ndGgpcmV0dXJuIGMoZSx1KSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PXUpe2Zvcig7dzxoLmxlbmd0aDt3KyspdT1xKGUsaFt3XSxrKSxudWxsIT09dSYmKGc9Zih1LGcsdyksbnVsbD09PW0/bD11Om0uc2libGluZz11LG09dSk7SSYmdGcoZSx3KTtyZXR1cm4gbH1mb3IodT1kKGUsdSk7dzxoLmxlbmd0aDt3KyspeD15KHUsZSx3LGhbd10sayksbnVsbCE9PXgmJihhJiZudWxsIT09eC5hbHRlcm5hdGUmJnUuZGVsZXRlKG51bGw9PT1cbngua2V5P3c6eC5rZXkpLGc9Zih4LGcsdyksbnVsbD09PW0/bD14Om0uc2libGluZz14LG09eCk7YSYmdS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBiKGUsYSl9KTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZ1bmN0aW9uIHQoZSxnLGgsayl7dmFyIGw9S2EoaCk7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGwpdGhyb3cgRXJyb3IocCgxNTApKTtoPWwuY2FsbChoKTtpZihudWxsPT1oKXRocm93IEVycm9yKHAoMTUxKSk7Zm9yKHZhciB1PWw9bnVsbCxtPWcsdz1nPTAseD1udWxsLG49aC5uZXh0KCk7bnVsbCE9PW0mJiFuLmRvbmU7dysrLG49aC5uZXh0KCkpe20uaW5kZXg+dz8oeD1tLG09bnVsbCk6eD1tLnNpYmxpbmc7dmFyIHQ9cihlLG0sbi52YWx1ZSxrKTtpZihudWxsPT09dCl7bnVsbD09PW0mJihtPXgpO2JyZWFrfWEmJm0mJm51bGw9PT10LmFsdGVybmF0ZSYmYihlLG0pO2c9Zih0LGcsdyk7bnVsbD09PXU/bD10OnUuc2libGluZz10O3U9dDttPXh9aWYobi5kb25lKXJldHVybiBjKGUsXG5tKSxJJiZ0ZyhlLHcpLGw7aWYobnVsbD09PW0pe2Zvcig7IW4uZG9uZTt3Kyssbj1oLm5leHQoKSluPXEoZSxuLnZhbHVlLGspLG51bGwhPT1uJiYoZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTtJJiZ0ZyhlLHcpO3JldHVybiBsfWZvcihtPWQoZSxtKTshbi5kb25lO3crKyxuPWgubmV4dCgpKW49eShtLGUsdyxuLnZhbHVlLGspLG51bGwhPT1uJiYoYSYmbnVsbCE9PW4uYWx0ZXJuYXRlJiZtLmRlbGV0ZShudWxsPT09bi5rZXk/dzpuLmtleSksZz1mKG4sZyx3KSxudWxsPT09dT9sPW46dS5zaWJsaW5nPW4sdT1uKTthJiZtLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO0kmJnRnKGUsdyk7cmV0dXJuIGx9ZnVuY3Rpb24gSihhLGQsZixoKXtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mJiZmLnR5cGU9PT15YSYmbnVsbD09PWYua2V5JiYoZj1mLnByb3BzLmNoaWxkcmVuKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mKXtzd2l0Y2goZi4kJHR5cGVvZil7Y2FzZSB2YTphOntmb3IodmFyIGs9XG5mLmtleSxsPWQ7bnVsbCE9PWw7KXtpZihsLmtleT09PWspe2s9Zi50eXBlO2lmKGs9PT15YSl7aWYoNz09PWwudGFnKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzLmNoaWxkcmVuKTtkLnJldHVybj1hO2E9ZDticmVhayBhfX1lbHNlIGlmKGwuZWxlbWVudFR5cGU9PT1rfHxcIm9iamVjdFwiPT09dHlwZW9mIGsmJm51bGwhPT1rJiZrLiQkdHlwZW9mPT09SGEmJnVoKGspPT09bC50eXBlKXtjKGEsbC5zaWJsaW5nKTtkPWUobCxmLnByb3BzKTtkLnJlZj1zaChhLGwsZik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1jKGEsbCk7YnJlYWt9ZWxzZSBiKGEsbCk7bD1sLnNpYmxpbmd9Zi50eXBlPT09eWE/KGQ9QWgoZi5wcm9wcy5jaGlsZHJlbixhLm1vZGUsaCxmLmtleSksZC5yZXR1cm49YSxhPWQpOihoPXloKGYudHlwZSxmLmtleSxmLnByb3BzLG51bGwsYS5tb2RlLGgpLGgucmVmPXNoKGEsZCxmKSxoLnJldHVybj1hLGE9aCl9cmV0dXJuIGcoYSk7Y2FzZSB3YTphOntmb3IobD1mLmtleTtudWxsIT09XG5kOyl7aWYoZC5rZXk9PT1sKWlmKDQ9PT1kLnRhZyYmZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWYuY29udGFpbmVySW5mbyYmZC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1mLmltcGxlbWVudGF0aW9uKXtjKGEsZC5zaWJsaW5nKTtkPWUoZCxmLmNoaWxkcmVufHxbXSk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1lbHNle2MoYSxkKTticmVha31lbHNlIGIoYSxkKTtkPWQuc2libGluZ31kPXpoKGYsYS5tb2RlLGgpO2QucmV0dXJuPWE7YT1kfXJldHVybiBnKGEpO2Nhc2UgSGE6cmV0dXJuIGw9Zi5faW5pdCxKKGEsZCxsKGYuX3BheWxvYWQpLGgpfWlmKGViKGYpKXJldHVybiBuKGEsZCxmLGgpO2lmKEthKGYpKXJldHVybiB0KGEsZCxmLGgpO3RoKGEsZil9cmV0dXJuXCJzdHJpbmdcIj09PXR5cGVvZiBmJiZcIlwiIT09Znx8XCJudW1iZXJcIj09PXR5cGVvZiBmPyhmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmKSxkLnJldHVybj1hLGE9ZCk6XG4oYyhhLGQpLGQ9eGgoZixhLm1vZGUsaCksZC5yZXR1cm49YSxhPWQpLGcoYSkpOmMoYSxkKX1yZXR1cm4gSn12YXIgQmg9dmgoITApLENoPXZoKCExKSxEaD17fSxFaD1VZihEaCksRmg9VWYoRGgpLEdoPVVmKERoKTtmdW5jdGlvbiBIaChhKXtpZihhPT09RGgpdGhyb3cgRXJyb3IocCgxNzQpKTtyZXR1cm4gYX1mdW5jdGlvbiBJaChhLGIpe0coR2gsYik7RyhGaCxhKTtHKEVoLERoKTthPWIubm9kZVR5cGU7c3dpdGNoKGEpe2Nhc2UgOTpjYXNlIDExOmI9KGI9Yi5kb2N1bWVudEVsZW1lbnQpP2IubmFtZXNwYWNlVVJJOmxiKG51bGwsXCJcIik7YnJlYWs7ZGVmYXVsdDphPTg9PT1hP2IucGFyZW50Tm9kZTpiLGI9YS5uYW1lc3BhY2VVUkl8fG51bGwsYT1hLnRhZ05hbWUsYj1sYihiLGEpfUUoRWgpO0coRWgsYil9ZnVuY3Rpb24gSmgoKXtFKEVoKTtFKEZoKTtFKEdoKX1cbmZ1bmN0aW9uIEtoKGEpe0hoKEdoLmN1cnJlbnQpO3ZhciBiPUhoKEVoLmN1cnJlbnQpO3ZhciBjPWxiKGIsYS50eXBlKTtiIT09YyYmKEcoRmgsYSksRyhFaCxjKSl9ZnVuY3Rpb24gTGgoYSl7RmguY3VycmVudD09PWEmJihFKEVoKSxFKEZoKSl9dmFyIE09VWYoMCk7XG5mdW5jdGlvbiBNaChhKXtmb3IodmFyIGI9YTtudWxsIT09Yjspe2lmKDEzPT09Yi50YWcpe3ZhciBjPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YyYmKGM9Yy5kZWh5ZHJhdGVkLG51bGw9PT1jfHxcIiQ/XCI9PT1jLmRhdGF8fFwiJCFcIj09PWMuZGF0YSkpcmV0dXJuIGJ9ZWxzZSBpZigxOT09PWIudGFnJiZ2b2lkIDAhPT1iLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPT0oYi5mbGFncyYxMjgpKXJldHVybiBifWVsc2UgaWYobnVsbCE9PWIuY2hpbGQpe2IuY2hpbGQucmV0dXJuPWI7Yj1iLmNoaWxkO2NvbnRpbnVlfWlmKGI9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWIuc2libGluZzspe2lmKG51bGw9PT1iLnJldHVybnx8Yi5yZXR1cm49PT1hKXJldHVybiBudWxsO2I9Yi5yZXR1cm59Yi5zaWJsaW5nLnJldHVybj1iLnJldHVybjtiPWIuc2libGluZ31yZXR1cm4gbnVsbH12YXIgTmg9W107XG5mdW5jdGlvbiBPaCgpe2Zvcih2YXIgYT0wO2E8TmgubGVuZ3RoO2ErKylOaFthXS5fd29ya0luUHJvZ3Jlc3NWZXJzaW9uUHJpbWFyeT1udWxsO05oLmxlbmd0aD0wfXZhciBQaD11YS5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLFFoPXVhLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLFJoPTAsTj1udWxsLE89bnVsbCxQPW51bGwsU2g9ITEsVGg9ITEsVWg9MCxWaD0wO2Z1bmN0aW9uIFEoKXt0aHJvdyBFcnJvcihwKDMyMSkpO31mdW5jdGlvbiBXaChhLGIpe2lmKG51bGw9PT1iKXJldHVybiExO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgmJmM8YS5sZW5ndGg7YysrKWlmKCFIZShhW2NdLGJbY10pKXJldHVybiExO3JldHVybiEwfVxuZnVuY3Rpb24gWGgoYSxiLGMsZCxlLGYpe1JoPWY7Tj1iO2IubWVtb2l6ZWRTdGF0ZT1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtiLmxhbmVzPTA7UGguY3VycmVudD1udWxsPT09YXx8bnVsbD09PWEubWVtb2l6ZWRTdGF0ZT9ZaDpaaDthPWMoZCxlKTtpZihUaCl7Zj0wO2Rve1RoPSExO1VoPTA7aWYoMjU8PWYpdGhyb3cgRXJyb3IocCgzMDEpKTtmKz0xO1A9Tz1udWxsO2IudXBkYXRlUXVldWU9bnVsbDtQaC5jdXJyZW50PSRoO2E9YyhkLGUpfXdoaWxlKFRoKX1QaC5jdXJyZW50PWFpO2I9bnVsbCE9PU8mJm51bGwhPT1PLm5leHQ7Umg9MDtQPU89Tj1udWxsO1NoPSExO2lmKGIpdGhyb3cgRXJyb3IocCgzMDApKTtyZXR1cm4gYX1mdW5jdGlvbiBiaSgpe3ZhciBhPTAhPT1VaDtVaD0wO3JldHVybiBhfVxuZnVuY3Rpb24gY2koKXt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpudWxsLGJhc2VTdGF0ZTpudWxsLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOm51bGwsbmV4dDpudWxsfTtudWxsPT09UD9OLm1lbW9pemVkU3RhdGU9UD1hOlA9UC5uZXh0PWE7cmV0dXJuIFB9ZnVuY3Rpb24gZGkoKXtpZihudWxsPT09Tyl7dmFyIGE9Ti5hbHRlcm5hdGU7YT1udWxsIT09YT9hLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGE9Ty5uZXh0O3ZhciBiPW51bGw9PT1QP04ubWVtb2l6ZWRTdGF0ZTpQLm5leHQ7aWYobnVsbCE9PWIpUD1iLE89YTtlbHNle2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzEwKSk7Tz1hO2E9e21lbW9pemVkU3RhdGU6Ty5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpPLmJhc2VTdGF0ZSxiYXNlUXVldWU6Ty5iYXNlUXVldWUscXVldWU6Ty5xdWV1ZSxuZXh0Om51bGx9O251bGw9PT1QP04ubWVtb2l6ZWRTdGF0ZT1QPWE6UD1QLm5leHQ9YX1yZXR1cm4gUH1cbmZ1bmN0aW9uIGVpKGEsYil7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpifVxuZnVuY3Rpb24gZmkoYSl7dmFyIGI9ZGkoKSxjPWIucXVldWU7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IocCgzMTEpKTtjLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgZD1PLGU9ZC5iYXNlUXVldWUsZj1jLnBlbmRpbmc7aWYobnVsbCE9PWYpe2lmKG51bGwhPT1lKXt2YXIgZz1lLm5leHQ7ZS5uZXh0PWYubmV4dDtmLm5leHQ9Z31kLmJhc2VRdWV1ZT1lPWY7Yy5wZW5kaW5nPW51bGx9aWYobnVsbCE9PWUpe2Y9ZS5uZXh0O2Q9ZC5iYXNlU3RhdGU7dmFyIGg9Zz1udWxsLGs9bnVsbCxsPWY7ZG97dmFyIG09bC5sYW5lO2lmKChSaCZtKT09PW0pbnVsbCE9PWsmJihrPWsubmV4dD17bGFuZTowLGFjdGlvbjpsLmFjdGlvbixoYXNFYWdlclN0YXRlOmwuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmwuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxkPWwuaGFzRWFnZXJTdGF0ZT9sLmVhZ2VyU3RhdGU6YShkLGwuYWN0aW9uKTtlbHNle3ZhciBxPXtsYW5lOm0sYWN0aW9uOmwuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6bC5oYXNFYWdlclN0YXRlLFxuZWFnZXJTdGF0ZTpsLmVhZ2VyU3RhdGUsbmV4dDpudWxsfTtudWxsPT09az8oaD1rPXEsZz1kKTprPWsubmV4dD1xO04ubGFuZXN8PW07aGh8PW19bD1sLm5leHR9d2hpbGUobnVsbCE9PWwmJmwhPT1mKTtudWxsPT09az9nPWQ6ay5uZXh0PWg7SGUoZCxiLm1lbW9pemVkU3RhdGUpfHwoVWc9ITApO2IubWVtb2l6ZWRTdGF0ZT1kO2IuYmFzZVN0YXRlPWc7Yi5iYXNlUXVldWU9aztjLmxhc3RSZW5kZXJlZFN0YXRlPWR9YT1jLmludGVybGVhdmVkO2lmKG51bGwhPT1hKXtlPWE7ZG8gZj1lLmxhbmUsTi5sYW5lc3w9ZixoaHw9ZixlPWUubmV4dDt3aGlsZShlIT09YSl9ZWxzZSBudWxsPT09ZSYmKGMubGFuZXM9MCk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIGdpKGEpe3ZhciBiPWRpKCksYz1iLnF1ZXVlO2lmKG51bGw9PT1jKXRocm93IEVycm9yKHAoMzExKSk7Yy5sYXN0UmVuZGVyZWRSZWR1Y2VyPWE7dmFyIGQ9Yy5kaXNwYXRjaCxlPWMucGVuZGluZyxmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZSl7Yy5wZW5kaW5nPW51bGw7dmFyIGc9ZT1lLm5leHQ7ZG8gZj1hKGYsZy5hY3Rpb24pLGc9Zy5uZXh0O3doaWxlKGchPT1lKTtIZShmLGIubWVtb2l6ZWRTdGF0ZSl8fChVZz0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7bnVsbD09PWIuYmFzZVF1ZXVlJiYoYi5iYXNlU3RhdGU9Zik7Yy5sYXN0UmVuZGVyZWRTdGF0ZT1mfXJldHVybltmLGRdfWZ1bmN0aW9uIGhpKCl7fVxuZnVuY3Rpb24gaWkoYSxiKXt2YXIgYz1OLGQ9ZGkoKSxlPWIoKSxmPSFIZShkLm1lbW9pemVkU3RhdGUsZSk7ZiYmKGQubWVtb2l6ZWRTdGF0ZT1lLFVnPSEwKTtkPWQucXVldWU7amkoa2kuYmluZChudWxsLGMsZCxhKSxbYV0pO2lmKGQuZ2V0U25hcHNob3QhPT1ifHxmfHxudWxsIT09UCYmUC5tZW1vaXplZFN0YXRlLnRhZyYxKXtjLmZsYWdzfD0yMDQ4O2xpKDksbWkuYmluZChudWxsLGMsZCxlLGIpLHZvaWQgMCxudWxsKTtpZihudWxsPT09Uil0aHJvdyBFcnJvcihwKDM0OSkpOzAhPT0oUmgmMzApfHxuaShjLGIsZSl9cmV0dXJuIGV9ZnVuY3Rpb24gbmkoYSxiLGMpe2EuZmxhZ3N8PTE2Mzg0O2E9e2dldFNuYXBzaG90OmIsdmFsdWU6Y307Yj1OLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE4udXBkYXRlUXVldWU9YixiLnN0b3Jlcz1bYV0pOihjPWIuc3RvcmVzLG51bGw9PT1jP2Iuc3RvcmVzPVthXTpjLnB1c2goYSkpfVxuZnVuY3Rpb24gbWkoYSxiLGMsZCl7Yi52YWx1ZT1jO2IuZ2V0U25hcHNob3Q9ZDtvaShiKSYmcGkoYSl9ZnVuY3Rpb24ga2koYSxiLGMpe3JldHVybiBjKGZ1bmN0aW9uKCl7b2koYikmJnBpKGEpfSl9ZnVuY3Rpb24gb2koYSl7dmFyIGI9YS5nZXRTbmFwc2hvdDthPWEudmFsdWU7dHJ5e3ZhciBjPWIoKTtyZXR1cm4hSGUoYSxjKX1jYXRjaChkKXtyZXR1cm4hMH19ZnVuY3Rpb24gcGkoYSl7dmFyIGI9WmcoYSwxKTtudWxsIT09YiYmbWgoYixhLDEsLTEpfVxuZnVuY3Rpb24gcWkoYSl7dmFyIGI9Y2koKTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmKGE9YSgpKTtiLm1lbW9pemVkU3RhdGU9Yi5iYXNlU3RhdGU9YTthPXtwZW5kaW5nOm51bGwsaW50ZXJsZWF2ZWQ6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplaSxsYXN0UmVuZGVyZWRTdGF0ZTphfTtiLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPXJpLmJpbmQobnVsbCxOLGEpO3JldHVybltiLm1lbW9pemVkU3RhdGUsYV19XG5mdW5jdGlvbiBsaShhLGIsYyxkKXthPXt0YWc6YSxjcmVhdGU6YixkZXN0cm95OmMsZGVwczpkLG5leHQ6bnVsbH07Yj1OLnVwZGF0ZVF1ZXVlO251bGw9PT1iPyhiPXtsYXN0RWZmZWN0Om51bGwsc3RvcmVzOm51bGx9LE4udXBkYXRlUXVldWU9YixiLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihjPWIubGFzdEVmZmVjdCxudWxsPT09Yz9iLmxhc3RFZmZlY3Q9YS5uZXh0PWE6KGQ9Yy5uZXh0LGMubmV4dD1hLGEubmV4dD1kLGIubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gc2koKXtyZXR1cm4gZGkoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHRpKGEsYixjLGQpe3ZhciBlPWNpKCk7Ti5mbGFnc3w9YTtlLm1lbW9pemVkU3RhdGU9bGkoMXxiLGMsdm9pZCAwLHZvaWQgMD09PWQ/bnVsbDpkKX1cbmZ1bmN0aW9uIHVpKGEsYixjLGQpe3ZhciBlPWRpKCk7ZD12b2lkIDA9PT1kP251bGw6ZDt2YXIgZj12b2lkIDA7aWYobnVsbCE9PU8pe3ZhciBnPU8ubWVtb2l6ZWRTdGF0ZTtmPWcuZGVzdHJveTtpZihudWxsIT09ZCYmV2goZCxnLmRlcHMpKXtlLm1lbW9pemVkU3RhdGU9bGkoYixjLGYsZCk7cmV0dXJufX1OLmZsYWdzfD1hO2UubWVtb2l6ZWRTdGF0ZT1saSgxfGIsYyxmLGQpfWZ1bmN0aW9uIHZpKGEsYil7cmV0dXJuIHRpKDgzOTA2NTYsOCxhLGIpfWZ1bmN0aW9uIGppKGEsYil7cmV0dXJuIHVpKDIwNDgsOCxhLGIpfWZ1bmN0aW9uIHdpKGEsYil7cmV0dXJuIHVpKDQsMixhLGIpfWZ1bmN0aW9uIHhpKGEsYil7cmV0dXJuIHVpKDQsNCxhLGIpfVxuZnVuY3Rpb24geWkoYSxiKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYilyZXR1cm4gYT1hKCksYihhKSxmdW5jdGlvbigpe2IobnVsbCl9O2lmKG51bGwhPT1iJiZ2b2lkIDAhPT1iKXJldHVybiBhPWEoKSxiLmN1cnJlbnQ9YSxmdW5jdGlvbigpe2IuY3VycmVudD1udWxsfX1mdW5jdGlvbiB6aShhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIHVpKDQsNCx5aS5iaW5kKG51bGwsYixhKSxjKX1mdW5jdGlvbiBBaSgpe31mdW5jdGlvbiBCaShhLGIpe3ZhciBjPWRpKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZXaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX1cbmZ1bmN0aW9uIENpKGEsYil7dmFyIGM9ZGkoKTtiPXZvaWQgMD09PWI/bnVsbDpiO3ZhciBkPWMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09ZCYmbnVsbCE9PWImJldoKGIsZFsxXSkpcmV0dXJuIGRbMF07YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfWZ1bmN0aW9uIERpKGEsYixjKXtpZigwPT09KFJoJjIxKSlyZXR1cm4gYS5iYXNlU3RhdGUmJihhLmJhc2VTdGF0ZT0hMSxVZz0hMCksYS5tZW1vaXplZFN0YXRlPWM7SGUoYyxiKXx8KGM9eWMoKSxOLmxhbmVzfD1jLGhofD1jLGEuYmFzZVN0YXRlPSEwKTtyZXR1cm4gYn1mdW5jdGlvbiBFaShhLGIpe3ZhciBjPUM7Qz0wIT09YyYmND5jP2M6NDthKCEwKTt2YXIgZD1RaC50cmFuc2l0aW9uO1FoLnRyYW5zaXRpb249e307dHJ5e2EoITEpLGIoKX1maW5hbGx5e0M9YyxRaC50cmFuc2l0aW9uPWR9fWZ1bmN0aW9uIEZpKCl7cmV0dXJuIGRpKCkubWVtb2l6ZWRTdGF0ZX1cbmZ1bmN0aW9uIEdpKGEsYixjKXt2YXIgZD1saChhKTtjPXtsYW5lOmQsYWN0aW9uOmMsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihIaShhKSlJaShiLGMpO2Vsc2UgaWYoYz1ZZyhhLGIsYyxkKSxudWxsIT09Yyl7dmFyIGU9TCgpO21oKGMsYSxkLGUpO0ppKGMsYixkKX19XG5mdW5jdGlvbiByaShhLGIsYyl7dmFyIGQ9bGgoYSksZT17bGFuZTpkLGFjdGlvbjpjLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoSGkoYSkpSWkoYixlKTtlbHNle3ZhciBmPWEuYWx0ZXJuYXRlO2lmKDA9PT1hLmxhbmVzJiYobnVsbD09PWZ8fDA9PT1mLmxhbmVzKSYmKGY9Yi5sYXN0UmVuZGVyZWRSZWR1Y2VyLG51bGwhPT1mKSl0cnl7dmFyIGc9Yi5sYXN0UmVuZGVyZWRTdGF0ZSxoPWYoZyxjKTtlLmhhc0VhZ2VyU3RhdGU9ITA7ZS5lYWdlclN0YXRlPWg7aWYoSGUoaCxnKSl7dmFyIGs9Yi5pbnRlcmxlYXZlZDtudWxsPT09az8oZS5uZXh0PWUsWGcoYikpOihlLm5leHQ9ay5uZXh0LGsubmV4dD1lKTtiLmludGVybGVhdmVkPWU7cmV0dXJufX1jYXRjaChsKXt9ZmluYWxseXt9Yz1ZZyhhLGIsZSxkKTtudWxsIT09YyYmKGU9TCgpLG1oKGMsYSxkLGUpLEppKGMsYixkKSl9fVxuZnVuY3Rpb24gSGkoYSl7dmFyIGI9YS5hbHRlcm5hdGU7cmV0dXJuIGE9PT1OfHxudWxsIT09YiYmYj09PU59ZnVuY3Rpb24gSWkoYSxiKXtUaD1TaD0hMDt2YXIgYz1hLnBlbmRpbmc7bnVsbD09PWM/Yi5uZXh0PWI6KGIubmV4dD1jLm5leHQsYy5uZXh0PWIpO2EucGVuZGluZz1ifWZ1bmN0aW9uIEppKGEsYixjKXtpZigwIT09KGMmNDE5NDI0MCkpe3ZhciBkPWIubGFuZXM7ZCY9YS5wZW5kaW5nTGFuZXM7Y3w9ZDtiLmxhbmVzPWM7Q2MoYSxjKX19XG52YXIgYWk9e3JlYWRDb250ZXh0OlZnLHVzZUNhbGxiYWNrOlEsdXNlQ29udGV4dDpRLHVzZUVmZmVjdDpRLHVzZUltcGVyYXRpdmVIYW5kbGU6USx1c2VJbnNlcnRpb25FZmZlY3Q6USx1c2VMYXlvdXRFZmZlY3Q6USx1c2VNZW1vOlEsdXNlUmVkdWNlcjpRLHVzZVJlZjpRLHVzZVN0YXRlOlEsdXNlRGVidWdWYWx1ZTpRLHVzZURlZmVycmVkVmFsdWU6USx1c2VUcmFuc2l0aW9uOlEsdXNlTXV0YWJsZVNvdXJjZTpRLHVzZVN5bmNFeHRlcm5hbFN0b3JlOlEsdXNlSWQ6USx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFloPXtyZWFkQ29udGV4dDpWZyx1c2VDYWxsYmFjazpmdW5jdGlvbihhLGIpe2NpKCkubWVtb2l6ZWRTdGF0ZT1bYSx2b2lkIDA9PT1iP251bGw6Yl07cmV0dXJuIGF9LHVzZUNvbnRleHQ6VmcsdXNlRWZmZWN0OnZpLHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiB0aSg0MTk0MzA4LFxuNCx5aS5iaW5kKG51bGwsYixhKSxjKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRpKDQxOTQzMDgsNCxhLGIpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGkoNCwyLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1jaSgpO2I9dm9pZCAwPT09Yj9udWxsOmI7YT1hKCk7Yy5tZW1vaXplZFN0YXRlPVthLGJdO3JldHVybiBhfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jaSgpO2I9dm9pZCAwIT09Yz9jKGIpOmI7ZC5tZW1vaXplZFN0YXRlPWQuYmFzZVN0YXRlPWI7YT17cGVuZGluZzpudWxsLGludGVybGVhdmVkOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTtkLnF1ZXVlPWE7YT1hLmRpc3BhdGNoPUdpLmJpbmQobnVsbCxOLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXt2YXIgYj1cbmNpKCk7YT17Y3VycmVudDphfTtyZXR1cm4gYi5tZW1vaXplZFN0YXRlPWF9LHVzZVN0YXRlOnFpLHVzZURlYnVnVmFsdWU6QWksdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gY2koKS5tZW1vaXplZFN0YXRlPWF9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1xaSghMSksYj1hWzBdO2E9RWkuYmluZChudWxsLGFbMV0pO2NpKCkubWVtb2l6ZWRTdGF0ZT1hO3JldHVybltiLGFdfSx1c2VNdXRhYmxlU291cmNlOmZ1bmN0aW9uKCl7fSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9TixlPWNpKCk7aWYoSSl7aWYodm9pZCAwPT09Yyl0aHJvdyBFcnJvcihwKDQwNykpO2M9YygpfWVsc2V7Yz1iKCk7aWYobnVsbD09PVIpdGhyb3cgRXJyb3IocCgzNDkpKTswIT09KFJoJjMwKXx8bmkoZCxiLGMpfWUubWVtb2l6ZWRTdGF0ZT1jO3ZhciBmPXt2YWx1ZTpjLGdldFNuYXBzaG90OmJ9O2UucXVldWU9Zjt2aShraS5iaW5kKG51bGwsZCxcbmYsYSksW2FdKTtkLmZsYWdzfD0yMDQ4O2xpKDksbWkuYmluZChudWxsLGQsZixjLGIpLHZvaWQgMCxudWxsKTtyZXR1cm4gY30sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgYT1jaSgpLGI9Ui5pZGVudGlmaWVyUHJlZml4O2lmKEkpe3ZhciBjPXNnO3ZhciBkPXJnO2M9KGQmfigxPDwzMi1vYyhkKS0xKSkudG9TdHJpbmcoMzIpK2M7Yj1cIjpcIitiK1wiUlwiK2M7Yz1VaCsrOzA8YyYmKGIrPVwiSFwiK2MudG9TdHJpbmcoMzIpKTtiKz1cIjpcIn1lbHNlIGM9VmgrKyxiPVwiOlwiK2IrXCJyXCIrYy50b1N0cmluZygzMikrXCI6XCI7cmV0dXJuIGEubWVtb2l6ZWRTdGF0ZT1ifSx1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6ITF9LFpoPXtyZWFkQ29udGV4dDpWZyx1c2VDYWxsYmFjazpCaSx1c2VDb250ZXh0OlZnLHVzZUVmZmVjdDpqaSx1c2VJbXBlcmF0aXZlSGFuZGxlOnppLHVzZUluc2VydGlvbkVmZmVjdDp3aSx1c2VMYXlvdXRFZmZlY3Q6eGksdXNlTWVtbzpDaSx1c2VSZWR1Y2VyOmZpLHVzZVJlZjpzaSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBmaShlaSl9LFxudXNlRGVidWdWYWx1ZTpBaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPWRpKCk7cmV0dXJuIERpKGIsTy5tZW1vaXplZFN0YXRlLGEpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9ZmkoZWkpWzBdLGI9ZGkoKS5tZW1vaXplZFN0YXRlO3JldHVyblthLGJdfSx1c2VNdXRhYmxlU291cmNlOmhpLHVzZVN5bmNFeHRlcm5hbFN0b3JlOmlpLHVzZUlkOkZpLHVuc3RhYmxlX2lzTmV3UmVjb25jaWxlcjohMX0sJGg9e3JlYWRDb250ZXh0OlZnLHVzZUNhbGxiYWNrOkJpLHVzZUNvbnRleHQ6VmcsdXNlRWZmZWN0OmppLHVzZUltcGVyYXRpdmVIYW5kbGU6emksdXNlSW5zZXJ0aW9uRWZmZWN0OndpLHVzZUxheW91dEVmZmVjdDp4aSx1c2VNZW1vOkNpLHVzZVJlZHVjZXI6Z2ksdXNlUmVmOnNpLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGdpKGVpKX0sdXNlRGVidWdWYWx1ZTpBaSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPWRpKCk7cmV0dXJuIG51bGw9PT1cbk8/Yi5tZW1vaXplZFN0YXRlPWE6RGkoYixPLm1lbW9pemVkU3RhdGUsYSl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT1naShlaSlbMF0sYj1kaSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW2EsYl19LHVzZU11dGFibGVTb3VyY2U6aGksdXNlU3luY0V4dGVybmFsU3RvcmU6aWksdXNlSWQ6RmksdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiExfTtmdW5jdGlvbiBLaShhLGIpe3RyeXt2YXIgYz1cIlwiLGQ9YjtkbyBjKz1QYShkKSxkPWQucmV0dXJuO3doaWxlKGQpO3ZhciBlPWN9Y2F0Y2goZil7ZT1cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2YubWVzc2FnZStcIlxcblwiK2Yuc3RhY2t9cmV0dXJue3ZhbHVlOmEsc291cmNlOmIsc3RhY2s6ZSxkaWdlc3Q6bnVsbH19ZnVuY3Rpb24gTGkoYSxiLGMpe3JldHVybnt2YWx1ZTphLHNvdXJjZTpudWxsLHN0YWNrOm51bGwhPWM/YzpudWxsLGRpZ2VzdDpudWxsIT1iP2I6bnVsbH19XG5mdW5jdGlvbiBNaShhLGIpe3RyeXtjb25zb2xlLmVycm9yKGIudmFsdWUpfWNhdGNoKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBjO30pfX12YXIgTmk9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtNYXA/V2Vha01hcDpNYXA7ZnVuY3Rpb24gT2koYSxiLGMpe2M9Y2goLTEsYyk7Yy50YWc9MztjLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH07dmFyIGQ9Yi52YWx1ZTtjLmNhbGxiYWNrPWZ1bmN0aW9uKCl7UGl8fChQaT0hMCxRaT1kKTtNaShhLGIpfTtyZXR1cm4gY31cbmZ1bmN0aW9uIFJpKGEsYixjKXtjPWNoKC0xLGMpO2MudGFnPTM7dmFyIGQ9YS50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZCl7dmFyIGU9Yi52YWx1ZTtjLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZChlKX07Yy5jYWxsYmFjaz1mdW5jdGlvbigpe01pKGEsYil9fXZhciBmPWEuc3RhdGVOb2RlO251bGwhPT1mJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgZi5jb21wb25lbnREaWRDYXRjaCYmKGMuY2FsbGJhY2s9ZnVuY3Rpb24oKXtNaShhLGIpO1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PVNpP1NpPW5ldyBTZXQoW3RoaXNdKTpTaS5hZGQodGhpcykpO3ZhciBjPWIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChiLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09Yz9jOlwiXCJ9KX0pO3JldHVybiBjfVxuZnVuY3Rpb24gVGkoYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO2lmKG51bGw9PT1kKXtkPWEucGluZ0NhY2hlPW5ldyBOaTt2YXIgZT1uZXcgU2V0O2Quc2V0KGIsZSl9ZWxzZSBlPWQuZ2V0KGIpLHZvaWQgMD09PWUmJihlPW5ldyBTZXQsZC5zZXQoYixlKSk7ZS5oYXMoYyl8fChlLmFkZChjKSxhPVVpLmJpbmQobnVsbCxhLGIsYyksYi50aGVuKGEsYSkpfWZ1bmN0aW9uIFZpKGEpe2Rve3ZhciBiO2lmKGI9MTM9PT1hLnRhZyliPWEubWVtb2l6ZWRTdGF0ZSxiPW51bGwhPT1iP251bGwhPT1iLmRlaHlkcmF0ZWQ/ITA6ITE6ITA7aWYoYilyZXR1cm4gYTthPWEucmV0dXJufXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFdpKGEsYixjLGQsZSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIGE9PT1iP2EuZmxhZ3N8PTY1NTM2OihhLmZsYWdzfD0xMjgsYy5mbGFnc3w9MTMxMDcyLGMuZmxhZ3MmPS01MjgwNSwxPT09Yy50YWcmJihudWxsPT09Yy5hbHRlcm5hdGU/Yy50YWc9MTc6KGI9Y2goLTEsMSksYi50YWc9MixkaChjLGIsMSkpKSxjLmxhbmVzfD0xKSxhO2EuZmxhZ3N8PTY1NTM2O2EubGFuZXM9ZTtyZXR1cm4gYX12YXIgWGk9dWEuUmVhY3RDdXJyZW50T3duZXIsVWc9ITE7ZnVuY3Rpb24gWWkoYSxiLGMsZCl7Yi5jaGlsZD1udWxsPT09YT9DaChiLG51bGwsYyxkKTpCaChiLGEuY2hpbGQsYyxkKX1cbmZ1bmN0aW9uIFppKGEsYixjLGQsZSl7Yz1jLnJlbmRlcjt2YXIgZj1iLnJlZjtUZyhiLGUpO2Q9WGgoYSxiLGMsZCxmLGUpO2M9YmkoKTtpZihudWxsIT09YSYmIVVnKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5mbGFncyY9LTIwNTMsYS5sYW5lcyY9fmUsJGkoYSxiLGUpO0kmJmMmJnZnKGIpO2IuZmxhZ3N8PTE7WWkoYSxiLGQsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBhaihhLGIsYyxkLGUpe2lmKG51bGw9PT1hKXt2YXIgZj1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGYmJiFiaihmKSYmdm9pZCAwPT09Zi5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9ZixjaihhLGIsZixkLGUpO2E9eWgoYy50eXBlLG51bGwsZCxiLGIubW9kZSxlKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9Zj1hLmNoaWxkO2lmKDA9PT0oYS5sYW5lcyZlKSl7dmFyIGc9Zi5tZW1vaXplZFByb3BzO2M9Yy5jb21wYXJlO2M9bnVsbCE9PWM/YzpJZTtpZihjKGcsZCkmJmEucmVmPT09Yi5yZWYpcmV0dXJuICRpKGEsYixlKX1iLmZsYWdzfD0xO2E9d2goZixkKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBjaihhLGIsYyxkLGUpe2lmKG51bGwhPT1hKXt2YXIgZj1hLm1lbW9pemVkUHJvcHM7aWYoSWUoZixkKSYmYS5yZWY9PT1iLnJlZilpZihVZz0hMSxiLnBlbmRpbmdQcm9wcz1kPWYsMCE9PShhLmxhbmVzJmUpKTAhPT0oYS5mbGFncyYxMzEwNzIpJiYoVWc9ITApO2Vsc2UgcmV0dXJuIGIubGFuZXM9YS5sYW5lcywkaShhLGIsZSl9cmV0dXJuIGRqKGEsYixjLGQsZSl9XG5mdW5jdGlvbiBlaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHMsZT1kLmNoaWxkcmVuLGY9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGw7aWYoXCJoaWRkZW5cIj09PWQubW9kZSlpZigwPT09KGIubW9kZSYxKSliLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOm51bGx9LEcoZmosZ2opLGdqfD1jO2Vsc2V7aWYoMD09PShjJjEwNzM3NDE4MjQpKXJldHVybiBhPW51bGwhPT1mP2YuYmFzZUxhbmVzfGM6YyxiLmxhbmVzPWIuY2hpbGRMYW5lcz0xMDczNzQxODI0LGIubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOmEsY2FjaGVQb29sOm51bGwsdHJhbnNpdGlvbnM6bnVsbH0sYi51cGRhdGVRdWV1ZT1udWxsLEcoZmosZ2opLGdqfD1hLG51bGw7Yi5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfTtkPW51bGwhPT1mP2YuYmFzZUxhbmVzOmM7Ryhmaixnaik7Z2p8PWR9ZWxzZSBudWxsIT09XG5mPyhkPWYuYmFzZUxhbmVzfGMsYi5tZW1vaXplZFN0YXRlPW51bGwpOmQ9YyxHKGZqLGdqKSxnanw9ZDtZaShhLGIsZSxjKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBoaihhLGIpe3ZhciBjPWIucmVmO2lmKG51bGw9PT1hJiZudWxsIT09Y3x8bnVsbCE9PWEmJmEucmVmIT09YyliLmZsYWdzfD01MTIsYi5mbGFnc3w9MjA5NzE1Mn1mdW5jdGlvbiBkaihhLGIsYyxkLGUpe3ZhciBmPVpmKGMpP1hmOkguY3VycmVudDtmPVlmKGIsZik7VGcoYixlKTtjPVhoKGEsYixjLGQsZixlKTtkPWJpKCk7aWYobnVsbCE9PWEmJiFVZylyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZmxhZ3MmPS0yMDUzLGEubGFuZXMmPX5lLCRpKGEsYixlKTtJJiZkJiZ2ZyhiKTtiLmZsYWdzfD0xO1lpKGEsYixjLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gaWooYSxiLGMsZCxlKXtpZihaZihjKSl7dmFyIGY9ITA7Y2coYil9ZWxzZSBmPSExO1RnKGIsZSk7aWYobnVsbD09PWIuc3RhdGVOb2RlKWpqKGEsYikscGgoYixjLGQpLHJoKGIsYyxkLGUpLGQ9ITA7ZWxzZSBpZihudWxsPT09YSl7dmFyIGc9Yi5zdGF0ZU5vZGUsaD1iLm1lbW9pemVkUHJvcHM7Zy5wcm9wcz1oO3ZhciBrPWcuY29udGV4dCxsPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBsJiZudWxsIT09bD9sPVZnKGwpOihsPVpmKGMpP1hmOkguY3VycmVudCxsPVlmKGIsbCkpO3ZhciBtPWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLHE9XCJmdW5jdGlvblwiPT09dHlwZW9mIG18fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlO3F8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHxcbihoIT09ZHx8ayE9PWwpJiZxaChiLGcsZCxsKTskZz0hMTt2YXIgcj1iLm1lbW9pemVkU3RhdGU7Zy5zdGF0ZT1yO2doKGIsZCxnLGUpO2s9Yi5tZW1vaXplZFN0YXRlO2ghPT1kfHxyIT09a3x8V2YuY3VycmVudHx8JGc/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBtJiYoa2goYixjLG0sZCksaz1iLm1lbW9pemVkU3RhdGUpLChoPSRnfHxvaChiLGMsaCxkLHIsayxsKSk/KHF8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudHx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxNb3VudCYmZy5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZnLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSk6XG4oXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkTW91bnQmJihiLmZsYWdzfD00MTk0MzA4KSxiLm1lbW9pemVkUHJvcHM9ZCxiLm1lbW9pemVkU3RhdGU9ayksZy5wcm9wcz1kLGcuc3RhdGU9ayxnLmNvbnRleHQ9bCxkPWgpOihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5jb21wb25lbnREaWRNb3VudCYmKGIuZmxhZ3N8PTQxOTQzMDgpLGQ9ITEpfWVsc2V7Zz1iLnN0YXRlTm9kZTtiaChhLGIpO2g9Yi5tZW1vaXplZFByb3BzO2w9Yi50eXBlPT09Yi5lbGVtZW50VHlwZT9oOkxnKGIudHlwZSxoKTtnLnByb3BzPWw7cT1iLnBlbmRpbmdQcm9wcztyPWcuY29udGV4dDtrPWMuY29udGV4dFR5cGU7XCJvYmplY3RcIj09PXR5cGVvZiBrJiZudWxsIT09az9rPVZnKGspOihrPVpmKGMpP1hmOkguY3VycmVudCxrPVlmKGIsaykpO3ZhciB5PWMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzOyhtPVwiZnVuY3Rpb25cIj09PXR5cGVvZiB5fHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSl8fFxuXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChoIT09cXx8ciE9PWspJiZxaChiLGcsZCxrKTskZz0hMTtyPWIubWVtb2l6ZWRTdGF0ZTtnLnN0YXRlPXI7Z2goYixkLGcsZSk7dmFyIG49Yi5tZW1vaXplZFN0YXRlO2ghPT1xfHxyIT09bnx8V2YuY3VycmVudHx8JGc/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiB5JiYoa2goYixjLHksZCksbj1iLm1lbW9pemVkU3RhdGUpLChsPSRnfHxvaChiLGMsbCxkLHIsbixrKXx8ITEpPyhtfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudFdpbGxVcGRhdGUmJmcuY29tcG9uZW50V2lsbFVwZGF0ZShkLG4sayksXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlxuZy5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZShkLG4saykpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZSYmKGIuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBnLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYoYi5mbGFnc3w9MTAyNCkpOihcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5jb21wb25lbnREaWRVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgZy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZmxhZ3N8PTEwMjQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1uKSxnLnByb3BzPWQsZy5zdGF0ZT1uLGcuY29udGV4dD1rLGQ9bCk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBnLmNvbXBvbmVudERpZFVwZGF0ZXx8aD09PWEubWVtb2l6ZWRQcm9wcyYmcj09PVxuYS5tZW1vaXplZFN0YXRlfHwoYi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT09dHlwZW9mIGcuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGg9PT1hLm1lbW9pemVkUHJvcHMmJnI9PT1hLm1lbW9pemVkU3RhdGV8fChiLmZsYWdzfD0xMDI0KSxkPSExKX1yZXR1cm4ga2ooYSxiLGMsZCxmLGUpfVxuZnVuY3Rpb24ga2ooYSxiLGMsZCxlLGYpe2hqKGEsYik7dmFyIGc9MCE9PShiLmZsYWdzJjEyOCk7aWYoIWQmJiFnKXJldHVybiBlJiZkZyhiLGMsITEpLCRpKGEsYixmKTtkPWIuc3RhdGVOb2RlO1hpLmN1cnJlbnQ9Yjt2YXIgaD1nJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYy5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDpkLnJlbmRlcigpO2IuZmxhZ3N8PTE7bnVsbCE9PWEmJmc/KGIuY2hpbGQ9QmgoYixhLmNoaWxkLG51bGwsZiksYi5jaGlsZD1CaChiLG51bGwsaCxmKSk6WWkoYSxiLGgsZik7Yi5tZW1vaXplZFN0YXRlPWQuc3RhdGU7ZSYmZGcoYixjLCEwKTtyZXR1cm4gYi5jaGlsZH1mdW5jdGlvbiBsaihhKXt2YXIgYj1hLnN0YXRlTm9kZTtiLnBlbmRpbmdDb250ZXh0P2FnKGEsYi5wZW5kaW5nQ29udGV4dCxiLnBlbmRpbmdDb250ZXh0IT09Yi5jb250ZXh0KTpiLmNvbnRleHQmJmFnKGEsYi5jb250ZXh0LCExKTtJaChhLGIuY29udGFpbmVySW5mbyl9XG5mdW5jdGlvbiBtaihhLGIsYyxkLGUpe0lnKCk7SmcoZSk7Yi5mbGFnc3w9MjU2O1lpKGEsYixjLGQpO3JldHVybiBiLmNoaWxkfXZhciBuaj17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjB9O2Z1bmN0aW9uIG9qKGEpe3JldHVybntiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bnVsbCx0cmFuc2l0aW9uczpudWxsfX1cbmZ1bmN0aW9uIHBqKGEsYixjKXt2YXIgZD1iLnBlbmRpbmdQcm9wcyxlPU0uY3VycmVudCxmPSExLGc9MCE9PShiLmZsYWdzJjEyOCksaDsoaD1nKXx8KGg9bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGU/ITE6MCE9PShlJjIpKTtpZihoKWY9ITAsYi5mbGFncyY9LTEyOTtlbHNlIGlmKG51bGw9PT1hfHxudWxsIT09YS5tZW1vaXplZFN0YXRlKWV8PTE7RyhNLGUmMSk7aWYobnVsbD09PWEpe0VnKGIpO2E9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiYoYT1hLmRlaHlkcmF0ZWQsbnVsbCE9PWEpKXJldHVybiAwPT09KGIubW9kZSYxKT9iLmxhbmVzPTE6XCIkIVwiPT09YS5kYXRhP2IubGFuZXM9ODpiLmxhbmVzPTEwNzM3NDE4MjQsbnVsbDtnPWQuY2hpbGRyZW47YT1kLmZhbGxiYWNrO3JldHVybiBmPyhkPWIubW9kZSxmPWIuY2hpbGQsZz17bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOmd9LDA9PT0oZCYxKSYmbnVsbCE9PWY/KGYuY2hpbGRMYW5lcz0wLGYucGVuZGluZ1Byb3BzPVxuZyk6Zj1xaihnLGQsMCxudWxsKSxhPUFoKGEsZCxjLG51bGwpLGYucmV0dXJuPWIsYS5yZXR1cm49YixmLnNpYmxpbmc9YSxiLmNoaWxkPWYsYi5jaGlsZC5tZW1vaXplZFN0YXRlPW9qKGMpLGIubWVtb2l6ZWRTdGF0ZT1uaixhKTpyaihiLGcpfWU9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1lJiYoaD1lLmRlaHlkcmF0ZWQsbnVsbCE9PWgpKXJldHVybiBzaihhLGIsZyxkLGgsZSxjKTtpZihmKXtmPWQuZmFsbGJhY2s7Zz1iLm1vZGU7ZT1hLmNoaWxkO2g9ZS5zaWJsaW5nO3ZhciBrPXttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn07MD09PShnJjEpJiZiLmNoaWxkIT09ZT8oZD1iLmNoaWxkLGQuY2hpbGRMYW5lcz0wLGQucGVuZGluZ1Byb3BzPWssYi5kZWxldGlvbnM9bnVsbCk6KGQ9d2goZSxrKSxkLnN1YnRyZWVGbGFncz1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCk7bnVsbCE9PWg/Zj13aChoLGYpOihmPUFoKGYsZyxjLG51bGwpLGYuZmxhZ3N8PTIpO2YucmV0dXJuPVxuYjtkLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDtkPWY7Zj1iLmNoaWxkO2c9YS5jaGlsZC5tZW1vaXplZFN0YXRlO2c9bnVsbD09PWc/b2ooYyk6e2Jhc2VMYW5lczpnLmJhc2VMYW5lc3xjLGNhY2hlUG9vbDpudWxsLHRyYW5zaXRpb25zOmcudHJhbnNpdGlvbnN9O2YubWVtb2l6ZWRTdGF0ZT1nO2YuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMmfmM7Yi5tZW1vaXplZFN0YXRlPW5qO3JldHVybiBkfWY9YS5jaGlsZDthPWYuc2libGluZztkPXdoKGYse21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46ZC5jaGlsZHJlbn0pOzA9PT0oYi5tb2RlJjEpJiYoZC5sYW5lcz1jKTtkLnJldHVybj1iO2Quc2libGluZz1udWxsO251bGwhPT1hJiYoYz1iLmRlbGV0aW9ucyxudWxsPT09Yz8oYi5kZWxldGlvbnM9W2FdLGIuZmxhZ3N8PTE2KTpjLnB1c2goYSkpO2IuY2hpbGQ9ZDtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gZH1cbmZ1bmN0aW9uIHJqKGEsYil7Yj1xaih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpifSxhLm1vZGUsMCxudWxsKTtiLnJldHVybj1hO3JldHVybiBhLmNoaWxkPWJ9ZnVuY3Rpb24gdGooYSxiLGMsZCl7bnVsbCE9PWQmJkpnKGQpO0JoKGIsYS5jaGlsZCxudWxsLGMpO2E9cmooYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbik7YS5mbGFnc3w9MjtiLm1lbW9pemVkU3RhdGU9bnVsbDtyZXR1cm4gYX1cbmZ1bmN0aW9uIHNqKGEsYixjLGQsZSxmLGcpe2lmKGMpe2lmKGIuZmxhZ3MmMjU2KXJldHVybiBiLmZsYWdzJj0tMjU3LGQ9TGkoRXJyb3IocCg0MjIpKSksdGooYSxiLGcsZCk7aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gYi5jaGlsZD1hLmNoaWxkLGIuZmxhZ3N8PTEyOCxudWxsO2Y9ZC5mYWxsYmFjaztlPWIubW9kZTtkPXFqKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOmQuY2hpbGRyZW59LGUsMCxudWxsKTtmPUFoKGYsZSxnLG51bGwpO2YuZmxhZ3N8PTI7ZC5yZXR1cm49YjtmLnJldHVybj1iO2Quc2libGluZz1mO2IuY2hpbGQ9ZDswIT09KGIubW9kZSYxKSYmQmgoYixhLmNoaWxkLG51bGwsZyk7Yi5jaGlsZC5tZW1vaXplZFN0YXRlPW9qKGcpO2IubWVtb2l6ZWRTdGF0ZT1uajtyZXR1cm4gZn1pZigwPT09KGIubW9kZSYxKSlyZXR1cm4gdGooYSxiLGcsbnVsbCk7aWYoXCIkIVwiPT09ZS5kYXRhKXtkPWUubmV4dFNpYmxpbmcmJmUubmV4dFNpYmxpbmcuZGF0YXNldDtcbmlmKGQpdmFyIGg9ZC5kZ3N0O2Q9aDtmPUVycm9yKHAoNDE5KSk7ZD1MaShmLGQsdm9pZCAwKTtyZXR1cm4gdGooYSxiLGcsZCl9aD0wIT09KGcmYS5jaGlsZExhbmVzKTtpZihVZ3x8aCl7ZD1SO2lmKG51bGwhPT1kKXtzd2l0Y2goZyYtZyl7Y2FzZSA0OmU9MjticmVhaztjYXNlIDE2OmU9ODticmVhaztjYXNlIDY0OmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmNhc2UgNjcxMDg4NjQ6ZT0zMjticmVhaztjYXNlIDUzNjg3MDkxMjplPTI2ODQzNTQ1NjticmVhaztkZWZhdWx0OmU9MH1lPTAhPT0oZSYoZC5zdXNwZW5kZWRMYW5lc3xnKSk/MDplO1xuMCE9PWUmJmUhPT1mLnJldHJ5TGFuZSYmKGYucmV0cnlMYW5lPWUsWmcoYSxlKSxtaChkLGEsZSwtMSkpfXVqKCk7ZD1MaShFcnJvcihwKDQyMSkpKTtyZXR1cm4gdGooYSxiLGcsZCl9aWYoXCIkP1wiPT09ZS5kYXRhKXJldHVybiBiLmZsYWdzfD0xMjgsYi5jaGlsZD1hLmNoaWxkLGI9dmouYmluZChudWxsLGEpLGUuX3JlYWN0UmV0cnk9YixudWxsO2E9Zi50cmVlQ29udGV4dDt5Zz1MZihlLm5leHRTaWJsaW5nKTt4Zz1iO0k9ITA7emc9bnVsbDtudWxsIT09YSYmKG9nW3BnKytdPXJnLG9nW3BnKytdPXNnLG9nW3BnKytdPXFnLHJnPWEuaWQsc2c9YS5vdmVyZmxvdyxxZz1iKTtiPXJqKGIsZC5jaGlsZHJlbik7Yi5mbGFnc3w9NDA5NjtyZXR1cm4gYn1mdW5jdGlvbiB3aihhLGIsYyl7YS5sYW5lc3w9Yjt2YXIgZD1hLmFsdGVybmF0ZTtudWxsIT09ZCYmKGQubGFuZXN8PWIpO1NnKGEucmV0dXJuLGIsYyl9XG5mdW5jdGlvbiB4aihhLGIsYyxkLGUpe3ZhciBmPWEubWVtb2l6ZWRTdGF0ZTtudWxsPT09Zj9hLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOmIscmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpkLHRhaWw6Yyx0YWlsTW9kZTplfTooZi5pc0JhY2t3YXJkcz1iLGYucmVuZGVyaW5nPW51bGwsZi5yZW5kZXJpbmdTdGFydFRpbWU9MCxmLmxhc3Q9ZCxmLnRhaWw9YyxmLnRhaWxNb2RlPWUpfVxuZnVuY3Rpb24geWooYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtZaShhLGIsZC5jaGlsZHJlbixjKTtkPU0uY3VycmVudDtpZigwIT09KGQmMikpZD1kJjF8MixiLmZsYWdzfD0xMjg7ZWxzZXtpZihudWxsIT09YSYmMCE9PShhLmZsYWdzJjEyOCkpYTpmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7aWYoMTM9PT1hLnRhZyludWxsIT09YS5tZW1vaXplZFN0YXRlJiZ3aihhLGMsYik7ZWxzZSBpZigxOT09PWEudGFnKXdqKGEsYyxiKTtlbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1iKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfWQmPTF9RyhNLGQpO2lmKDA9PT0oYi5tb2RlJjEpKWIubWVtb2l6ZWRTdGF0ZT1cbm51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWE9Yy5hbHRlcm5hdGUsbnVsbCE9PWEmJm51bGw9PT1NaChhKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO3hqKGIsITEsZSxjLGYpO2JyZWFrO2Nhc2UgXCJiYWNrd2FyZHNcIjpjPW51bGw7ZT1iLmNoaWxkO2ZvcihiLmNoaWxkPW51bGw7bnVsbCE9PWU7KXthPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1hJiZudWxsPT09TWgoYSkpe2IuY2hpbGQ9ZTticmVha31hPWUuc2libGluZztlLnNpYmxpbmc9YztjPWU7ZT1hfXhqKGIsITAsYyxudWxsLGYpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOnhqKGIsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDpiLm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gYi5jaGlsZH1cbmZ1bmN0aW9uIGpqKGEsYil7MD09PShiLm1vZGUmMSkmJm51bGwhPT1hJiYoYS5hbHRlcm5hdGU9bnVsbCxiLmFsdGVybmF0ZT1udWxsLGIuZmxhZ3N8PTIpfWZ1bmN0aW9uICRpKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtoaHw9Yi5sYW5lcztpZigwPT09KGMmYi5jaGlsZExhbmVzKSlyZXR1cm4gbnVsbDtpZihudWxsIT09YSYmYi5jaGlsZCE9PWEuY2hpbGQpdGhyb3cgRXJyb3IocCgxNTMpKTtpZihudWxsIT09Yi5jaGlsZCl7YT1iLmNoaWxkO2M9d2goYSxhLnBlbmRpbmdQcm9wcyk7Yi5jaGlsZD1jO2ZvcihjLnJldHVybj1iO251bGwhPT1hLnNpYmxpbmc7KWE9YS5zaWJsaW5nLGM9Yy5zaWJsaW5nPXdoKGEsYS5wZW5kaW5nUHJvcHMpLGMucmV0dXJuPWI7Yy5zaWJsaW5nPW51bGx9cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiB6aihhLGIsYyl7c3dpdGNoKGIudGFnKXtjYXNlIDM6bGooYik7SWcoKTticmVhaztjYXNlIDU6S2goYik7YnJlYWs7Y2FzZSAxOlpmKGIudHlwZSkmJmNnKGIpO2JyZWFrO2Nhc2UgNDpJaChiLGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO2JyZWFrO2Nhc2UgMTA6dmFyIGQ9Yi50eXBlLl9jb250ZXh0LGU9Yi5tZW1vaXplZFByb3BzLnZhbHVlO0coTWcsZC5fY3VycmVudFZhbHVlKTtkLl9jdXJyZW50VmFsdWU9ZTticmVhaztjYXNlIDEzOmQ9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kKXtpZihudWxsIT09ZC5kZWh5ZHJhdGVkKXJldHVybiBHKE0sTS5jdXJyZW50JjEpLGIuZmxhZ3N8PTEyOCxudWxsO2lmKDAhPT0oYyZiLmNoaWxkLmNoaWxkTGFuZXMpKXJldHVybiBwaihhLGIsYyk7RyhNLE0uY3VycmVudCYxKTthPSRpKGEsYixjKTtyZXR1cm4gbnVsbCE9PWE/YS5zaWJsaW5nOm51bGx9RyhNLE0uY3VycmVudCYxKTticmVhaztjYXNlIDE5OmQ9MCE9PShjJlxuYi5jaGlsZExhbmVzKTtpZigwIT09KGEuZmxhZ3MmMTI4KSl7aWYoZClyZXR1cm4geWooYSxiLGMpO2IuZmxhZ3N8PTEyOH1lPWIubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGUucmVuZGVyaW5nPW51bGwsZS50YWlsPW51bGwsZS5sYXN0RWZmZWN0PW51bGwpO0coTSxNLmN1cnJlbnQpO2lmKGQpYnJlYWs7ZWxzZSByZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGIubGFuZXM9MCxlaihhLGIsYyl9cmV0dXJuICRpKGEsYixjKX12YXIgQWosQmosQ2osRGo7XG5Baj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09Yy50YWcmJm51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YilicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YilyZXR1cm47Yz1jLnJldHVybn1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX07Qmo9ZnVuY3Rpb24oKXt9O1xuQ2o9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5tZW1vaXplZFByb3BzO2lmKGUhPT1kKXthPWIuc3RhdGVOb2RlO0hoKEVoLmN1cnJlbnQpO3ZhciBmPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmU9WWEoYSxlKTtkPVlhKGEsZCk7Zj1bXTticmVhaztjYXNlIFwic2VsZWN0XCI6ZT1BKHt9LGUse3ZhbHVlOnZvaWQgMH0pO2Q9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtmPVtdO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmU9Z2IoYSxlKTtkPWdiKGEsZCk7Zj1bXTticmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLm9uQ2xpY2smJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLm9uQ2xpY2smJihhLm9uY2xpY2s9QmYpfXViKGMsZCk7dmFyIGc7Yz1udWxsO2ZvcihsIGluIGUpaWYoIWQuaGFzT3duUHJvcGVydHkobCkmJmUuaGFzT3duUHJvcGVydHkobCkmJm51bGwhPWVbbF0paWYoXCJzdHlsZVwiPT09bCl7dmFyIGg9ZVtsXTtmb3IoZyBpbiBoKWguaGFzT3duUHJvcGVydHkoZykmJlxuKGN8fChjPXt9KSxjW2ddPVwiXCIpfWVsc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIhPT1sJiZcImNoaWxkcmVuXCIhPT1sJiZcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09bCYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWwmJlwiYXV0b0ZvY3VzXCIhPT1sJiYoZWEuaGFzT3duUHJvcGVydHkobCk/Znx8KGY9W10pOihmPWZ8fFtdKS5wdXNoKGwsbnVsbCkpO2ZvcihsIGluIGQpe3ZhciBrPWRbbF07aD1udWxsIT1lP2VbbF06dm9pZCAwO2lmKGQuaGFzT3duUHJvcGVydHkobCkmJmshPT1oJiYobnVsbCE9a3x8bnVsbCE9aCkpaWYoXCJzdHlsZVwiPT09bClpZihoKXtmb3IoZyBpbiBoKSFoLmhhc093blByb3BlcnR5KGcpfHxrJiZrLmhhc093blByb3BlcnR5KGcpfHwoY3x8KGM9e30pLGNbZ109XCJcIik7Zm9yKGcgaW4gaylrLmhhc093blByb3BlcnR5KGcpJiZoW2ddIT09a1tnXSYmKGN8fChjPXt9KSxjW2ddPWtbZ10pfWVsc2UgY3x8KGZ8fChmPVtdKSxmLnB1c2gobCxcbmMpKSxjPWs7ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIj09PWw/KGs9az9rLl9faHRtbDp2b2lkIDAsaD1oP2guX19odG1sOnZvaWQgMCxudWxsIT1rJiZoIT09ayYmKGY9Znx8W10pLnB1c2gobCxrKSk6XCJjaGlsZHJlblwiPT09bD9cInN0cmluZ1wiIT09dHlwZW9mIGsmJlwibnVtYmVyXCIhPT10eXBlb2Yga3x8KGY9Znx8W10pLnB1c2gobCxcIlwiK2spOlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1sJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09bCYmKGVhLmhhc093blByb3BlcnR5KGwpPyhudWxsIT1rJiZcIm9uU2Nyb2xsXCI9PT1sJiZEKFwic2Nyb2xsXCIsYSksZnx8aD09PWt8fChmPVtdKSk6KGY9Znx8W10pLnB1c2gobCxrKSl9YyYmKGY9Znx8W10pLnB1c2goXCJzdHlsZVwiLGMpO3ZhciBsPWY7aWYoYi51cGRhdGVRdWV1ZT1sKWIuZmxhZ3N8PTR9fTtEaj1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmKGIuZmxhZ3N8PTQpfTtcbmZ1bmN0aW9uIEVqKGEsYil7aWYoIUkpc3dpdGNoKGEudGFpbE1vZGUpe2Nhc2UgXCJoaWRkZW5cIjpiPWEudGFpbDtmb3IodmFyIGM9bnVsbDtudWxsIT09YjspbnVsbCE9PWIuYWx0ZXJuYXRlJiYoYz1iKSxiPWIuc2libGluZztudWxsPT09Yz9hLnRhaWw9bnVsbDpjLnNpYmxpbmc9bnVsbDticmVhaztjYXNlIFwiY29sbGFwc2VkXCI6Yz1hLnRhaWw7Zm9yKHZhciBkPW51bGw7bnVsbCE9PWM7KW51bGwhPT1jLmFsdGVybmF0ZSYmKGQ9YyksYz1jLnNpYmxpbmc7bnVsbD09PWQ/Ynx8bnVsbD09PWEudGFpbD9hLnRhaWw9bnVsbDphLnRhaWwuc2libGluZz1udWxsOmQuc2libGluZz1udWxsfX1cbmZ1bmN0aW9uIFMoYSl7dmFyIGI9bnVsbCE9PWEuYWx0ZXJuYXRlJiZhLmFsdGVybmF0ZS5jaGlsZD09PWEuY2hpbGQsYz0wLGQ9MDtpZihiKWZvcih2YXIgZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyYxNDY4MDA2NCxkfD1lLmZsYWdzJjE0NjgwMDY0LGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7ZWxzZSBmb3IoZT1hLmNoaWxkO251bGwhPT1lOyljfD1lLmxhbmVzfGUuY2hpbGRMYW5lcyxkfD1lLnN1YnRyZWVGbGFncyxkfD1lLmZsYWdzLGUucmV0dXJuPWEsZT1lLnNpYmxpbmc7YS5zdWJ0cmVlRmxhZ3N8PWQ7YS5jaGlsZExhbmVzPWM7cmV0dXJuIGJ9XG5mdW5jdGlvbiBGaihhLGIsYyl7dmFyIGQ9Yi5wZW5kaW5nUHJvcHM7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDI6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gUyhiKSxudWxsO2Nhc2UgMTpyZXR1cm4gWmYoYi50eXBlKSYmJGYoKSxTKGIpLG51bGw7Y2FzZSAzOmQ9Yi5zdGF0ZU5vZGU7SmgoKTtFKFdmKTtFKEgpO09oKCk7ZC5wZW5kaW5nQ29udGV4dCYmKGQuY29udGV4dD1kLnBlbmRpbmdDb250ZXh0LGQucGVuZGluZ0NvbnRleHQ9bnVsbCk7aWYobnVsbD09PWF8fG51bGw9PT1hLmNoaWxkKUdnKGIpP2IuZmxhZ3N8PTQ6bnVsbD09PWF8fGEubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PT0oYi5mbGFncyYyNTYpfHwoYi5mbGFnc3w9MTAyNCxudWxsIT09emcmJihHaih6Zyksemc9bnVsbCkpO0JqKGEsYik7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDU6TGgoYik7dmFyIGU9SGgoR2guY3VycmVudCk7XG5jPWIudHlwZTtpZihudWxsIT09YSYmbnVsbCE9Yi5zdGF0ZU5vZGUpQ2ooYSxiLGMsZCxlKSxhLnJlZiE9PWIucmVmJiYoYi5mbGFnc3w9NTEyLGIuZmxhZ3N8PTIwOTcxNTIpO2Vsc2V7aWYoIWQpe2lmKG51bGw9PT1iLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihwKDE2NikpO1MoYik7cmV0dXJuIG51bGx9YT1IaChFaC5jdXJyZW50KTtpZihHZyhiKSl7ZD1iLnN0YXRlTm9kZTtjPWIudHlwZTt2YXIgZj1iLm1lbW9pemVkUHJvcHM7ZFtPZl09YjtkW1BmXT1mO2E9MCE9PShiLm1vZGUmMSk7c3dpdGNoKGMpe2Nhc2UgXCJkaWFsb2dcIjpEKFwiY2FuY2VsXCIsZCk7RChcImNsb3NlXCIsZCk7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGQpO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihlPTA7ZTxsZi5sZW5ndGg7ZSsrKUQobGZbZV0sZCk7YnJlYWs7Y2FzZSBcInNvdXJjZVwiOkQoXCJlcnJvclwiLGQpO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuZCk7RChcImxvYWRcIixkKTticmVhaztjYXNlIFwiZGV0YWlsc1wiOkQoXCJ0b2dnbGVcIixkKTticmVhaztjYXNlIFwiaW5wdXRcIjpaYShkLGYpO0QoXCJpbnZhbGlkXCIsZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmQuX3dyYXBwZXJTdGF0ZT17d2FzTXVsdGlwbGU6ISFmLm11bHRpcGxlfTtEKFwiaW52YWxpZFwiLGQpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGQsZiksRChcImludmFsaWRcIixkKX11YihjLGYpO2U9bnVsbDtmb3IodmFyIGcgaW4gZilpZihmLmhhc093blByb3BlcnR5KGcpKXt2YXIgaD1mW2ddO1wiY2hpbGRyZW5cIj09PWc/XCJzdHJpbmdcIj09PXR5cGVvZiBoP2QudGV4dENvbnRlbnQhPT1oJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxoLGEpLGU9W1wiY2hpbGRyZW5cIixoXSk6XCJudW1iZXJcIj09PXR5cGVvZiBoJiZkLnRleHRDb250ZW50IT09XCJcIitoJiYoITAhPT1mLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZyYmQWYoZC50ZXh0Q29udGVudCxcbmgsYSksZT1bXCJjaGlsZHJlblwiLFwiXCIraF0pOmVhLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1oJiZcIm9uU2Nyb2xsXCI9PT1nJiZEKFwic2Nyb2xsXCIsZCl9c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOlZhKGQpO2RiKGQsZiwhMCk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6VmEoZCk7amIoZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJvcHRpb25cIjpicmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLm9uQ2xpY2smJihkLm9uY2xpY2s9QmYpfWQ9ZTtiLnVwZGF0ZVF1ZXVlPWQ7bnVsbCE9PWQmJihiLmZsYWdzfD00KX1lbHNle2c9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hJiYoYT1rYihjKSk7XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1hP1wic2NyaXB0XCI9PT1jPyhhPWcuY3JlYXRlRWxlbWVudChcImRpdlwiKSxhLmlubmVySFRNTD1cIjxzY3JpcHQ+XFx4M2Mvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpKTpcblwic3RyaW5nXCI9PT10eXBlb2YgZC5pcz9hPWcuY3JlYXRlRWxlbWVudChjLHtpczpkLmlzfSk6KGE9Zy5jcmVhdGVFbGVtZW50KGMpLFwic2VsZWN0XCI9PT1jJiYoZz1hLGQubXVsdGlwbGU/Zy5tdWx0aXBsZT0hMDpkLnNpemUmJihnLnNpemU9ZC5zaXplKSkpOmE9Zy5jcmVhdGVFbGVtZW50TlMoYSxjKTthW09mXT1iO2FbUGZdPWQ7QWooYSxiLCExLCExKTtiLnN0YXRlTm9kZT1hO2E6e2c9dmIoYyxkKTtzd2l0Y2goYyl7Y2FzZSBcImRpYWxvZ1wiOkQoXCJjYW5jZWxcIixhKTtEKFwiY2xvc2VcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpEKFwibG9hZFwiLGEpO2U9ZDticmVhaztjYXNlIFwidmlkZW9cIjpjYXNlIFwiYXVkaW9cIjpmb3IoZT0wO2U8bGYubGVuZ3RoO2UrKylEKGxmW2VdLGEpO2U9ZDticmVhaztjYXNlIFwic291cmNlXCI6RChcImVycm9yXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbWdcIjpjYXNlIFwiaW1hZ2VcIjpjYXNlIFwibGlua1wiOkQoXCJlcnJvclwiLFxuYSk7RChcImxvYWRcIixhKTtlPWQ7YnJlYWs7Y2FzZSBcImRldGFpbHNcIjpEKFwidG9nZ2xlXCIsYSk7ZT1kO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOlphKGEsZCk7ZT1ZYShhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7Y2FzZSBcIm9wdGlvblwiOmU9ZDticmVhaztjYXNlIFwic2VsZWN0XCI6YS5fd3JhcHBlclN0YXRlPXt3YXNNdWx0aXBsZTohIWQubXVsdGlwbGV9O2U9QSh7fSxkLHt2YWx1ZTp2b2lkIDB9KTtEKFwiaW52YWxpZFwiLGEpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmhiKGEsZCk7ZT1nYihhLGQpO0QoXCJpbnZhbGlkXCIsYSk7YnJlYWs7ZGVmYXVsdDplPWR9dWIoYyxlKTtoPWU7Zm9yKGYgaW4gaClpZihoLmhhc093blByb3BlcnR5KGYpKXt2YXIgaz1oW2ZdO1wic3R5bGVcIj09PWY/c2IoYSxrKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1mPyhrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWsmJm5iKGEsaykpOlwiY2hpbGRyZW5cIj09PWY/XCJzdHJpbmdcIj09PXR5cGVvZiBrPyhcInRleHRhcmVhXCIhPT1cbmN8fFwiXCIhPT1rKSYmb2IoYSxrKTpcIm51bWJlclwiPT09dHlwZW9mIGsmJm9iKGEsXCJcIitrKTpcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiIT09ZiYmXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIiE9PWYmJlwiYXV0b0ZvY3VzXCIhPT1mJiYoZWEuaGFzT3duUHJvcGVydHkoZik/bnVsbCE9ayYmXCJvblNjcm9sbFwiPT09ZiYmRChcInNjcm9sbFwiLGEpOm51bGwhPWsmJnRhKGEsZixrLGcpKX1zd2l0Y2goYyl7Y2FzZSBcImlucHV0XCI6VmEoYSk7ZGIoYSxkLCExKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpWYShhKTtqYihhKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZC52YWx1ZSYmYS5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrU2EoZC52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjphLm11bHRpcGxlPSEhZC5tdWx0aXBsZTtmPWQudmFsdWU7bnVsbCE9Zj9mYihhLCEhZC5tdWx0aXBsZSxmLCExKTpudWxsIT1kLmRlZmF1bHRWYWx1ZSYmZmIoYSwhIWQubXVsdGlwbGUsZC5kZWZhdWx0VmFsdWUsXG4hMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5vbkNsaWNrJiYoYS5vbmNsaWNrPUJmKX1zd2l0Y2goYyl7Y2FzZSBcImJ1dHRvblwiOmNhc2UgXCJpbnB1dFwiOmNhc2UgXCJzZWxlY3RcIjpjYXNlIFwidGV4dGFyZWFcIjpkPSEhZC5hdXRvRm9jdXM7YnJlYWsgYTtjYXNlIFwiaW1nXCI6ZD0hMDticmVhayBhO2RlZmF1bHQ6ZD0hMX19ZCYmKGIuZmxhZ3N8PTQpfW51bGwhPT1iLnJlZiYmKGIuZmxhZ3N8PTUxMixiLmZsYWdzfD0yMDk3MTUyKX1TKGIpO3JldHVybiBudWxsO2Nhc2UgNjppZihhJiZudWxsIT1iLnN0YXRlTm9kZSlEaihhLGIsYS5tZW1vaXplZFByb3BzLGQpO2Vsc2V7aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBkJiZudWxsPT09Yi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IocCgxNjYpKTtjPUhoKEdoLmN1cnJlbnQpO0hoKEVoLmN1cnJlbnQpO2lmKEdnKGIpKXtkPWIuc3RhdGVOb2RlO2M9Yi5tZW1vaXplZFByb3BzO2RbT2ZdPWI7aWYoZj1kLm5vZGVWYWx1ZSE9PWMpaWYoYT1cbnhnLG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpO2JyZWFrO2Nhc2UgNTohMCE9PWEubWVtb2l6ZWRQcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcmJkFmKGQubm9kZVZhbHVlLGMsMCE9PShhLm1vZGUmMSkpfWYmJihiLmZsYWdzfD00KX1lbHNlIGQ9KDk9PT1jLm5vZGVUeXBlP2M6Yy5vd25lckRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShkKSxkW09mXT1iLGIuc3RhdGVOb2RlPWR9UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDEzOkUoTSk7ZD1iLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUmJm51bGwhPT1hLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYoSSYmbnVsbCE9PXlnJiYwIT09KGIubW9kZSYxKSYmMD09PShiLmZsYWdzJjEyOCkpSGcoKSxJZygpLGIuZmxhZ3N8PTk4NTYwLGY9ITE7ZWxzZSBpZihmPUdnKGIpLG51bGwhPT1kJiZudWxsIT09ZC5kZWh5ZHJhdGVkKXtpZihudWxsPT09XG5hKXtpZighZil0aHJvdyBFcnJvcihwKDMxOCkpO2Y9Yi5tZW1vaXplZFN0YXRlO2Y9bnVsbCE9PWY/Zi5kZWh5ZHJhdGVkOm51bGw7aWYoIWYpdGhyb3cgRXJyb3IocCgzMTcpKTtmW09mXT1ifWVsc2UgSWcoKSwwPT09KGIuZmxhZ3MmMTI4KSYmKGIubWVtb2l6ZWRTdGF0ZT1udWxsKSxiLmZsYWdzfD00O1MoYik7Zj0hMX1lbHNlIG51bGwhPT16ZyYmKEdqKHpnKSx6Zz1udWxsKSxmPSEwO2lmKCFmKXJldHVybiBiLmZsYWdzJjY1NTM2P2I6bnVsbH1pZigwIT09KGIuZmxhZ3MmMTI4KSlyZXR1cm4gYi5sYW5lcz1jLGI7ZD1udWxsIT09ZDtkIT09KG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlKSYmZCYmKGIuY2hpbGQuZmxhZ3N8PTgxOTIsMCE9PShiLm1vZGUmMSkmJihudWxsPT09YXx8MCE9PShNLmN1cnJlbnQmMSk/MD09PVQmJihUPTMpOnVqKCkpKTtudWxsIT09Yi51cGRhdGVRdWV1ZSYmKGIuZmxhZ3N8PTQpO1MoYik7cmV0dXJuIG51bGw7Y2FzZSA0OnJldHVybiBKaCgpLFxuQmooYSxiKSxudWxsPT09YSYmc2YoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksUyhiKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFJnKGIudHlwZS5fY29udGV4dCksUyhiKSxudWxsO2Nhc2UgMTc6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksUyhiKSxudWxsO2Nhc2UgMTk6RShNKTtmPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09ZilyZXR1cm4gUyhiKSxudWxsO2Q9MCE9PShiLmZsYWdzJjEyOCk7Zz1mLnJlbmRlcmluZztpZihudWxsPT09ZylpZihkKUVqKGYsITEpO2Vsc2V7aWYoMCE9PVR8fG51bGwhPT1hJiYwIT09KGEuZmxhZ3MmMTI4KSlmb3IoYT1iLmNoaWxkO251bGwhPT1hOyl7Zz1NaChhKTtpZihudWxsIT09Zyl7Yi5mbGFnc3w9MTI4O0VqKGYsITEpO2Q9Zy51cGRhdGVRdWV1ZTtudWxsIT09ZCYmKGIudXBkYXRlUXVldWU9ZCxiLmZsYWdzfD00KTtiLnN1YnRyZWVGbGFncz0wO2Q9Yztmb3IoYz1iLmNoaWxkO251bGwhPT1jOylmPWMsYT1kLGYuZmxhZ3MmPTE0NjgwMDY2LFxuZz1mLmFsdGVybmF0ZSxudWxsPT09Zz8oZi5jaGlsZExhbmVzPTAsZi5sYW5lcz1hLGYuY2hpbGQ9bnVsbCxmLnN1YnRyZWVGbGFncz0wLGYubWVtb2l6ZWRQcm9wcz1udWxsLGYubWVtb2l6ZWRTdGF0ZT1udWxsLGYudXBkYXRlUXVldWU9bnVsbCxmLmRlcGVuZGVuY2llcz1udWxsLGYuc3RhdGVOb2RlPW51bGwpOihmLmNoaWxkTGFuZXM9Zy5jaGlsZExhbmVzLGYubGFuZXM9Zy5sYW5lcyxmLmNoaWxkPWcuY2hpbGQsZi5zdWJ0cmVlRmxhZ3M9MCxmLmRlbGV0aW9ucz1udWxsLGYubWVtb2l6ZWRQcm9wcz1nLm1lbW9pemVkUHJvcHMsZi5tZW1vaXplZFN0YXRlPWcubWVtb2l6ZWRTdGF0ZSxmLnVwZGF0ZVF1ZXVlPWcudXBkYXRlUXVldWUsZi50eXBlPWcudHlwZSxhPWcuZGVwZW5kZW5jaWVzLGYuZGVwZW5kZW5jaWVzPW51bGw9PT1hP251bGw6e2xhbmVzOmEubGFuZXMsZmlyc3RDb250ZXh0OmEuZmlyc3RDb250ZXh0fSksYz1jLnNpYmxpbmc7RyhNLE0uY3VycmVudCYxfDIpO3JldHVybiBiLmNoaWxkfWE9XG5hLnNpYmxpbmd9bnVsbCE9PWYudGFpbCYmQigpPkhqJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRWooZiwhMSksYi5sYW5lcz00MTk0MzA0KX1lbHNle2lmKCFkKWlmKGE9TWgoZyksbnVsbCE9PWEpe2lmKGIuZmxhZ3N8PTEyOCxkPSEwLGM9YS51cGRhdGVRdWV1ZSxudWxsIT09YyYmKGIudXBkYXRlUXVldWU9YyxiLmZsYWdzfD00KSxFaihmLCEwKSxudWxsPT09Zi50YWlsJiZcImhpZGRlblwiPT09Zi50YWlsTW9kZSYmIWcuYWx0ZXJuYXRlJiYhSSlyZXR1cm4gUyhiKSxudWxsfWVsc2UgMipCKCktZi5yZW5kZXJpbmdTdGFydFRpbWU+SGomJjEwNzM3NDE4MjQhPT1jJiYoYi5mbGFnc3w9MTI4LGQ9ITAsRWooZiwhMSksYi5sYW5lcz00MTk0MzA0KTtmLmlzQmFja3dhcmRzPyhnLnNpYmxpbmc9Yi5jaGlsZCxiLmNoaWxkPWcpOihjPWYubGFzdCxudWxsIT09Yz9jLnNpYmxpbmc9ZzpiLmNoaWxkPWcsZi5sYXN0PWcpfWlmKG51bGwhPT1mLnRhaWwpcmV0dXJuIGI9Zi50YWlsLGYucmVuZGVyaW5nPVxuYixmLnRhaWw9Yi5zaWJsaW5nLGYucmVuZGVyaW5nU3RhcnRUaW1lPUIoKSxiLnNpYmxpbmc9bnVsbCxjPU0uY3VycmVudCxHKE0sZD9jJjF8MjpjJjEpLGI7UyhiKTtyZXR1cm4gbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIElqKCksZD1udWxsIT09Yi5tZW1vaXplZFN0YXRlLG51bGwhPT1hJiZudWxsIT09YS5tZW1vaXplZFN0YXRlIT09ZCYmKGIuZmxhZ3N8PTgxOTIpLGQmJjAhPT0oYi5tb2RlJjEpPzAhPT0oZ2omMTA3Mzc0MTgyNCkmJihTKGIpLGIuc3VidHJlZUZsYWdzJjYmJihiLmZsYWdzfD04MTkyKSk6UyhiKSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbH10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO31cbmZ1bmN0aW9uIEpqKGEsYil7d2coYik7c3dpdGNoKGIudGFnKXtjYXNlIDE6cmV0dXJuIFpmKGIudHlwZSkmJiRmKCksYT1iLmZsYWdzLGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAzOnJldHVybiBKaCgpLEUoV2YpLEUoSCksT2goKSxhPWIuZmxhZ3MsMCE9PShhJjY1NTM2KSYmMD09PShhJjEyOCk/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSA1OnJldHVybiBMaChiKSxudWxsO2Nhc2UgMTM6RShNKTthPWIubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09YSYmbnVsbCE9PWEuZGVoeWRyYXRlZCl7aWYobnVsbD09PWIuYWx0ZXJuYXRlKXRocm93IEVycm9yKHAoMzQwKSk7SWcoKX1hPWIuZmxhZ3M7cmV0dXJuIGEmNjU1MzY/KGIuZmxhZ3M9YSYtNjU1Mzd8MTI4LGIpOm51bGw7Y2FzZSAxOTpyZXR1cm4gRShNKSxudWxsO2Nhc2UgNDpyZXR1cm4gSmgoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFJnKGIudHlwZS5fY29udGV4dCksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIElqKCksXG5udWxsO2Nhc2UgMjQ6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIEtqPSExLFU9ITEsTGo9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsVj1udWxsO2Z1bmN0aW9uIE1qKGEsYil7dmFyIGM9YS5yZWY7aWYobnVsbCE9PWMpaWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMpdHJ5e2MobnVsbCl9Y2F0Y2goZCl7VyhhLGIsZCl9ZWxzZSBjLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBOaihhLGIsYyl7dHJ5e2MoKX1jYXRjaChkKXtXKGEsYixkKX19dmFyIE9qPSExO1xuZnVuY3Rpb24gUGooYSxiKXtDZj1kZDthPU1lKCk7aWYoTmUoYSkpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGEpdmFyIGM9e3N0YXJ0OmEuc2VsZWN0aW9uU3RhcnQsZW5kOmEuc2VsZWN0aW9uRW5kfTtlbHNlIGE6e2M9KGM9YS5vd25lckRvY3VtZW50KSYmYy5kZWZhdWx0Vmlld3x8d2luZG93O3ZhciBkPWMuZ2V0U2VsZWN0aW9uJiZjLmdldFNlbGVjdGlvbigpO2lmKGQmJjAhPT1kLnJhbmdlQ291bnQpe2M9ZC5hbmNob3JOb2RlO3ZhciBlPWQuYW5jaG9yT2Zmc2V0LGY9ZC5mb2N1c05vZGU7ZD1kLmZvY3VzT2Zmc2V0O3RyeXtjLm5vZGVUeXBlLGYubm9kZVR5cGV9Y2F0Y2goRil7Yz1udWxsO2JyZWFrIGF9dmFyIGc9MCxoPS0xLGs9LTEsbD0wLG09MCxxPWEscj1udWxsO2I6Zm9yKDs7KXtmb3IodmFyIHk7Oyl7cSE9PWN8fDAhPT1lJiYzIT09cS5ub2RlVHlwZXx8KGg9ZytlKTtxIT09Znx8MCE9PWQmJjMhPT1xLm5vZGVUeXBlfHwoaz1nK2QpOzM9PT1xLm5vZGVUeXBlJiYoZys9XG5xLm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0oeT1xLmZpcnN0Q2hpbGQpKWJyZWFrO3I9cTtxPXl9Zm9yKDs7KXtpZihxPT09YSlicmVhayBiO3I9PT1jJiYrK2w9PT1lJiYoaD1nKTtyPT09ZiYmKyttPT09ZCYmKGs9Zyk7aWYobnVsbCE9PSh5PXEubmV4dFNpYmxpbmcpKWJyZWFrO3E9cjtyPXEucGFyZW50Tm9kZX1xPXl9Yz0tMT09PWh8fC0xPT09az9udWxsOntzdGFydDpoLGVuZDprfX1lbHNlIGM9bnVsbH1jPWN8fHtzdGFydDowLGVuZDowfX1lbHNlIGM9bnVsbDtEZj17Zm9jdXNlZEVsZW06YSxzZWxlY3Rpb25SYW5nZTpjfTtkZD0hMTtmb3IoVj1iO251bGwhPT1WOylpZihiPVYsYT1iLmNoaWxkLDAhPT0oYi5zdWJ0cmVlRmxhZ3MmMTAyOCkmJm51bGwhPT1hKWEucmV0dXJuPWIsVj1hO2Vsc2UgZm9yKDtudWxsIT09Vjspe2I9Vjt0cnl7dmFyIG49Yi5hbHRlcm5hdGU7aWYoMCE9PShiLmZsYWdzJjEwMjQpKXN3aXRjaChiLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpicmVhaztcbmNhc2UgMTppZihudWxsIT09bil7dmFyIHQ9bi5tZW1vaXplZFByb3BzLEo9bi5tZW1vaXplZFN0YXRlLHg9Yi5zdGF0ZU5vZGUsdz14LmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGIuZWxlbWVudFR5cGU9PT1iLnR5cGU/dDpMZyhiLnR5cGUsdCksSik7eC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT13fWJyZWFrO2Nhc2UgMzp2YXIgdT1iLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOzE9PT11Lm5vZGVUeXBlP3UudGV4dENvbnRlbnQ9XCJcIjo5PT09dS5ub2RlVHlwZSYmdS5kb2N1bWVudEVsZW1lbnQmJnUucmVtb3ZlQ2hpbGQodS5kb2N1bWVudEVsZW1lbnQpO2JyZWFrO2Nhc2UgNTpjYXNlIDY6Y2FzZSA0OmNhc2UgMTc6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihwKDE2MykpO319Y2F0Y2goRil7VyhiLGIucmV0dXJuLEYpfWE9Yi5zaWJsaW5nO2lmKG51bGwhPT1hKXthLnJldHVybj1iLnJldHVybjtWPWE7YnJlYWt9Vj1iLnJldHVybn1uPU9qO09qPSExO3JldHVybiBufVxuZnVuY3Rpb24gUWooYSxiLGMpe3ZhciBkPWIudXBkYXRlUXVldWU7ZD1udWxsIT09ZD9kLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09ZCl7dmFyIGU9ZD1kLm5leHQ7ZG97aWYoKGUudGFnJmEpPT09YSl7dmFyIGY9ZS5kZXN0cm95O2UuZGVzdHJveT12b2lkIDA7dm9pZCAwIT09ZiYmTmooYixjLGYpfWU9ZS5uZXh0fXdoaWxlKGUhPT1kKX19ZnVuY3Rpb24gUmooYSxiKXtiPWIudXBkYXRlUXVldWU7Yj1udWxsIT09Yj9iLmxhc3RFZmZlY3Q6bnVsbDtpZihudWxsIT09Yil7dmFyIGM9Yj1iLm5leHQ7ZG97aWYoKGMudGFnJmEpPT09YSl7dmFyIGQ9Yy5jcmVhdGU7Yy5kZXN0cm95PWQoKX1jPWMubmV4dH13aGlsZShjIT09Yil9fWZ1bmN0aW9uIFNqKGEpe3ZhciBiPWEucmVmO2lmKG51bGwhPT1iKXt2YXIgYz1hLnN0YXRlTm9kZTtzd2l0Y2goYS50YWcpe2Nhc2UgNTphPWM7YnJlYWs7ZGVmYXVsdDphPWN9XCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YihhKTpiLmN1cnJlbnQ9YX19XG5mdW5jdGlvbiBUaihhKXt2YXIgYj1hLmFsdGVybmF0ZTtudWxsIT09YiYmKGEuYWx0ZXJuYXRlPW51bGwsVGooYikpO2EuY2hpbGQ9bnVsbDthLmRlbGV0aW9ucz1udWxsO2Euc2libGluZz1udWxsOzU9PT1hLnRhZyYmKGI9YS5zdGF0ZU5vZGUsbnVsbCE9PWImJihkZWxldGUgYltPZl0sZGVsZXRlIGJbUGZdLGRlbGV0ZSBiW29mXSxkZWxldGUgYltRZl0sZGVsZXRlIGJbUmZdKSk7YS5zdGF0ZU5vZGU9bnVsbDthLnJldHVybj1udWxsO2EuZGVwZW5kZW5jaWVzPW51bGw7YS5tZW1vaXplZFByb3BzPW51bGw7YS5tZW1vaXplZFN0YXRlPW51bGw7YS5wZW5kaW5nUHJvcHM9bnVsbDthLnN0YXRlTm9kZT1udWxsO2EudXBkYXRlUXVldWU9bnVsbH1mdW5jdGlvbiBVaihhKXtyZXR1cm4gNT09PWEudGFnfHwzPT09YS50YWd8fDQ9PT1hLnRhZ31cbmZ1bmN0aW9uIFZqKGEpe2E6Zm9yKDs7KXtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09YS5yZXR1cm58fFVqKGEucmV0dXJuKSlyZXR1cm4gbnVsbDthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm47Zm9yKGE9YS5zaWJsaW5nOzUhPT1hLnRhZyYmNiE9PWEudGFnJiYxOCE9PWEudGFnOyl7aWYoYS5mbGFncyYyKWNvbnRpbnVlIGE7aWYobnVsbD09PWEuY2hpbGR8fDQ9PT1hLnRhZyljb250aW51ZSBhO2Vsc2UgYS5jaGlsZC5yZXR1cm49YSxhPWEuY2hpbGR9aWYoIShhLmZsYWdzJjIpKXJldHVybiBhLnN0YXRlTm9kZX19XG5mdW5jdGlvbiBXaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj84PT09Yy5ub2RlVHlwZT9jLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsYik6Yy5pbnNlcnRCZWZvcmUoYSxiKTooOD09PWMubm9kZVR5cGU/KGI9Yy5wYXJlbnROb2RlLGIuaW5zZXJ0QmVmb3JlKGEsYykpOihiPWMsYi5hcHBlbmRDaGlsZChhKSksYz1jLl9yZWFjdFJvb3RDb250YWluZXIsbnVsbCE9PWMmJnZvaWQgMCE9PWN8fG51bGwhPT1iLm9uY2xpY2t8fChiLm9uY2xpY2s9QmYpKTtlbHNlIGlmKDQhPT1kJiYoYT1hLmNoaWxkLG51bGwhPT1hKSlmb3IoV2ooYSxiLGMpLGE9YS5zaWJsaW5nO251bGwhPT1hOylXaihhLGIsYyksYT1hLnNpYmxpbmd9XG5mdW5jdGlvbiBYaihhLGIsYyl7dmFyIGQ9YS50YWc7aWYoNT09PWR8fDY9PT1kKWE9YS5zdGF0ZU5vZGUsYj9jLmluc2VydEJlZm9yZShhLGIpOmMuYXBwZW5kQ2hpbGQoYSk7ZWxzZSBpZig0IT09ZCYmKGE9YS5jaGlsZCxudWxsIT09YSkpZm9yKFhqKGEsYixjKSxhPWEuc2libGluZztudWxsIT09YTspWGooYSxiLGMpLGE9YS5zaWJsaW5nfXZhciBYPW51bGwsWWo9ITE7ZnVuY3Rpb24gWmooYSxiLGMpe2ZvcihjPWMuY2hpbGQ7bnVsbCE9PWM7KWFrKGEsYixjKSxjPWMuc2libGluZ31cbmZ1bmN0aW9uIGFrKGEsYixjKXtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtsYy5vbkNvbW1pdEZpYmVyVW5tb3VudChrYyxjKX1jYXRjaChoKXt9c3dpdGNoKGMudGFnKXtjYXNlIDU6VXx8TWooYyxiKTtjYXNlIDY6dmFyIGQ9WCxlPVlqO1g9bnVsbDtaaihhLGIsYyk7WD1kO1lqPWU7bnVsbCE9PVgmJihZaj8oYT1YLGM9Yy5zdGF0ZU5vZGUsOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpOmEucmVtb3ZlQ2hpbGQoYykpOlgucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDE4Om51bGwhPT1YJiYoWWo/KGE9WCxjPWMuc3RhdGVOb2RlLDg9PT1hLm5vZGVUeXBlP0tmKGEucGFyZW50Tm9kZSxjKToxPT09YS5ub2RlVHlwZSYmS2YoYSxjKSxiZChhKSk6S2YoWCxjLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpkPVg7ZT1ZajtYPWMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87WWo9ITA7XG5aaihhLGIsYyk7WD1kO1lqPWU7YnJlYWs7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmlmKCFVJiYoZD1jLnVwZGF0ZVF1ZXVlLG51bGwhPT1kJiYoZD1kLmxhc3RFZmZlY3QsbnVsbCE9PWQpKSl7ZT1kPWQubmV4dDtkb3t2YXIgZj1lLGc9Zi5kZXN0cm95O2Y9Zi50YWc7dm9pZCAwIT09ZyYmKDAhPT0oZiYyKT9OaihjLGIsZyk6MCE9PShmJjQpJiZOaihjLGIsZykpO2U9ZS5uZXh0fXdoaWxlKGUhPT1kKX1aaihhLGIsYyk7YnJlYWs7Y2FzZSAxOmlmKCFVJiYoTWooYyxiKSxkPWMuc3RhdGVOb2RlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLmNvbXBvbmVudFdpbGxVbm1vdW50KSl0cnl7ZC5wcm9wcz1jLm1lbW9pemVkUHJvcHMsZC5zdGF0ZT1jLm1lbW9pemVkU3RhdGUsZC5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKGgpe1coYyxiLGgpfVpqKGEsYixjKTticmVhaztjYXNlIDIxOlpqKGEsYixjKTticmVhaztjYXNlIDIyOmMubW9kZSYxPyhVPShkPVUpfHxudWxsIT09XG5jLm1lbW9pemVkU3RhdGUsWmooYSxiLGMpLFU9ZCk6WmooYSxiLGMpO2JyZWFrO2RlZmF1bHQ6WmooYSxiLGMpfX1mdW5jdGlvbiBiayhhKXt2YXIgYj1hLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1iKXthLnVwZGF0ZVF1ZXVlPW51bGw7dmFyIGM9YS5zdGF0ZU5vZGU7bnVsbD09PWMmJihjPWEuc3RhdGVOb2RlPW5ldyBMaik7Yi5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBkPWNrLmJpbmQobnVsbCxhLGIpO2MuaGFzKGIpfHwoYy5hZGQoYiksYi50aGVuKGQsZCkpfSl9fVxuZnVuY3Rpb24gZGsoYSxiKXt2YXIgYz1iLmRlbGV0aW9ucztpZihudWxsIT09Yylmb3IodmFyIGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGU9Y1tkXTt0cnl7dmFyIGY9YSxnPWIsaD1nO2E6Zm9yKDtudWxsIT09aDspe3N3aXRjaChoLnRhZyl7Y2FzZSA1Olg9aC5zdGF0ZU5vZGU7WWo9ITE7YnJlYWsgYTtjYXNlIDM6WD1oLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1lqPSEwO2JyZWFrIGE7Y2FzZSA0Olg9aC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztZaj0hMDticmVhayBhfWg9aC5yZXR1cm59aWYobnVsbD09PVgpdGhyb3cgRXJyb3IocCgxNjApKTthayhmLGcsZSk7WD1udWxsO1lqPSExO3ZhciBrPWUuYWx0ZXJuYXRlO251bGwhPT1rJiYoay5yZXR1cm49bnVsbCk7ZS5yZXR1cm49bnVsbH1jYXRjaChsKXtXKGUsYixsKX19aWYoYi5zdWJ0cmVlRmxhZ3MmMTI4NTQpZm9yKGI9Yi5jaGlsZDtudWxsIT09YjspZWsoYixhKSxiPWIuc2libGluZ31cbmZ1bmN0aW9uIGVrKGEsYil7dmFyIGM9YS5hbHRlcm5hdGUsZD1hLmZsYWdzO3N3aXRjaChhLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmRrKGIsYSk7ZmsoYSk7aWYoZCY0KXt0cnl7UWooMyxhLGEucmV0dXJuKSxSaigzLGEpfWNhdGNoKHQpe1coYSxhLnJldHVybix0KX10cnl7UWooNSxhLGEucmV0dXJuKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMTpkayhiLGEpO2ZrKGEpO2QmNTEyJiZudWxsIT09YyYmTWooYyxjLnJldHVybik7YnJlYWs7Y2FzZSA1OmRrKGIsYSk7ZmsoYSk7ZCY1MTImJm51bGwhPT1jJiZNaihjLGMucmV0dXJuKTtpZihhLmZsYWdzJjMyKXt2YXIgZT1hLnN0YXRlTm9kZTt0cnl7b2IoZSxcIlwiKX1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWlmKGQmNCYmKGU9YS5zdGF0ZU5vZGUsbnVsbCE9ZSkpe3ZhciBmPWEubWVtb2l6ZWRQcm9wcyxnPW51bGwhPT1jP2MubWVtb2l6ZWRQcm9wczpmLGg9YS50eXBlLGs9YS51cGRhdGVRdWV1ZTtcbmEudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09ayl0cnl7XCJpbnB1dFwiPT09aCYmXCJyYWRpb1wiPT09Zi50eXBlJiZudWxsIT1mLm5hbWUmJmFiKGUsZik7dmIoaCxnKTt2YXIgbD12YihoLGYpO2ZvcihnPTA7ZzxrLmxlbmd0aDtnKz0yKXt2YXIgbT1rW2ddLHE9a1tnKzFdO1wic3R5bGVcIj09PW0/c2IoZSxxKTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1tP25iKGUscSk6XCJjaGlsZHJlblwiPT09bT9vYihlLHEpOnRhKGUsbSxxLGwpfXN3aXRjaChoKXtjYXNlIFwiaW5wdXRcIjpiYihlLGYpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOmliKGUsZik7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOnZhciByPWUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtlLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9ISFmLm11bHRpcGxlO3ZhciB5PWYudmFsdWU7bnVsbCE9eT9mYihlLCEhZi5tdWx0aXBsZSx5LCExKTpyIT09ISFmLm11bHRpcGxlJiYobnVsbCE9Zi5kZWZhdWx0VmFsdWU/ZmIoZSwhIWYubXVsdGlwbGUsXG5mLmRlZmF1bHRWYWx1ZSwhMCk6ZmIoZSwhIWYubXVsdGlwbGUsZi5tdWx0aXBsZT9bXTpcIlwiLCExKSl9ZVtQZl09Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgNjpkayhiLGEpO2ZrKGEpO2lmKGQmNCl7aWYobnVsbD09PWEuc3RhdGVOb2RlKXRocm93IEVycm9yKHAoMTYyKSk7ZT1hLnN0YXRlTm9kZTtmPWEubWVtb2l6ZWRQcm9wczt0cnl7ZS5ub2RlVmFsdWU9Zn1jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWJyZWFrO2Nhc2UgMzpkayhiLGEpO2ZrKGEpO2lmKGQmNCYmbnVsbCE9PWMmJmMubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2JkKGIuY29udGFpbmVySW5mbyl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfWJyZWFrO2Nhc2UgNDpkayhiLGEpO2ZrKGEpO2JyZWFrO2Nhc2UgMTM6ZGsoYixhKTtmayhhKTtlPWEuY2hpbGQ7ZS5mbGFncyY4MTkyJiYoZj1udWxsIT09ZS5tZW1vaXplZFN0YXRlLGUuc3RhdGVOb2RlLmlzSGlkZGVuPWYsIWZ8fFxubnVsbCE9PWUuYWx0ZXJuYXRlJiZudWxsIT09ZS5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZXx8KGdrPUIoKSkpO2QmNCYmYmsoYSk7YnJlYWs7Y2FzZSAyMjptPW51bGwhPT1jJiZudWxsIT09Yy5tZW1vaXplZFN0YXRlO2EubW9kZSYxPyhVPShsPVUpfHxtLGRrKGIsYSksVT1sKTpkayhiLGEpO2ZrKGEpO2lmKGQmODE5Mil7bD1udWxsIT09YS5tZW1vaXplZFN0YXRlO2lmKChhLnN0YXRlTm9kZS5pc0hpZGRlbj1sKSYmIW0mJjAhPT0oYS5tb2RlJjEpKWZvcihWPWEsbT1hLmNoaWxkO251bGwhPT1tOyl7Zm9yKHE9Vj1tO251bGwhPT1WOyl7cj1WO3k9ci5jaGlsZDtzd2l0Y2goci50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpRaig0LHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMTpNaihyLHIucmV0dXJuKTt2YXIgbj1yLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2Ygbi5jb21wb25lbnRXaWxsVW5tb3VudCl7ZD1yO2M9ci5yZXR1cm47dHJ5e2I9ZCxuLnByb3BzPVxuYi5tZW1vaXplZFByb3BzLG4uc3RhdGU9Yi5tZW1vaXplZFN0YXRlLG4uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh0KXtXKGQsYyx0KX19YnJlYWs7Y2FzZSA1Ok1qKHIsci5yZXR1cm4pO2JyZWFrO2Nhc2UgMjI6aWYobnVsbCE9PXIubWVtb2l6ZWRTdGF0ZSl7aGsocSk7Y29udGludWV9fW51bGwhPT15Pyh5LnJldHVybj1yLFY9eSk6aGsocSl9bT1tLnNpYmxpbmd9YTpmb3IobT1udWxsLHE9YTs7KXtpZig1PT09cS50YWcpe2lmKG51bGw9PT1tKXttPXE7dHJ5e2U9cS5zdGF0ZU5vZGUsbD8oZj1lLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLnNldFByb3BlcnR5P2Yuc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6Zi5kaXNwbGF5PVwibm9uZVwiKTooaD1xLnN0YXRlTm9kZSxrPXEubWVtb2l6ZWRQcm9wcy5zdHlsZSxnPXZvaWQgMCE9PWsmJm51bGwhPT1rJiZrLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9rLmRpc3BsYXk6bnVsbCxoLnN0eWxlLmRpc3BsYXk9XG5yYihcImRpc3BsYXlcIixnKSl9Y2F0Y2godCl7VyhhLGEucmV0dXJuLHQpfX19ZWxzZSBpZig2PT09cS50YWcpe2lmKG51bGw9PT1tKXRyeXtxLnN0YXRlTm9kZS5ub2RlVmFsdWU9bD9cIlwiOnEubWVtb2l6ZWRQcm9wc31jYXRjaCh0KXtXKGEsYS5yZXR1cm4sdCl9fWVsc2UgaWYoKDIyIT09cS50YWcmJjIzIT09cS50YWd8fG51bGw9PT1xLm1lbW9pemVkU3RhdGV8fHE9PT1hKSYmbnVsbCE9PXEuY2hpbGQpe3EuY2hpbGQucmV0dXJuPXE7cT1xLmNoaWxkO2NvbnRpbnVlfWlmKHE9PT1hKWJyZWFrIGE7Zm9yKDtudWxsPT09cS5zaWJsaW5nOyl7aWYobnVsbD09PXEucmV0dXJufHxxLnJldHVybj09PWEpYnJlYWsgYTttPT09cSYmKG09bnVsbCk7cT1xLnJldHVybn1tPT09cSYmKG09bnVsbCk7cS5zaWJsaW5nLnJldHVybj1xLnJldHVybjtxPXEuc2libGluZ319YnJlYWs7Y2FzZSAxOTpkayhiLGEpO2ZrKGEpO2QmNCYmYmsoYSk7YnJlYWs7Y2FzZSAyMTpicmVhaztkZWZhdWx0OmRrKGIsXG5hKSxmayhhKX19ZnVuY3Rpb24gZmsoYSl7dmFyIGI9YS5mbGFncztpZihiJjIpe3RyeXthOntmb3IodmFyIGM9YS5yZXR1cm47bnVsbCE9PWM7KXtpZihVaihjKSl7dmFyIGQ9YzticmVhayBhfWM9Yy5yZXR1cm59dGhyb3cgRXJyb3IocCgxNjApKTt9c3dpdGNoKGQudGFnKXtjYXNlIDU6dmFyIGU9ZC5zdGF0ZU5vZGU7ZC5mbGFncyYzMiYmKG9iKGUsXCJcIiksZC5mbGFncyY9LTMzKTt2YXIgZj1WaihhKTtYaihhLGYsZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZz1kLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGg9VmooYSk7V2ooYSxoLGcpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjEpKTt9fWNhdGNoKGspe1coYSxhLnJldHVybixrKX1hLmZsYWdzJj0tM31iJjQwOTYmJihhLmZsYWdzJj0tNDA5Nyl9ZnVuY3Rpb24gaWsoYSxiLGMpe1Y9YTtqayhhLGIsYyl9XG5mdW5jdGlvbiBqayhhLGIsYyl7Zm9yKHZhciBkPTAhPT0oYS5tb2RlJjEpO251bGwhPT1WOyl7dmFyIGU9VixmPWUuY2hpbGQ7aWYoMjI9PT1lLnRhZyYmZCl7dmFyIGc9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZXx8S2o7aWYoIWcpe3ZhciBoPWUuYWx0ZXJuYXRlLGs9bnVsbCE9PWgmJm51bGwhPT1oLm1lbW9pemVkU3RhdGV8fFU7aD1Lajt2YXIgbD1VO0tqPWc7aWYoKFU9aykmJiFsKWZvcihWPWU7bnVsbCE9PVY7KWc9VixrPWcuY2hpbGQsMjI9PT1nLnRhZyYmbnVsbCE9PWcubWVtb2l6ZWRTdGF0ZT9rayhlKTpudWxsIT09az8oay5yZXR1cm49ZyxWPWspOmtrKGUpO2Zvcig7bnVsbCE9PWY7KVY9ZixqayhmLGIsYyksZj1mLnNpYmxpbmc7Vj1lO0tqPWg7VT1sfWxrKGEsYixjKX1lbHNlIDAhPT0oZS5zdWJ0cmVlRmxhZ3MmODc3MikmJm51bGwhPT1mPyhmLnJldHVybj1lLFY9Zik6bGsoYSxiLGMpfX1cbmZ1bmN0aW9uIGxrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKDAhPT0oYi5mbGFncyY4NzcyKSl7dmFyIGM9Yi5hbHRlcm5hdGU7dHJ5e2lmKDAhPT0oYi5mbGFncyY4NzcyKSlzd2l0Y2goYi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6VXx8UmooNSxiKTticmVhaztjYXNlIDE6dmFyIGQ9Yi5zdGF0ZU5vZGU7aWYoYi5mbGFncyY0JiYhVSlpZihudWxsPT09YylkLmNvbXBvbmVudERpZE1vdW50KCk7ZWxzZXt2YXIgZT1iLmVsZW1lbnRUeXBlPT09Yi50eXBlP2MubWVtb2l6ZWRQcm9wczpMZyhiLnR5cGUsYy5tZW1vaXplZFByb3BzKTtkLmNvbXBvbmVudERpZFVwZGF0ZShlLGMubWVtb2l6ZWRTdGF0ZSxkLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX12YXIgZj1iLnVwZGF0ZVF1ZXVlO251bGwhPT1mJiZpaChiLGYsZCk7YnJlYWs7Y2FzZSAzOnZhciBnPWIudXBkYXRlUXVldWU7aWYobnVsbCE9PWcpe2M9bnVsbDtpZihudWxsIT09Yi5jaGlsZClzd2l0Y2goYi5jaGlsZC50YWcpe2Nhc2UgNTpjPVxuYi5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOmM9Yi5jaGlsZC5zdGF0ZU5vZGV9aWgoYixnLGMpfWJyZWFrO2Nhc2UgNTp2YXIgaD1iLnN0YXRlTm9kZTtpZihudWxsPT09YyYmYi5mbGFncyY0KXtjPWg7dmFyIGs9Yi5tZW1vaXplZFByb3BzO3N3aXRjaChiLnR5cGUpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6ay5hdXRvRm9jdXMmJmMuZm9jdXMoKTticmVhaztjYXNlIFwiaW1nXCI6ay5zcmMmJihjLnNyYz1rLnNyYyl9fWJyZWFrO2Nhc2UgNjpicmVhaztjYXNlIDQ6YnJlYWs7Y2FzZSAxMjpicmVhaztjYXNlIDEzOmlmKG51bGw9PT1iLm1lbW9pemVkU3RhdGUpe3ZhciBsPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1sKXt2YXIgbT1sLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW0pe3ZhciBxPW0uZGVoeWRyYXRlZDtudWxsIT09cSYmYmQocSl9fX1icmVhaztjYXNlIDE5OmNhc2UgMTc6Y2FzZSAyMTpjYXNlIDIyOmNhc2UgMjM6Y2FzZSAyNTpicmVhaztcbmRlZmF1bHQ6dGhyb3cgRXJyb3IocCgxNjMpKTt9VXx8Yi5mbGFncyY1MTImJlNqKGIpfWNhdGNoKHIpe1coYixiLnJldHVybixyKX19aWYoYj09PWEpe1Y9bnVsbDticmVha31jPWIuc2libGluZztpZihudWxsIT09Yyl7Yy5yZXR1cm49Yi5yZXR1cm47Vj1jO2JyZWFrfVY9Yi5yZXR1cm59fWZ1bmN0aW9uIGhrKGEpe2Zvcig7bnVsbCE9PVY7KXt2YXIgYj1WO2lmKGI9PT1hKXtWPW51bGw7YnJlYWt9dmFyIGM9Yi5zaWJsaW5nO2lmKG51bGwhPT1jKXtjLnJldHVybj1iLnJldHVybjtWPWM7YnJlYWt9Vj1iLnJldHVybn19XG5mdW5jdGlvbiBrayhhKXtmb3IoO251bGwhPT1WOyl7dmFyIGI9Vjt0cnl7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnZhciBjPWIucmV0dXJuO3RyeXtSaig0LGIpfWNhdGNoKGspe1coYixjLGspfWJyZWFrO2Nhc2UgMTp2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRNb3VudCl7dmFyIGU9Yi5yZXR1cm47dHJ5e2QuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChrKXtXKGIsZSxrKX19dmFyIGY9Yi5yZXR1cm47dHJ5e1NqKGIpfWNhdGNoKGspe1coYixmLGspfWJyZWFrO2Nhc2UgNTp2YXIgZz1iLnJldHVybjt0cnl7U2ooYil9Y2F0Y2goayl7VyhiLGcsayl9fX1jYXRjaChrKXtXKGIsYi5yZXR1cm4sayl9aWYoYj09PWEpe1Y9bnVsbDticmVha312YXIgaD1iLnNpYmxpbmc7aWYobnVsbCE9PWgpe2gucmV0dXJuPWIucmV0dXJuO1Y9aDticmVha31WPWIucmV0dXJufX1cbnZhciBtaz1NYXRoLmNlaWwsbms9dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixvaz11YS5SZWFjdEN1cnJlbnRPd25lcixwaz11YS5SZWFjdEN1cnJlbnRCYXRjaENvbmZpZyxLPTAsUj1udWxsLFk9bnVsbCxaPTAsZ2o9MCxmaj1VZigwKSxUPTAscWs9bnVsbCxoaD0wLHJrPTAsc2s9MCx0az1udWxsLHVrPW51bGwsZ2s9MCxIaj1JbmZpbml0eSx2az1udWxsLFBpPSExLFFpPW51bGwsU2k9bnVsbCx3az0hMSx4az1udWxsLHlrPTAsems9MCxBaz1udWxsLEJrPS0xLENrPTA7ZnVuY3Rpb24gTCgpe3JldHVybiAwIT09KEsmNik/QigpOi0xIT09Qms/Qms6Qms9QigpfVxuZnVuY3Rpb24gbGgoYSl7aWYoMD09PShhLm1vZGUmMSkpcmV0dXJuIDE7aWYoMCE9PShLJjIpJiYwIT09WilyZXR1cm4gWiYtWjtpZihudWxsIT09S2cudHJhbnNpdGlvbilyZXR1cm4gMD09PUNrJiYoQ2s9eWMoKSksQ2s7YT1DO2lmKDAhPT1hKXJldHVybiBhO2E9d2luZG93LmV2ZW50O2E9dm9pZCAwPT09YT8xNjpqZChhLnR5cGUpO3JldHVybiBhfWZ1bmN0aW9uIG1oKGEsYixjLGQpe2lmKDUwPHprKXRocm93IHprPTAsQWs9bnVsbCxFcnJvcihwKDE4NSkpO0FjKGEsYyxkKTtpZigwPT09KEsmMil8fGEhPT1SKWE9PT1SJiYoMD09PShLJjIpJiYocmt8PWMpLDQ9PT1UJiZEayhhLFopKSxFayhhLGQpLDE9PT1jJiYwPT09SyYmMD09PShiLm1vZGUmMSkmJihIaj1CKCkrNTAwLGZnJiZqZygpKX1cbmZ1bmN0aW9uIEVrKGEsYil7dmFyIGM9YS5jYWxsYmFja05vZGU7d2MoYSxiKTt2YXIgZD11YyhhLGE9PT1SP1o6MCk7aWYoMD09PWQpbnVsbCE9PWMmJmJjKGMpLGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja1ByaW9yaXR5PTA7ZWxzZSBpZihiPWQmLWQsYS5jYWxsYmFja1ByaW9yaXR5IT09Yil7bnVsbCE9YyYmYmMoYyk7aWYoMT09PWIpMD09PWEudGFnP2lnKEZrLmJpbmQobnVsbCxhKSk6aGcoRmsuYmluZChudWxsLGEpKSxKZihmdW5jdGlvbigpezA9PT0oSyY2KSYmamcoKX0pLGM9bnVsbDtlbHNle3N3aXRjaChEYyhkKSl7Y2FzZSAxOmM9ZmM7YnJlYWs7Y2FzZSA0OmM9Z2M7YnJlYWs7Y2FzZSAxNjpjPWhjO2JyZWFrO2Nhc2UgNTM2ODcwOTEyOmM9amM7YnJlYWs7ZGVmYXVsdDpjPWhjfWM9R2soYyxIay5iaW5kKG51bGwsYSkpfWEuY2FsbGJhY2tQcmlvcml0eT1iO2EuY2FsbGJhY2tOb2RlPWN9fVxuZnVuY3Rpb24gSGsoYSxiKXtCaz0tMTtDaz0wO2lmKDAhPT0oSyY2KSl0aHJvdyBFcnJvcihwKDMyNykpO3ZhciBjPWEuY2FsbGJhY2tOb2RlO2lmKElrKCkmJmEuY2FsbGJhY2tOb2RlIT09YylyZXR1cm4gbnVsbDt2YXIgZD11YyhhLGE9PT1SP1o6MCk7aWYoMD09PWQpcmV0dXJuIG51bGw7aWYoMCE9PShkJjMwKXx8MCE9PShkJmEuZXhwaXJlZExhbmVzKXx8YiliPUprKGEsZCk7ZWxzZXtiPWQ7dmFyIGU9SztLfD0yO3ZhciBmPUtrKCk7aWYoUiE9PWF8fFohPT1iKXZrPW51bGwsSGo9QigpKzUwMCxMayhhLGIpO2RvIHRyeXtNaygpO2JyZWFrfWNhdGNoKGgpe05rKGEsaCl9d2hpbGUoMSk7UWcoKTtuay5jdXJyZW50PWY7Sz1lO251bGwhPT1ZP2I9MDooUj1udWxsLFo9MCxiPVQpfWlmKDAhPT1iKXsyPT09YiYmKGU9eGMoYSksMCE9PWUmJihkPWUsYj1PayhhLGUpKSk7aWYoMT09PWIpdGhyb3cgYz1xayxMayhhLDApLERrKGEsZCksRWsoYSxCKCkpLGM7aWYoNj09PWIpRGsoYSxkKTtcbmVsc2V7ZT1hLmN1cnJlbnQuYWx0ZXJuYXRlO2lmKDA9PT0oZCYzMCkmJiFQayhlKSYmKGI9SmsoYSxkKSwyPT09YiYmKGY9eGMoYSksMCE9PWYmJihkPWYsYj1PayhhLGYpKSksMT09PWIpKXRocm93IGM9cWssTGsoYSwwKSxEayhhLGQpLEVrKGEsQigpKSxjO2EuZmluaXNoZWRXb3JrPWU7YS5maW5pc2hlZExhbmVzPWQ7c3dpdGNoKGIpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocCgzNDUpKTtjYXNlIDI6UWsoYSx1ayx2ayk7YnJlYWs7Y2FzZSAzOkRrKGEsZCk7aWYoKGQmMTMwMDIzNDI0KT09PWQmJihiPWdrKzUwMC1CKCksMTA8Yikpe2lmKDAhPT11YyhhLDApKWJyZWFrO2U9YS5zdXNwZW5kZWRMYW5lcztpZigoZSZkKSE9PWQpe0woKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmU7YnJlYWt9YS50aW1lb3V0SGFuZGxlPUZmKFFrLmJpbmQobnVsbCxhLHVrLHZrKSxiKTticmVha31RayhhLHVrLHZrKTticmVhaztjYXNlIDQ6RGsoYSxkKTtpZigoZCY0MTk0MjQwKT09PVxuZClicmVhaztiPWEuZXZlbnRUaW1lcztmb3IoZT0tMTswPGQ7KXt2YXIgZz0zMS1vYyhkKTtmPTE8PGc7Zz1iW2ddO2c+ZSYmKGU9Zyk7ZCY9fmZ9ZD1lO2Q9QigpLWQ7ZD0oMTIwPmQ/MTIwOjQ4MD5kPzQ4MDoxMDgwPmQ/MTA4MDoxOTIwPmQ/MTkyMDozRTM+ZD8zRTM6NDMyMD5kPzQzMjA6MTk2MCptayhkLzE5NjApKS1kO2lmKDEwPGQpe2EudGltZW91dEhhbmRsZT1GZihRay5iaW5kKG51bGwsYSx1ayx2ayksZCk7YnJlYWt9UWsoYSx1ayx2ayk7YnJlYWs7Y2FzZSA1OlFrKGEsdWssdmspO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IocCgzMjkpKTt9fX1FayhhLEIoKSk7cmV0dXJuIGEuY2FsbGJhY2tOb2RlPT09Yz9Iay5iaW5kKG51bGwsYSk6bnVsbH1cbmZ1bmN0aW9uIE9rKGEsYil7dmFyIGM9dGs7YS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkJiYoTGsoYSxiKS5mbGFnc3w9MjU2KTthPUprKGEsYik7MiE9PWEmJihiPXVrLHVrPWMsbnVsbCE9PWImJkdqKGIpKTtyZXR1cm4gYX1mdW5jdGlvbiBHaihhKXtudWxsPT09dWs/dWs9YTp1ay5wdXNoLmFwcGx5KHVrLGEpfVxuZnVuY3Rpb24gUGsoYSl7Zm9yKHZhciBiPWE7Oyl7aWYoYi5mbGFncyYxNjM4NCl7dmFyIGM9Yi51cGRhdGVRdWV1ZTtpZihudWxsIT09YyYmKGM9Yy5zdG9yZXMsbnVsbCE9PWMpKWZvcih2YXIgZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdLGY9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e2lmKCFIZShmKCksZSkpcmV0dXJuITF9Y2F0Y2goZyl7cmV0dXJuITF9fX1jPWIuY2hpbGQ7aWYoYi5zdWJ0cmVlRmxhZ3MmMTYzODQmJm51bGwhPT1jKWMucmV0dXJuPWIsYj1jO2Vsc2V7aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuITA7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfX1yZXR1cm4hMH1cbmZ1bmN0aW9uIERrKGEsYil7YiY9fnNrO2ImPX5yazthLnN1c3BlbmRlZExhbmVzfD1iO2EucGluZ2VkTGFuZXMmPX5iO2ZvcihhPWEuZXhwaXJhdGlvblRpbWVzOzA8Yjspe3ZhciBjPTMxLW9jKGIpLGQ9MTw8YzthW2NdPS0xO2ImPX5kfX1mdW5jdGlvbiBGayhhKXtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtJaygpO3ZhciBiPXVjKGEsMCk7aWYoMD09PShiJjEpKXJldHVybiBFayhhLEIoKSksbnVsbDt2YXIgYz1KayhhLGIpO2lmKDAhPT1hLnRhZyYmMj09PWMpe3ZhciBkPXhjKGEpOzAhPT1kJiYoYj1kLGM9T2soYSxkKSl9aWYoMT09PWMpdGhyb3cgYz1xayxMayhhLDApLERrKGEsYiksRWsoYSxCKCkpLGM7aWYoNj09PWMpdGhyb3cgRXJyb3IocCgzNDUpKTthLmZpbmlzaGVkV29yaz1hLmN1cnJlbnQuYWx0ZXJuYXRlO2EuZmluaXNoZWRMYW5lcz1iO1FrKGEsdWssdmspO0VrKGEsQigpKTtyZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFJrKGEsYil7dmFyIGM9SztLfD0xO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e0s9YywwPT09SyYmKEhqPUIoKSs1MDAsZmcmJmpnKCkpfX1mdW5jdGlvbiBTayhhKXtudWxsIT09eGsmJjA9PT14ay50YWcmJjA9PT0oSyY2KSYmSWsoKTt2YXIgYj1LO0t8PTE7dmFyIGM9cGsudHJhbnNpdGlvbixkPUM7dHJ5e2lmKHBrLnRyYW5zaXRpb249bnVsbCxDPTEsYSlyZXR1cm4gYSgpfWZpbmFsbHl7Qz1kLHBrLnRyYW5zaXRpb249YyxLPWIsMD09PShLJjYpJiZqZygpfX1mdW5jdGlvbiBJaigpe2dqPWZqLmN1cnJlbnQ7RShmail9XG5mdW5jdGlvbiBMayhhLGIpe2EuZmluaXNoZWRXb3JrPW51bGw7YS5maW5pc2hlZExhbmVzPTA7dmFyIGM9YS50aW1lb3V0SGFuZGxlOy0xIT09YyYmKGEudGltZW91dEhhbmRsZT0tMSxHZihjKSk7aWYobnVsbCE9PVkpZm9yKGM9WS5yZXR1cm47bnVsbCE9PWM7KXt2YXIgZD1jO3dnKGQpO3N3aXRjaChkLnRhZyl7Y2FzZSAxOmQ9ZC50eXBlLmNoaWxkQ29udGV4dFR5cGVzO251bGwhPT1kJiZ2b2lkIDAhPT1kJiYkZigpO2JyZWFrO2Nhc2UgMzpKaCgpO0UoV2YpO0UoSCk7T2goKTticmVhaztjYXNlIDU6TGgoZCk7YnJlYWs7Y2FzZSA0OkpoKCk7YnJlYWs7Y2FzZSAxMzpFKE0pO2JyZWFrO2Nhc2UgMTk6RShNKTticmVhaztjYXNlIDEwOlJnKGQudHlwZS5fY29udGV4dCk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOklqKCl9Yz1jLnJldHVybn1SPWE7WT1hPXdoKGEuY3VycmVudCxudWxsKTtaPWdqPWI7VD0wO3FrPW51bGw7c2s9cms9aGg9MDt1az10az1udWxsO2lmKG51bGwhPT1XZyl7Zm9yKGI9XG4wO2I8V2cubGVuZ3RoO2IrKylpZihjPVdnW2JdLGQ9Yy5pbnRlcmxlYXZlZCxudWxsIT09ZCl7Yy5pbnRlcmxlYXZlZD1udWxsO3ZhciBlPWQubmV4dCxmPWMucGVuZGluZztpZihudWxsIT09Zil7dmFyIGc9Zi5uZXh0O2YubmV4dD1lO2QubmV4dD1nfWMucGVuZGluZz1kfVdnPW51bGx9cmV0dXJuIGF9XG5mdW5jdGlvbiBOayhhLGIpe2Rve3ZhciBjPVk7dHJ5e1FnKCk7UGguY3VycmVudD1haTtpZihTaCl7Zm9yKHZhciBkPU4ubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZDspe3ZhciBlPWQucXVldWU7bnVsbCE9PWUmJihlLnBlbmRpbmc9bnVsbCk7ZD1kLm5leHR9U2g9ITF9Umg9MDtQPU89Tj1udWxsO1RoPSExO1VoPTA7b2suY3VycmVudD1udWxsO2lmKG51bGw9PT1jfHxudWxsPT09Yy5yZXR1cm4pe1Q9MTtxaz1iO1k9bnVsbDticmVha31hOnt2YXIgZj1hLGc9Yy5yZXR1cm4saD1jLGs9YjtiPVo7aC5mbGFnc3w9MzI3Njg7aWYobnVsbCE9PWsmJlwib2JqZWN0XCI9PT10eXBlb2YgayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGsudGhlbil7dmFyIGw9ayxtPWgscT1tLnRhZztpZigwPT09KG0ubW9kZSYxKSYmKDA9PT1xfHwxMT09PXF8fDE1PT09cSkpe3ZhciByPW0uYWx0ZXJuYXRlO3I/KG0udXBkYXRlUXVldWU9ci51cGRhdGVRdWV1ZSxtLm1lbW9pemVkU3RhdGU9ci5tZW1vaXplZFN0YXRlLFxubS5sYW5lcz1yLmxhbmVzKToobS51cGRhdGVRdWV1ZT1udWxsLG0ubWVtb2l6ZWRTdGF0ZT1udWxsKX12YXIgeT1WaShnKTtpZihudWxsIT09eSl7eS5mbGFncyY9LTI1NztXaSh5LGcsaCxmLGIpO3kubW9kZSYxJiZUaShmLGwsYik7Yj15O2s9bDt2YXIgbj1iLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1uKXt2YXIgdD1uZXcgU2V0O3QuYWRkKGspO2IudXBkYXRlUXVldWU9dH1lbHNlIG4uYWRkKGspO2JyZWFrIGF9ZWxzZXtpZigwPT09KGImMSkpe1RpKGYsbCxiKTt1aigpO2JyZWFrIGF9az1FcnJvcihwKDQyNikpfX1lbHNlIGlmKEkmJmgubW9kZSYxKXt2YXIgSj1WaShnKTtpZihudWxsIT09Sil7MD09PShKLmZsYWdzJjY1NTM2KSYmKEouZmxhZ3N8PTI1Nik7V2koSixnLGgsZixiKTtKZyhLaShrLGgpKTticmVhayBhfX1mPWs9S2koayxoKTs0IT09VCYmKFQ9Mik7bnVsbD09PXRrP3RrPVtmXTp0ay5wdXNoKGYpO2Y9Zztkb3tzd2l0Y2goZi50YWcpe2Nhc2UgMzpmLmZsYWdzfD02NTUzNjtcbmImPS1iO2YubGFuZXN8PWI7dmFyIHg9T2koZixrLGIpO2ZoKGYseCk7YnJlYWsgYTtjYXNlIDE6aD1rO3ZhciB3PWYudHlwZSx1PWYuc3RhdGVOb2RlO2lmKDA9PT0oZi5mbGFncyYxMjgpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIHcuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09dSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIHUuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09U2l8fCFTaS5oYXModSkpKSl7Zi5mbGFnc3w9NjU1MzY7YiY9LWI7Zi5sYW5lc3w9Yjt2YXIgRj1SaShmLGgsYik7ZmgoZixGKTticmVhayBhfX1mPWYucmV0dXJufXdoaWxlKG51bGwhPT1mKX1UayhjKX1jYXRjaChuYSl7Yj1uYTtZPT09YyYmbnVsbCE9PWMmJihZPWM9Yy5yZXR1cm4pO2NvbnRpbnVlfWJyZWFrfXdoaWxlKDEpfWZ1bmN0aW9uIEtrKCl7dmFyIGE9bmsuY3VycmVudDtuay5jdXJyZW50PWFpO3JldHVybiBudWxsPT09YT9haTphfVxuZnVuY3Rpb24gdWooKXtpZigwPT09VHx8Mz09PVR8fDI9PT1UKVQ9NDtudWxsPT09Unx8MD09PShoaCYyNjg0MzU0NTUpJiYwPT09KHJrJjI2ODQzNTQ1NSl8fERrKFIsWil9ZnVuY3Rpb24gSmsoYSxiKXt2YXIgYz1LO0t8PTI7dmFyIGQ9S2soKTtpZihSIT09YXx8WiE9PWIpdms9bnVsbCxMayhhLGIpO2RvIHRyeXtVaygpO2JyZWFrfWNhdGNoKGUpe05rKGEsZSl9d2hpbGUoMSk7UWcoKTtLPWM7bmsuY3VycmVudD1kO2lmKG51bGwhPT1ZKXRocm93IEVycm9yKHAoMjYxKSk7Uj1udWxsO1o9MDtyZXR1cm4gVH1mdW5jdGlvbiBVaygpe2Zvcig7bnVsbCE9PVk7KVZrKFkpfWZ1bmN0aW9uIE1rKCl7Zm9yKDtudWxsIT09WSYmIWNjKCk7KVZrKFkpfWZ1bmN0aW9uIFZrKGEpe3ZhciBiPVdrKGEuYWx0ZXJuYXRlLGEsZ2opO2EubWVtb2l6ZWRQcm9wcz1hLnBlbmRpbmdQcm9wcztudWxsPT09Yj9UayhhKTpZPWI7b2suY3VycmVudD1udWxsfVxuZnVuY3Rpb24gVGsoYSl7dmFyIGI9YTtkb3t2YXIgYz1iLmFsdGVybmF0ZTthPWIucmV0dXJuO2lmKDA9PT0oYi5mbGFncyYzMjc2OCkpe2lmKGM9RmooYyxiLGdqKSxudWxsIT09Yyl7WT1jO3JldHVybn19ZWxzZXtjPUpqKGMsYik7aWYobnVsbCE9PWMpe2MuZmxhZ3MmPTMyNzY3O1k9YztyZXR1cm59aWYobnVsbCE9PWEpYS5mbGFnc3w9MzI3NjgsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsO2Vsc2V7VD02O1k9bnVsbDtyZXR1cm59fWI9Yi5zaWJsaW5nO2lmKG51bGwhPT1iKXtZPWI7cmV0dXJufVk9Yj1hfXdoaWxlKG51bGwhPT1iKTswPT09VCYmKFQ9NSl9ZnVuY3Rpb24gUWsoYSxiLGMpe3ZhciBkPUMsZT1way50cmFuc2l0aW9uO3RyeXtway50cmFuc2l0aW9uPW51bGwsQz0xLFhrKGEsYixjLGQpfWZpbmFsbHl7cGsudHJhbnNpdGlvbj1lLEM9ZH1yZXR1cm4gbnVsbH1cbmZ1bmN0aW9uIFhrKGEsYixjLGQpe2RvIElrKCk7d2hpbGUobnVsbCE9PXhrKTtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMjcpKTtjPWEuZmluaXNoZWRXb3JrO3ZhciBlPWEuZmluaXNoZWRMYW5lcztpZihudWxsPT09YylyZXR1cm4gbnVsbDthLmZpbmlzaGVkV29yaz1udWxsO2EuZmluaXNoZWRMYW5lcz0wO2lmKGM9PT1hLmN1cnJlbnQpdGhyb3cgRXJyb3IocCgxNzcpKTthLmNhbGxiYWNrTm9kZT1udWxsO2EuY2FsbGJhY2tQcmlvcml0eT0wO3ZhciBmPWMubGFuZXN8Yy5jaGlsZExhbmVzO0JjKGEsZik7YT09PVImJihZPVI9bnVsbCxaPTApOzA9PT0oYy5zdWJ0cmVlRmxhZ3MmMjA2NCkmJjA9PT0oYy5mbGFncyYyMDY0KXx8d2t8fCh3az0hMCxHayhoYyxmdW5jdGlvbigpe0lrKCk7cmV0dXJuIG51bGx9KSk7Zj0wIT09KGMuZmxhZ3MmMTU5OTApO2lmKDAhPT0oYy5zdWJ0cmVlRmxhZ3MmMTU5OTApfHxmKXtmPXBrLnRyYW5zaXRpb247cGsudHJhbnNpdGlvbj1udWxsO1xudmFyIGc9QztDPTE7dmFyIGg9SztLfD00O29rLmN1cnJlbnQ9bnVsbDtQaihhLGMpO2VrKGMsYSk7T2UoRGYpO2RkPSEhQ2Y7RGY9Q2Y9bnVsbDthLmN1cnJlbnQ9YztpayhjLGEsZSk7ZGMoKTtLPWg7Qz1nO3BrLnRyYW5zaXRpb249Zn1lbHNlIGEuY3VycmVudD1jO3drJiYod2s9ITEseGs9YSx5az1lKTtmPWEucGVuZGluZ0xhbmVzOzA9PT1mJiYoU2k9bnVsbCk7bWMoYy5zdGF0ZU5vZGUsZCk7RWsoYSxCKCkpO2lmKG51bGwhPT1iKWZvcihkPWEub25SZWNvdmVyYWJsZUVycm9yLGM9MDtjPGIubGVuZ3RoO2MrKyllPWJbY10sZChlLnZhbHVlLHtjb21wb25lbnRTdGFjazplLnN0YWNrLGRpZ2VzdDplLmRpZ2VzdH0pO2lmKFBpKXRocm93IFBpPSExLGE9UWksUWk9bnVsbCxhOzAhPT0oeWsmMSkmJjAhPT1hLnRhZyYmSWsoKTtmPWEucGVuZGluZ0xhbmVzOzAhPT0oZiYxKT9hPT09QWs/emsrKzooems9MCxBaz1hKTp6az0wO2pnKCk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBJaygpe2lmKG51bGwhPT14ayl7dmFyIGE9RGMoeWspLGI9cGsudHJhbnNpdGlvbixjPUM7dHJ5e3BrLnRyYW5zaXRpb249bnVsbDtDPTE2PmE/MTY6YTtpZihudWxsPT09eGspdmFyIGQ9ITE7ZWxzZXthPXhrO3hrPW51bGw7eWs9MDtpZigwIT09KEsmNikpdGhyb3cgRXJyb3IocCgzMzEpKTt2YXIgZT1LO0t8PTQ7Zm9yKFY9YS5jdXJyZW50O251bGwhPT1WOyl7dmFyIGY9VixnPWYuY2hpbGQ7aWYoMCE9PShWLmZsYWdzJjE2KSl7dmFyIGg9Zi5kZWxldGlvbnM7aWYobnVsbCE9PWgpe2Zvcih2YXIgaz0wO2s8aC5sZW5ndGg7aysrKXt2YXIgbD1oW2tdO2ZvcihWPWw7bnVsbCE9PVY7KXt2YXIgbT1WO3N3aXRjaChtLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpRaig4LG0sZil9dmFyIHE9bS5jaGlsZDtpZihudWxsIT09cSlxLnJldHVybj1tLFY9cTtlbHNlIGZvcig7bnVsbCE9PVY7KXttPVY7dmFyIHI9bS5zaWJsaW5nLHk9bS5yZXR1cm47VGoobSk7aWYobT09PVxubCl7Vj1udWxsO2JyZWFrfWlmKG51bGwhPT1yKXtyLnJldHVybj15O1Y9cjticmVha31WPXl9fX12YXIgbj1mLmFsdGVybmF0ZTtpZihudWxsIT09bil7dmFyIHQ9bi5jaGlsZDtpZihudWxsIT09dCl7bi5jaGlsZD1udWxsO2Rve3ZhciBKPXQuc2libGluZzt0LnNpYmxpbmc9bnVsbDt0PUp9d2hpbGUobnVsbCE9PXQpfX1WPWZ9fWlmKDAhPT0oZi5zdWJ0cmVlRmxhZ3MmMjA2NCkmJm51bGwhPT1nKWcucmV0dXJuPWYsVj1nO2Vsc2UgYjpmb3IoO251bGwhPT1WOyl7Zj1WO2lmKDAhPT0oZi5mbGFncyYyMDQ4KSlzd2l0Y2goZi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6UWooOSxmLGYucmV0dXJuKX12YXIgeD1mLnNpYmxpbmc7aWYobnVsbCE9PXgpe3gucmV0dXJuPWYucmV0dXJuO1Y9eDticmVhayBifVY9Zi5yZXR1cm59fXZhciB3PWEuY3VycmVudDtmb3IoVj13O251bGwhPT1WOyl7Zz1WO3ZhciB1PWcuY2hpbGQ7aWYoMCE9PShnLnN1YnRyZWVGbGFncyYyMDY0KSYmbnVsbCE9PVxudSl1LnJldHVybj1nLFY9dTtlbHNlIGI6Zm9yKGc9dztudWxsIT09Vjspe2g9VjtpZigwIT09KGguZmxhZ3MmMjA0OCkpdHJ5e3N3aXRjaChoLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpSaig5LGgpfX1jYXRjaChuYSl7VyhoLGgucmV0dXJuLG5hKX1pZihoPT09Zyl7Vj1udWxsO2JyZWFrIGJ9dmFyIEY9aC5zaWJsaW5nO2lmKG51bGwhPT1GKXtGLnJldHVybj1oLnJldHVybjtWPUY7YnJlYWsgYn1WPWgucmV0dXJufX1LPWU7amcoKTtpZihsYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGxjLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7bGMub25Qb3N0Q29tbWl0RmliZXJSb290KGtjLGEpfWNhdGNoKG5hKXt9ZD0hMH1yZXR1cm4gZH1maW5hbGx5e0M9Yyxway50cmFuc2l0aW9uPWJ9fXJldHVybiExfWZ1bmN0aW9uIFlrKGEsYixjKXtiPUtpKGMsYik7Yj1PaShhLGIsMSk7YT1kaChhLGIsMSk7Yj1MKCk7bnVsbCE9PWEmJihBYyhhLDEsYiksRWsoYSxiKSl9XG5mdW5jdGlvbiBXKGEsYixjKXtpZigzPT09YS50YWcpWWsoYSxhLGMpO2Vsc2UgZm9yKDtudWxsIT09Yjspe2lmKDM9PT1iLnRhZyl7WWsoYixhLGMpO2JyZWFrfWVsc2UgaWYoMT09PWIudGFnKXt2YXIgZD1iLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGQuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09U2l8fCFTaS5oYXMoZCkpKXthPUtpKGMsYSk7YT1SaShiLGEsMSk7Yj1kaChiLGEsMSk7YT1MKCk7bnVsbCE9PWImJihBYyhiLDEsYSksRWsoYixhKSk7YnJlYWt9fWI9Yi5yZXR1cm59fVxuZnVuY3Rpb24gVWkoYSxiLGMpe3ZhciBkPWEucGluZ0NhY2hlO251bGwhPT1kJiZkLmRlbGV0ZShiKTtiPUwoKTthLnBpbmdlZExhbmVzfD1hLnN1c3BlbmRlZExhbmVzJmM7Uj09PWEmJihaJmMpPT09YyYmKDQ9PT1UfHwzPT09VCYmKFomMTMwMDIzNDI0KT09PVomJjUwMD5CKCktZ2s/TGsoYSwwKTpza3w9Yyk7RWsoYSxiKX1mdW5jdGlvbiBaayhhLGIpezA9PT1iJiYoMD09PShhLm1vZGUmMSk/Yj0xOihiPXNjLHNjPDw9MSwwPT09KHNjJjEzMDAyMzQyNCkmJihzYz00MTk0MzA0KSkpO3ZhciBjPUwoKTthPVpnKGEsYik7bnVsbCE9PWEmJihBYyhhLGIsYyksRWsoYSxjKSl9ZnVuY3Rpb24gdmooYSl7dmFyIGI9YS5tZW1vaXplZFN0YXRlLGM9MDtudWxsIT09YiYmKGM9Yi5yZXRyeUxhbmUpO1prKGEsYyl9XG5mdW5jdGlvbiBjayhhLGIpe3ZhciBjPTA7c3dpdGNoKGEudGFnKXtjYXNlIDEzOnZhciBkPWEuc3RhdGVOb2RlO3ZhciBlPWEubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZSYmKGM9ZS5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6ZD1hLnN0YXRlTm9kZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHAoMzE0KSk7fW51bGwhPT1kJiZkLmRlbGV0ZShiKTtaayhhLGMpfXZhciBXaztcbldrPWZ1bmN0aW9uKGEsYixjKXtpZihudWxsIT09YSlpZihhLm1lbW9pemVkUHJvcHMhPT1iLnBlbmRpbmdQcm9wc3x8V2YuY3VycmVudClVZz0hMDtlbHNle2lmKDA9PT0oYS5sYW5lcyZjKSYmMD09PShiLmZsYWdzJjEyOCkpcmV0dXJuIFVnPSExLHpqKGEsYixjKTtVZz0wIT09KGEuZmxhZ3MmMTMxMDcyKT8hMDohMX1lbHNlIFVnPSExLEkmJjAhPT0oYi5mbGFncyYxMDQ4NTc2KSYmdWcoYixuZyxiLmluZGV4KTtiLmxhbmVzPTA7c3dpdGNoKGIudGFnKXtjYXNlIDI6dmFyIGQ9Yi50eXBlO2pqKGEsYik7YT1iLnBlbmRpbmdQcm9wczt2YXIgZT1ZZihiLEguY3VycmVudCk7VGcoYixjKTtlPVhoKG51bGwsYixkLGEsZSxjKTt2YXIgZj1iaSgpO2IuZmxhZ3N8PTE7XCJvYmplY3RcIj09PXR5cGVvZiBlJiZudWxsIT09ZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGUucmVuZGVyJiZ2b2lkIDA9PT1lLiQkdHlwZW9mPyhiLnRhZz0xLGIubWVtb2l6ZWRTdGF0ZT1udWxsLGIudXBkYXRlUXVldWU9XG5udWxsLFpmKGQpPyhmPSEwLGNnKGIpKTpmPSExLGIubWVtb2l6ZWRTdGF0ZT1udWxsIT09ZS5zdGF0ZSYmdm9pZCAwIT09ZS5zdGF0ZT9lLnN0YXRlOm51bGwsYWgoYiksZS51cGRhdGVyPW5oLGIuc3RhdGVOb2RlPWUsZS5fcmVhY3RJbnRlcm5hbHM9YixyaChiLGQsYSxjKSxiPWtqKG51bGwsYixkLCEwLGYsYykpOihiLnRhZz0wLEkmJmYmJnZnKGIpLFlpKG51bGwsYixlLGMpLGI9Yi5jaGlsZCk7cmV0dXJuIGI7Y2FzZSAxNjpkPWIuZWxlbWVudFR5cGU7YTp7amooYSxiKTthPWIucGVuZGluZ1Byb3BzO2U9ZC5faW5pdDtkPWUoZC5fcGF5bG9hZCk7Yi50eXBlPWQ7ZT1iLnRhZz0kayhkKTthPUxnKGQsYSk7c3dpdGNoKGUpe2Nhc2UgMDpiPWRqKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE6Yj1paihudWxsLGIsZCxhLGMpO2JyZWFrIGE7Y2FzZSAxMTpiPVppKG51bGwsYixkLGEsYyk7YnJlYWsgYTtjYXNlIDE0OmI9YWoobnVsbCxiLGQsTGcoZC50eXBlLGEpLGMpO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgzMDYsXG5kLFwiXCIpKTt9cmV0dXJuIGI7Y2FzZSAwOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLGRqKGEsYixkLGUsYyk7Y2FzZSAxOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLGlqKGEsYixkLGUsYyk7Y2FzZSAzOmE6e2xqKGIpO2lmKG51bGw9PT1hKXRocm93IEVycm9yKHAoMzg3KSk7ZD1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRTdGF0ZTtlPWYuZWxlbWVudDtiaChhLGIpO2doKGIsZCxudWxsLGMpO3ZhciBnPWIubWVtb2l6ZWRTdGF0ZTtkPWcuZWxlbWVudDtpZihmLmlzRGVoeWRyYXRlZClpZihmPXtlbGVtZW50OmQsaXNEZWh5ZHJhdGVkOiExLGNhY2hlOmcuY2FjaGUscGVuZGluZ1N1c3BlbnNlQm91bmRhcmllczpnLnBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXMsdHJhbnNpdGlvbnM6Zy50cmFuc2l0aW9uc30sYi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9XG5mLGIubWVtb2l6ZWRTdGF0ZT1mLGIuZmxhZ3MmMjU2KXtlPUtpKEVycm9yKHAoNDIzKSksYik7Yj1taihhLGIsZCxjLGUpO2JyZWFrIGF9ZWxzZSBpZihkIT09ZSl7ZT1LaShFcnJvcihwKDQyNCkpLGIpO2I9bWooYSxiLGQsYyxlKTticmVhayBhfWVsc2UgZm9yKHlnPUxmKGIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8uZmlyc3RDaGlsZCkseGc9YixJPSEwLHpnPW51bGwsYz1DaChiLG51bGwsZCxjKSxiLmNoaWxkPWM7YzspYy5mbGFncz1jLmZsYWdzJi0zfDQwOTYsYz1jLnNpYmxpbmc7ZWxzZXtJZygpO2lmKGQ9PT1lKXtiPSRpKGEsYixjKTticmVhayBhfVlpKGEsYixkLGMpfWI9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDU6cmV0dXJuIEtoKGIpLG51bGw9PT1hJiZFZyhiKSxkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGY9bnVsbCE9PWE/YS5tZW1vaXplZFByb3BzOm51bGwsZz1lLmNoaWxkcmVuLEVmKGQsZSk/Zz1udWxsOm51bGwhPT1mJiZFZihkLGYpJiYoYi5mbGFnc3w9MzIpLFxuaGooYSxiKSxZaShhLGIsZyxjKSxiLmNoaWxkO2Nhc2UgNjpyZXR1cm4gbnVsbD09PWEmJkVnKGIpLG51bGw7Y2FzZSAxMzpyZXR1cm4gcGooYSxiLGMpO2Nhc2UgNDpyZXR1cm4gSWgoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkPWIucGVuZGluZ1Byb3BzLG51bGw9PT1hP2IuY2hpbGQ9QmgoYixudWxsLGQsYyk6WWkoYSxiLGQsYyksYi5jaGlsZDtjYXNlIDExOnJldHVybiBkPWIudHlwZSxlPWIucGVuZGluZ1Byb3BzLGU9Yi5lbGVtZW50VHlwZT09PWQ/ZTpMZyhkLGUpLFppKGEsYixkLGUsYyk7Y2FzZSA3OnJldHVybiBZaShhLGIsYi5wZW5kaW5nUHJvcHMsYyksYi5jaGlsZDtjYXNlIDg6cmV0dXJuIFlpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIFlpKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTA6YTp7ZD1iLnR5cGUuX2NvbnRleHQ7ZT1iLnBlbmRpbmdQcm9wcztmPWIubWVtb2l6ZWRQcm9wcztcbmc9ZS52YWx1ZTtHKE1nLGQuX2N1cnJlbnRWYWx1ZSk7ZC5fY3VycmVudFZhbHVlPWc7aWYobnVsbCE9PWYpaWYoSGUoZi52YWx1ZSxnKSl7aWYoZi5jaGlsZHJlbj09PWUuY2hpbGRyZW4mJiFXZi5jdXJyZW50KXtiPSRpKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihmPWIuY2hpbGQsbnVsbCE9PWYmJihmLnJldHVybj1iKTtudWxsIT09Zjspe3ZhciBoPWYuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1oKXtnPWYuY2hpbGQ7Zm9yKHZhciBrPWguZmlyc3RDb250ZXh0O251bGwhPT1rOyl7aWYoay5jb250ZXh0PT09ZCl7aWYoMT09PWYudGFnKXtrPWNoKC0xLGMmLWMpO2sudGFnPTI7dmFyIGw9Zi51cGRhdGVRdWV1ZTtpZihudWxsIT09bCl7bD1sLnNoYXJlZDt2YXIgbT1sLnBlbmRpbmc7bnVsbD09PW0/ay5uZXh0PWs6KGsubmV4dD1tLm5leHQsbS5uZXh0PWspO2wucGVuZGluZz1rfX1mLmxhbmVzfD1jO2s9Zi5hbHRlcm5hdGU7bnVsbCE9PWsmJihrLmxhbmVzfD1jKTtTZyhmLnJldHVybixcbmMsYik7aC5sYW5lc3w9YzticmVha31rPWsubmV4dH19ZWxzZSBpZigxMD09PWYudGFnKWc9Zi50eXBlPT09Yi50eXBlP251bGw6Zi5jaGlsZDtlbHNlIGlmKDE4PT09Zi50YWcpe2c9Zi5yZXR1cm47aWYobnVsbD09PWcpdGhyb3cgRXJyb3IocCgzNDEpKTtnLmxhbmVzfD1jO2g9Zy5hbHRlcm5hdGU7bnVsbCE9PWgmJihoLmxhbmVzfD1jKTtTZyhnLGMsYik7Zz1mLnNpYmxpbmd9ZWxzZSBnPWYuY2hpbGQ7aWYobnVsbCE9PWcpZy5yZXR1cm49ZjtlbHNlIGZvcihnPWY7bnVsbCE9PWc7KXtpZihnPT09Yil7Zz1udWxsO2JyZWFrfWY9Zy5zaWJsaW5nO2lmKG51bGwhPT1mKXtmLnJldHVybj1nLnJldHVybjtnPWY7YnJlYWt9Zz1nLnJldHVybn1mPWd9WWkoYSxiLGUuY2hpbGRyZW4sYyk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgOTpyZXR1cm4gZT1iLnR5cGUsZD1iLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixUZyhiLGMpLGU9VmcoZSksZD1kKGUpLGIuZmxhZ3N8PTEsWWkoYSxiLGQsYyksXG5iLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGQ9Yi50eXBlLGU9TGcoZCxiLnBlbmRpbmdQcm9wcyksZT1MZyhkLnR5cGUsZSksYWooYSxiLGQsZSxjKTtjYXNlIDE1OnJldHVybiBjaihhLGIsYi50eXBlLGIucGVuZGluZ1Byb3BzLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkxnKGQsZSksamooYSxiKSxiLnRhZz0xLFpmKGQpPyhhPSEwLGNnKGIpKTphPSExLFRnKGIsYykscGgoYixkLGUpLHJoKGIsZCxlLGMpLGtqKG51bGwsYixkLCEwLGEsYyk7Y2FzZSAxOTpyZXR1cm4geWooYSxiLGMpO2Nhc2UgMjI6cmV0dXJuIGVqKGEsYixjKX10aHJvdyBFcnJvcihwKDE1NixiLnRhZykpO307ZnVuY3Rpb24gR2soYSxiKXtyZXR1cm4gYWMoYSxiKX1cbmZ1bmN0aW9uIGFsKGEsYixjLGQpe3RoaXMudGFnPWE7dGhpcy5rZXk9Yzt0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsO3RoaXMuaW5kZXg9MDt0aGlzLnJlZj1udWxsO3RoaXMucGVuZGluZ1Byb3BzPWI7dGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGw7dGhpcy5tb2RlPWQ7dGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wO3RoaXMuZGVsZXRpb25zPW51bGw7dGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MDt0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIEJnKGEsYixjLGQpe3JldHVybiBuZXcgYWwoYSxiLGMsZCl9ZnVuY3Rpb24gYmooYSl7YT1hLnByb3RvdHlwZTtyZXR1cm4hKCFhfHwhYS5pc1JlYWN0Q29tcG9uZW50KX1cbmZ1bmN0aW9uICRrKGEpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBiaihhKT8xOjA7aWYodm9pZCAwIT09YSYmbnVsbCE9PWEpe2E9YS4kJHR5cGVvZjtpZihhPT09RGEpcmV0dXJuIDExO2lmKGE9PT1HYSlyZXR1cm4gMTR9cmV0dXJuIDJ9XG5mdW5jdGlvbiB3aChhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO251bGw9PT1jPyhjPUJnKGEudGFnLGIsYS5rZXksYS5tb2RlKSxjLmVsZW1lbnRUeXBlPWEuZWxlbWVudFR5cGUsYy50eXBlPWEudHlwZSxjLnN0YXRlTm9kZT1hLnN0YXRlTm9kZSxjLmFsdGVybmF0ZT1hLGEuYWx0ZXJuYXRlPWMpOihjLnBlbmRpbmdQcm9wcz1iLGMudHlwZT1hLnR5cGUsYy5mbGFncz0wLGMuc3VidHJlZUZsYWdzPTAsYy5kZWxldGlvbnM9bnVsbCk7Yy5mbGFncz1hLmZsYWdzJjE0NjgwMDY0O2MuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXM7Yy5sYW5lcz1hLmxhbmVzO2MuY2hpbGQ9YS5jaGlsZDtjLm1lbW9pemVkUHJvcHM9YS5tZW1vaXplZFByb3BzO2MubWVtb2l6ZWRTdGF0ZT1hLm1lbW9pemVkU3RhdGU7Yy51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlO2I9YS5kZXBlbmRlbmNpZXM7Yy5kZXBlbmRlbmNpZXM9bnVsbD09PWI/bnVsbDp7bGFuZXM6Yi5sYW5lcyxmaXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHR9O1xuYy5zaWJsaW5nPWEuc2libGluZztjLmluZGV4PWEuaW5kZXg7Yy5yZWY9YS5yZWY7cmV0dXJuIGN9XG5mdW5jdGlvbiB5aChhLGIsYyxkLGUsZil7dmFyIGc9MjtkPWE7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGEpYmooYSkmJihnPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXR5cGVvZiBhKWc9NTtlbHNlIGE6c3dpdGNoKGEpe2Nhc2UgeWE6cmV0dXJuIEFoKGMuY2hpbGRyZW4sZSxmLGIpO2Nhc2UgemE6Zz04O2V8PTg7YnJlYWs7Y2FzZSBBYTpyZXR1cm4gYT1CZygxMixjLGIsZXwyKSxhLmVsZW1lbnRUeXBlPUFhLGEubGFuZXM9ZixhO2Nhc2UgRWE6cmV0dXJuIGE9QmcoMTMsYyxiLGUpLGEuZWxlbWVudFR5cGU9RWEsYS5sYW5lcz1mLGE7Y2FzZSBGYTpyZXR1cm4gYT1CZygxOSxjLGIsZSksYS5lbGVtZW50VHlwZT1GYSxhLmxhbmVzPWYsYTtjYXNlIElhOnJldHVybiBxaihjLGUsZixiKTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSYmbnVsbCE9PWEpc3dpdGNoKGEuJCR0eXBlb2Ype2Nhc2UgQmE6Zz0xMDticmVhayBhO2Nhc2UgQ2E6Zz05O2JyZWFrIGE7Y2FzZSBEYTpnPTExO1xuYnJlYWsgYTtjYXNlIEdhOmc9MTQ7YnJlYWsgYTtjYXNlIEhhOmc9MTY7ZD1udWxsO2JyZWFrIGF9dGhyb3cgRXJyb3IocCgxMzAsbnVsbD09YT9hOnR5cGVvZiBhLFwiXCIpKTt9Yj1CZyhnLGMsYixlKTtiLmVsZW1lbnRUeXBlPWE7Yi50eXBlPWQ7Yi5sYW5lcz1mO3JldHVybiBifWZ1bmN0aW9uIEFoKGEsYixjLGQpe2E9QmcoNyxhLGQsYik7YS5sYW5lcz1jO3JldHVybiBhfWZ1bmN0aW9uIHFqKGEsYixjLGQpe2E9QmcoMjIsYSxkLGIpO2EuZWxlbWVudFR5cGU9SWE7YS5sYW5lcz1jO2Euc3RhdGVOb2RlPXtpc0hpZGRlbjohMX07cmV0dXJuIGF9ZnVuY3Rpb24geGgoYSxiLGMpe2E9QmcoNixhLG51bGwsYik7YS5sYW5lcz1jO3JldHVybiBhfVxuZnVuY3Rpb24gemgoYSxiLGMpe2I9QmcoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IubGFuZXM9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiBibChhLGIsYyxkLGUpe3RoaXMudGFnPWI7dGhpcy5jb250YWluZXJJbmZvPWE7dGhpcy5maW5pc2hlZFdvcms9dGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGw7dGhpcy50aW1lb3V0SGFuZGxlPS0xO3RoaXMuY2FsbGJhY2tOb2RlPXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGw7dGhpcy5jYWxsYmFja1ByaW9yaXR5PTA7dGhpcy5ldmVudFRpbWVzPXpjKDApO3RoaXMuZXhwaXJhdGlvblRpbWVzPXpjKC0xKTt0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuZmluaXNoZWRMYW5lcz10aGlzLm11dGFibGVSZWFkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTA7dGhpcy5lbnRhbmdsZW1lbnRzPXpjKDApO3RoaXMuaWRlbnRpZmllclByZWZpeD1kO3RoaXMub25SZWNvdmVyYWJsZUVycm9yPWU7dGhpcy5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhPVxubnVsbH1mdW5jdGlvbiBjbChhLGIsYyxkLGUsZixnLGgsayl7YT1uZXcgYmwoYSxiLGMsaCxrKTsxPT09Yj8oYj0xLCEwPT09ZiYmKGJ8PTgpKTpiPTA7Zj1CZygzLG51bGwsbnVsbCxiKTthLmN1cnJlbnQ9ZjtmLnN0YXRlTm9kZT1hO2YubWVtb2l6ZWRTdGF0ZT17ZWxlbWVudDpkLGlzRGVoeWRyYXRlZDpjLGNhY2hlOm51bGwsdHJhbnNpdGlvbnM6bnVsbCxwZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzOm51bGx9O2FoKGYpO3JldHVybiBhfWZ1bmN0aW9uIGRsKGEsYixjKXt2YXIgZD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6d2Esa2V5Om51bGw9PWQ/bnVsbDpcIlwiK2QsY2hpbGRyZW46YSxjb250YWluZXJJbmZvOmIsaW1wbGVtZW50YXRpb246Y319XG5mdW5jdGlvbiBlbChhKXtpZighYSlyZXR1cm4gVmY7YT1hLl9yZWFjdEludGVybmFsczthOntpZihWYihhKSE9PWF8fDEhPT1hLnRhZyl0aHJvdyBFcnJvcihwKDE3MCkpO3ZhciBiPWE7ZG97c3dpdGNoKGIudGFnKXtjYXNlIDM6Yj1iLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGE7Y2FzZSAxOmlmKFpmKGIudHlwZSkpe2I9Yi5zdGF0ZU5vZGUuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ7YnJlYWsgYX19Yj1iLnJldHVybn13aGlsZShudWxsIT09Yik7dGhyb3cgRXJyb3IocCgxNzEpKTt9aWYoMT09PWEudGFnKXt2YXIgYz1hLnR5cGU7aWYoWmYoYykpcmV0dXJuIGJnKGEsYyxiKX1yZXR1cm4gYn1cbmZ1bmN0aW9uIGZsKGEsYixjLGQsZSxmLGcsaCxrKXthPWNsKGMsZCwhMCxhLGUsZixnLGgsayk7YS5jb250ZXh0PWVsKG51bGwpO2M9YS5jdXJyZW50O2Q9TCgpO2U9bGgoYyk7Zj1jaChkLGUpO2YuY2FsbGJhY2s9dm9pZCAwIT09YiYmbnVsbCE9PWI/YjpudWxsO2RoKGMsZixlKTthLmN1cnJlbnQubGFuZXM9ZTtBYyhhLGUsZCk7RWsoYSxkKTtyZXR1cm4gYX1mdW5jdGlvbiBnbChhLGIsYyxkKXt2YXIgZT1iLmN1cnJlbnQsZj1MKCksZz1saChlKTtjPWVsKGMpO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9Y2goZixnKTtiLnBheWxvYWQ9e2VsZW1lbnQ6YX07ZD12b2lkIDA9PT1kP251bGw6ZDtudWxsIT09ZCYmKGIuY2FsbGJhY2s9ZCk7YT1kaChlLGIsZyk7bnVsbCE9PWEmJihtaChhLGUsZyxmKSxlaChhLGUsZykpO3JldHVybiBnfVxuZnVuY3Rpb24gaGwoYSl7YT1hLmN1cnJlbnQ7aWYoIWEuY2hpbGQpcmV0dXJuIG51bGw7c3dpdGNoKGEuY2hpbGQudGFnKXtjYXNlIDU6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlO2RlZmF1bHQ6cmV0dXJuIGEuY2hpbGQuc3RhdGVOb2RlfX1mdW5jdGlvbiBpbChhLGIpe2E9YS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1hJiZudWxsIT09YS5kZWh5ZHJhdGVkKXt2YXIgYz1hLnJldHJ5TGFuZTthLnJldHJ5TGFuZT0wIT09YyYmYzxiP2M6Yn19ZnVuY3Rpb24gamwoYSxiKXtpbChhLGIpOyhhPWEuYWx0ZXJuYXRlKSYmaWwoYSxiKX1mdW5jdGlvbiBrbCgpe3JldHVybiBudWxsfXZhciBsbD1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oYSl7Y29uc29sZS5lcnJvcihhKX07ZnVuY3Rpb24gbWwoYSl7dGhpcy5faW50ZXJuYWxSb290PWF9XG5ubC5wcm90b3R5cGUucmVuZGVyPW1sLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGw9PT1iKXRocm93IEVycm9yKHAoNDA5KSk7Z2woYSxiLG51bGwsbnVsbCl9O25sLnByb3RvdHlwZS51bm1vdW50PW1sLnByb3RvdHlwZS51bm1vdW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5faW50ZXJuYWxSb290O2lmKG51bGwhPT1hKXt0aGlzLl9pbnRlcm5hbFJvb3Q9bnVsbDt2YXIgYj1hLmNvbnRhaW5lckluZm87U2soZnVuY3Rpb24oKXtnbChudWxsLGEsbnVsbCxudWxsKX0pO2JbdWZdPW51bGx9fTtmdW5jdGlvbiBubChhKXt0aGlzLl9pbnRlcm5hbFJvb3Q9YX1cbm5sLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihhKXtpZihhKXt2YXIgYj1IYygpO2E9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDphLHByaW9yaXR5OmJ9O2Zvcih2YXIgYz0wO2M8UWMubGVuZ3RoJiYwIT09YiYmYjxRY1tjXS5wcmlvcml0eTtjKyspO1FjLnNwbGljZShjLDAsYSk7MD09PWMmJlZjKGEpfX07ZnVuY3Rpb24gb2woYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUpfWZ1bmN0aW9uIHBsKGEpe3JldHVybiEoIWF8fDEhPT1hLm5vZGVUeXBlJiY5IT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlJiYoOCE9PWEubm9kZVR5cGV8fFwiIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlIFwiIT09YS5ub2RlVmFsdWUpKX1mdW5jdGlvbiBxbCgpe31cbmZ1bmN0aW9uIHJsKGEsYixjLGQsZSl7aWYoZSl7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBmPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWhsKGcpO2YuY2FsbChhKX19dmFyIGc9ZmwoYixkLGEsMCxudWxsLCExLCExLFwiXCIscWwpO2EuX3JlYWN0Um9vdENvbnRhaW5lcj1nO2FbdWZdPWcuY3VycmVudDtzZig4PT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YSk7U2soKTtyZXR1cm4gZ31mb3IoO2U9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoZSk7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBoPWQ7ZD1mdW5jdGlvbigpe3ZhciBhPWhsKGspO2guY2FsbChhKX19dmFyIGs9Y2woYSwwLCExLG51bGwsbnVsbCwhMSwhMSxcIlwiLHFsKTthLl9yZWFjdFJvb3RDb250YWluZXI9azthW3VmXT1rLmN1cnJlbnQ7c2YoOD09PWEubm9kZVR5cGU/YS5wYXJlbnROb2RlOmEpO1NrKGZ1bmN0aW9uKCl7Z2woYixrLGMsZCl9KTtyZXR1cm4ga31cbmZ1bmN0aW9uIHNsKGEsYixjLGQsZSl7dmFyIGY9Yy5fcmVhY3RSb290Q29udGFpbmVyO2lmKGYpe3ZhciBnPWY7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBoPWU7ZT1mdW5jdGlvbigpe3ZhciBhPWhsKGcpO2guY2FsbChhKX19Z2woYixnLGEsZSl9ZWxzZSBnPXJsKGMsYixhLGUsZCk7cmV0dXJuIGhsKGcpfUVjPWZ1bmN0aW9uKGEpe3N3aXRjaChhLnRhZyl7Y2FzZSAzOnZhciBiPWEuc3RhdGVOb2RlO2lmKGIuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCl7dmFyIGM9dGMoYi5wZW5kaW5nTGFuZXMpOzAhPT1jJiYoQ2MoYixjfDEpLEVrKGIsQigpKSwwPT09KEsmNikmJihIaj1CKCkrNTAwLGpnKCkpKX1icmVhaztjYXNlIDEzOlNrKGZ1bmN0aW9uKCl7dmFyIGI9WmcoYSwxKTtpZihudWxsIT09Yil7dmFyIGM9TCgpO21oKGIsYSwxLGMpfX0pLGpsKGEsMSl9fTtcbkZjPWZ1bmN0aW9uKGEpe2lmKDEzPT09YS50YWcpe3ZhciBiPVpnKGEsMTM0MjE3NzI4KTtpZihudWxsIT09Yil7dmFyIGM9TCgpO21oKGIsYSwxMzQyMTc3MjgsYyl9amwoYSwxMzQyMTc3MjgpfX07R2M9ZnVuY3Rpb24oYSl7aWYoMTM9PT1hLnRhZyl7dmFyIGI9bGgoYSksYz1aZyhhLGIpO2lmKG51bGwhPT1jKXt2YXIgZD1MKCk7bWgoYyxhLGIsZCl9amwoYSxiKX19O0hjPWZ1bmN0aW9uKCl7cmV0dXJuIEN9O0ljPWZ1bmN0aW9uKGEsYil7dmFyIGM9Qzt0cnl7cmV0dXJuIEM9YSxiKCl9ZmluYWxseXtDPWN9fTtcbnliPWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYil7Y2FzZSBcImlucHV0XCI6YmIoYSxjKTtiPWMubmFtZTtpZihcInJhZGlvXCI9PT1jLnR5cGUmJm51bGwhPWIpe2ZvcihjPWE7Yy5wYXJlbnROb2RlOyljPWMucGFyZW50Tm9kZTtjPWMucXVlcnlTZWxlY3RvckFsbChcImlucHV0W25hbWU9XCIrSlNPTi5zdHJpbmdpZnkoXCJcIitiKSsnXVt0eXBlPVwicmFkaW9cIl0nKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdO2lmKGQhPT1hJiZkLmZvcm09PT1hLmZvcm0pe3ZhciBlPURiKGQpO2lmKCFlKXRocm93IEVycm9yKHAoOTApKTtXYShkKTtiYihkLGUpfX19YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6aWIoYSxjKTticmVhaztjYXNlIFwic2VsZWN0XCI6Yj1jLnZhbHVlLG51bGwhPWImJmZiKGEsISFjLm11bHRpcGxlLGIsITEpfX07R2I9Ums7SGI9U2s7XG52YXIgdGw9e3VzaW5nQ2xpZW50RW50cnlQb2ludDohMSxFdmVudHM6W0NiLHVlLERiLEViLEZiLFJrXX0sdWw9e2ZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOldjLGJ1bmRsZVR5cGU6MCx2ZXJzaW9uOlwiMTguMi4wXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifTtcbnZhciB2bD17YnVuZGxlVHlwZTp1bC5idW5kbGVUeXBlLHZlcnNpb246dWwudmVyc2lvbixyZW5kZXJlclBhY2thZ2VOYW1lOnVsLnJlbmRlcmVyUGFja2FnZU5hbWUscmVuZGVyZXJDb25maWc6dWwucmVuZGVyZXJDb25maWcsb3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGg6bnVsbCxvdmVycmlkZVByb3BzUmVuYW1lUGF0aDpudWxsLHNldEVycm9ySGFuZGxlcjpudWxsLHNldFN1c3BlbnNlSGFuZGxlcjpudWxsLHNjaGVkdWxlVXBkYXRlOm51bGwsY3VycmVudERpc3BhdGNoZXJSZWY6dWEuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixmaW5kSG9zdEluc3RhbmNlQnlGaWJlcjpmdW5jdGlvbihhKXthPVpiKGEpO3JldHVybiBudWxsPT09YT9udWxsOmEuc3RhdGVOb2RlfSxmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTp1bC5maW5kRmliZXJCeUhvc3RJbnN0YW5jZXx8XG5rbCxmaW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2g6bnVsbCxzY2hlZHVsZVJlZnJlc2g6bnVsbCxzY2hlZHVsZVJvb3Q6bnVsbCxzZXRSZWZyZXNoSGFuZGxlcjpudWxsLGdldEN1cnJlbnRGaWJlcjpudWxsLHJlY29uY2lsZXJWZXJzaW9uOlwiMTguMi4wLW5leHQtOWUzYjc3MmI4LTIwMjIwNjA4XCJ9O2lmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKXt2YXIgd2w9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKCF3bC5pc0Rpc2FibGVkJiZ3bC5zdXBwb3J0c0ZpYmVyKXRyeXtrYz13bC5pbmplY3QodmwpLGxjPXdsfWNhdGNoKGEpe319ZXhwb3J0cy5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRD10bDtcbmV4cG9ydHMuY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGEsYil7dmFyIGM9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIW9sKGIpKXRocm93IEVycm9yKHAoMjAwKSk7cmV0dXJuIGRsKGEsYixudWxsLGMpfTtleHBvcnRzLmNyZWF0ZVJvb3Q9ZnVuY3Rpb24oYSxiKXtpZighb2woYSkpdGhyb3cgRXJyb3IocCgyOTkpKTt2YXIgYz0hMSxkPVwiXCIsZT1sbDtudWxsIT09YiYmdm9pZCAwIT09YiYmKCEwPT09Yi51bnN0YWJsZV9zdHJpY3RNb2RlJiYoYz0hMCksdm9pZCAwIT09Yi5pZGVudGlmaWVyUHJlZml4JiYoZD1iLmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PWIub25SZWNvdmVyYWJsZUVycm9yJiYoZT1iLm9uUmVjb3ZlcmFibGVFcnJvcikpO2I9Y2woYSwxLCExLG51bGwsbnVsbCxjLCExLGQsZSk7YVt1Zl09Yi5jdXJyZW50O3NmKDg9PT1hLm5vZGVUeXBlP2EucGFyZW50Tm9kZTphKTtyZXR1cm4gbmV3IG1sKGIpfTtcbmV4cG9ydHMuZmluZERPTU5vZGU9ZnVuY3Rpb24oYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZigxPT09YS5ub2RlVHlwZSlyZXR1cm4gYTt2YXIgYj1hLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1iKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5yZW5kZXIpdGhyb3cgRXJyb3IocCgxODgpKTthPU9iamVjdC5rZXlzKGEpLmpvaW4oXCIsXCIpO3Rocm93IEVycm9yKHAoMjY4LGEpKTt9YT1aYihiKTthPW51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGU7cmV0dXJuIGF9O2V4cG9ydHMuZmx1c2hTeW5jPWZ1bmN0aW9uKGEpe3JldHVybiBTayhhKX07ZXhwb3J0cy5oeWRyYXRlPWZ1bmN0aW9uKGEsYixjKXtpZighcGwoYikpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gc2wobnVsbCxhLGIsITAsYyl9O1xuZXhwb3J0cy5oeWRyYXRlUm9vdD1mdW5jdGlvbihhLGIsYyl7aWYoIW9sKGEpKXRocm93IEVycm9yKHAoNDA1KSk7dmFyIGQ9bnVsbCE9YyYmYy5oeWRyYXRlZFNvdXJjZXN8fG51bGwsZT0hMSxmPVwiXCIsZz1sbDtudWxsIT09YyYmdm9pZCAwIT09YyYmKCEwPT09Yy51bnN0YWJsZV9zdHJpY3RNb2RlJiYoZT0hMCksdm9pZCAwIT09Yy5pZGVudGlmaWVyUHJlZml4JiYoZj1jLmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PWMub25SZWNvdmVyYWJsZUVycm9yJiYoZz1jLm9uUmVjb3ZlcmFibGVFcnJvcikpO2I9ZmwoYixudWxsLGEsMSxudWxsIT1jP2M6bnVsbCxlLCExLGYsZyk7YVt1Zl09Yi5jdXJyZW50O3NmKGEpO2lmKGQpZm9yKGE9MDthPGQubGVuZ3RoO2ErKyljPWRbYV0sZT1jLl9nZXRWZXJzaW9uLGU9ZShjLl9zb3VyY2UpLG51bGw9PWIubXV0YWJsZVNvdXJjZUVhZ2VySHlkcmF0aW9uRGF0YT9iLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGE9W2MsZV06Yi5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2goYyxcbmUpO3JldHVybiBuZXcgbmwoYil9O2V4cG9ydHMucmVuZGVyPWZ1bmN0aW9uKGEsYixjKXtpZighcGwoYikpdGhyb3cgRXJyb3IocCgyMDApKTtyZXR1cm4gc2wobnVsbCxhLGIsITEsYyl9O2V4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZT1mdW5jdGlvbihhKXtpZighcGwoYSkpdGhyb3cgRXJyb3IocCg0MCkpO3JldHVybiBhLl9yZWFjdFJvb3RDb250YWluZXI/KFNrKGZ1bmN0aW9uKCl7c2wobnVsbCxudWxsLGEsITEsZnVuY3Rpb24oKXthLl9yZWFjdFJvb3RDb250YWluZXI9bnVsbDthW3VmXT1udWxsfSl9KSwhMCk6ITF9O2V4cG9ydHMudW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXM9Ums7XG5leHBvcnRzLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCFwbChjKSl0aHJvdyBFcnJvcihwKDIwMCkpO2lmKG51bGw9PWF8fHZvaWQgMD09PWEuX3JlYWN0SW50ZXJuYWxzKXRocm93IEVycm9yKHAoMzgpKTtyZXR1cm4gc2woYSxiLGMsITEsZCl9O2V4cG9ydHMudmVyc2lvbj1cIjE4LjIuMC1uZXh0LTllM2I3NzJiOC0yMDIyMDYwOFwiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///799\n')},470:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";eval("\n\nvar m = __webpack_require__(961);\nif (true) {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else { var i; }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNDcwLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFFBQVEsbUJBQU8sQ0FBQyxHQUFXO0FBQzNCLElBQUksSUFBcUM7QUFDekMsRUFBRSxrQkFBa0I7QUFDcEIsRUFBRSxtQkFBbUI7QUFDckIsRUFBRSxLQUFLLFVBa0JOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanM/ZTQ2MyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBtID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBtLmNyZWF0ZVJvb3Q7XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBtLmh5ZHJhdGVSb290O1xufSBlbHNlIHtcbiAgdmFyIGkgPSBtLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuICBleHBvcnRzLmNyZWF0ZVJvb3QgPSBmdW5jdGlvbihjLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5jcmVhdGVSb290KGMsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uKGMsIGgsIG8pIHtcbiAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBtLmh5ZHJhdGVSb290KGMsIGgsIG8pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpLnVzaW5nQ2xpZW50RW50cnlQb2ludCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///470\n")},961:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (false) {}\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (true) {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = __webpack_require__(799);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOTYxLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDLEVBQUUsRUFTMUM7QUFDSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLEVBQUUseUNBQTZEO0FBQy9ELEVBQUUsS0FBSyxFQUVOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQ2Fvc0RCV2VidWkyLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcz9lZjA3Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///961\n")},218:(__unused_webpack_module,exports)=>{"use strict";eval('/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar l=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(a){if(null===a||"object"!==typeof a)return null;a=z&&a[z]||a["@@iterator"];return"function"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,a,b,"setState")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=""+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return"object"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return"object"===typeof a&&null!==a&&null!=a.key?escape(""+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if("undefined"===k||"boolean"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case "string":case "number":h=!0;break;case "object":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=""===d?"."+Q(h,0):d,I(c)?(e="",null!=a&&(e=a.replace(P,"$&/")+"/"),R(c,b,e,"",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?"":(""+c.key).replace(P,"$&/")+"/")+a)),b.push(c)),1;h=0;d=""===d?".":d+":";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),"function"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if("object"===k)throw b=String(a),Error("Objects are not valid as a React child (found: "+("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,"","",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+a+".");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version="18.2.0";\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNhLHFXQUFxVyxjQUFjLDZDQUE2QywyQkFBMkI7QUFDeGMsT0FBTyxxQkFBcUIsU0FBUyxnQ0FBZ0MsaUNBQWlDLDhCQUE4QixzQkFBc0Isa0JBQWtCLGFBQWEsZUFBZSxZQUFZLGtCQUFrQjtBQUN0TyxtQ0FBbUMsNExBQTRMLG1EQUFtRCxvQ0FBb0MsdURBQXVELGNBQWMsd0JBQXdCLGtCQUFrQixhQUFhLGVBQWUsWUFBWSxrQkFBa0I7QUFDL2QsZ0JBQWdCLGlCQUFpQiwwQkFBMEIseURBQXlELGFBQWEsSUFBSTtBQUNySSxrQkFBa0IsVUFBVSxlQUFlLDRIQUE0SCx5QkFBeUIsc0JBQXNCLGFBQWEsdUJBQXVCLElBQUksd0JBQXdCLGFBQWEsNEVBQTRFLE9BQU87QUFDdFgsZ0JBQWdCLE9BQU8sc0VBQXNFLGNBQWMsb0RBQW9ELG1CQUFtQixPQUFPLG1CQUFtQix3Q0FBd0MsWUFBWSxFQUFFLGFBQWEsZ0JBQWdCO0FBQy9SLHNCQUFzQixlQUFlLHlDQUF5QyxTQUFTLGlCQUFpQixlQUFlLGlDQUFpQyxNQUFNLGlDQUFpQyxvQkFBb0IsbUhBQW1ILFNBQVMsMkdBQTJHLElBQUksbUJBQW1CLG9CQUFvQixXQUFXLEtBQUs7QUFDcmYsS0FBSyxlQUFlLGdCQUFnQix5REFBeUQsbUJBQW1CLHdDQUF3Qyx5SUFBeUksOEJBQThCLGtGQUFrRjtBQUNqWixrQkFBa0Isb0JBQW9CLGFBQWEsd0JBQXdCLHVCQUF1QixFQUFFLFNBQVMsY0FBYyxtQkFBbUIsZ0JBQWdCLE1BQU0sbUJBQW1CLHlEQUF5RCxhQUFhLHlEQUF5RCxFQUFFLDBDQUEwQywwQ0FBMEM7QUFDNVksT0FBTyxhQUFhLElBQUksZ0JBQWdCLElBQUksd0VBQXdFLGdCQUFnQixFQUFFLDhCQUE4QixlQUFlLHdCQUF3QixJQUFJLG1CQUFtQixRQUFRLGVBQWUsSUFBSSxFQUFFLFNBQVMscUJBQXFCLHVCQUF1QixTQUFTLE1BQU0sa0JBQWtCLDhGQUE4RixXQUFXLGlCQUFpQixHQUFHLGdCQUFnQjtBQUNsZSxnQkFBZ0IsR0FBRyxxQkFBcUIsR0FBRyxrQkFBa0IsR0FBRyxnQkFBZ0IsR0FBRywwREFBMEQ7QUFDN0ksb0JBQW9CLGlCQUFpQiw0SEFBNEgsVUFBVSxxQ0FBcUMsWUFBWSxzQ0FBc0MsNkJBQTZCLHlEQUF5RCx5RkFBeUYseUJBQXlCLHNCQUFzQixhQUFhO0FBQzdlLFlBQVksSUFBSSx3QkFBd0IsYUFBYSxPQUFPLHNEQUFzRCxxQkFBcUIsYUFBYSxHQUFHLDRIQUE0SCxZQUFZLHVCQUF1QixxQkFBcUIscUJBQXFCLEdBQUcscUJBQXFCLGFBQWEscUJBQXFCLFNBQVMsVUFBVSxpQkFBaUIsWUFBWSxPQUFPO0FBQ2pkLGtCQUFrQixhQUFhLE9BQU8sc0JBQXNCLHNCQUFzQixHQUFHLFlBQVksYUFBYSxPQUFPLHFCQUFxQixxQkFBcUIsV0FBVyxZQUFZLGVBQWUsT0FBTyw4Q0FBOEMsdUJBQXVCLGFBQWEsbUJBQW1CLGdCQUFnQixJQUFJLElBQUksUUFBUSxpQkFBaUIsb0JBQW9CLFlBQVk7QUFDbFksbUJBQW1CLGVBQWUsbUNBQW1DLGtCQUFrQixhQUFhLGdDQUFnQyxxQkFBcUIsY0FBYyx3QkFBd0IsYUFBYSxzQ0FBc0MsaUJBQWlCLGVBQWUsaUNBQWlDLGFBQWEsWUFBWSwwQkFBMEIsMkJBQTJCLGlCQUFpQjtBQUNsWiwwQkFBMEIsZUFBZSwwQ0FBMEMsdUJBQXVCLGVBQWUsdUNBQXVDLGVBQWUsZUFBZSwrQkFBK0Isa0JBQWtCLGlCQUFpQixvQ0FBb0MsY0FBYyxhQUFhLDRCQUE0QixnQkFBZ0IsYUFBYSw4QkFBOEIsNEJBQTRCLGlCQUFpQjtBQUNuYyxxQkFBcUIsWUFBWSxrQ0FBa0MsZUFBZSIsInNvdXJjZXMiOlsid2VicGFjazovL0Nhb3NEQldlYnVpMi8uL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanM/ZDEzOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7dmFyIGw9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksbj1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLHA9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLHE9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLHI9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLHQ9U3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpLHU9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksdj1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksdz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIikseD1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSx5PVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLHo9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIEEoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPXomJmFbel18fGFbXCJAQGl0ZXJhdG9yXCJdO3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbH1cbnZhciBCPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxDPU9iamVjdC5hc3NpZ24sRD17fTtmdW5jdGlvbiBFKGEsYixlKXt0aGlzLnByb3BzPWE7dGhpcy5jb250ZXh0PWI7dGhpcy5yZWZzPUQ7dGhpcy51cGRhdGVyPWV8fEJ9RS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fTtcbkUucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGEsYil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmbnVsbCE9YSl0aHJvdyBFcnJvcihcInNldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLlwiKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsYSxiLFwic2V0U3RhdGVcIil9O0UucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGEpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxhLFwiZm9yY2VVcGRhdGVcIil9O2Z1bmN0aW9uIEYoKXt9Ri5wcm90b3R5cGU9RS5wcm90b3R5cGU7ZnVuY3Rpb24gRyhhLGIsZSl7dGhpcy5wcm9wcz1hO3RoaXMuY29udGV4dD1iO3RoaXMucmVmcz1EO3RoaXMudXBkYXRlcj1lfHxCfXZhciBIPUcucHJvdG90eXBlPW5ldyBGO1xuSC5jb25zdHJ1Y3Rvcj1HO0MoSCxFLnByb3RvdHlwZSk7SC5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgST1BcnJheS5pc0FycmF5LEo9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxLPXtjdXJyZW50Om51bGx9LEw9e2tleTohMCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfTtcbmZ1bmN0aW9uIE0oYSxiLGUpe3ZhciBkLGM9e30saz1udWxsLGg9bnVsbDtpZihudWxsIT1iKWZvcihkIGluIHZvaWQgMCE9PWIucmVmJiYoaD1iLnJlZiksdm9pZCAwIT09Yi5rZXkmJihrPVwiXCIrYi5rZXkpLGIpSi5jYWxsKGIsZCkmJiFMLmhhc093blByb3BlcnR5KGQpJiYoY1tkXT1iW2RdKTt2YXIgZz1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWcpYy5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxnKXtmb3IodmFyIGY9QXJyYXkoZyksbT0wO208ZzttKyspZlttXT1hcmd1bWVudHNbbSsyXTtjLmNoaWxkcmVuPWZ9aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKGQgaW4gZz1hLmRlZmF1bHRQcm9wcyxnKXZvaWQgMD09PWNbZF0mJihjW2RdPWdbZF0pO3JldHVybnskJHR5cGVvZjpsLHR5cGU6YSxrZXk6ayxyZWY6aCxwcm9wczpjLF9vd25lcjpLLmN1cnJlbnR9fVxuZnVuY3Rpb24gTihhLGIpe3JldHVybnskJHR5cGVvZjpsLHR5cGU6YS50eXBlLGtleTpiLHJlZjphLnJlZixwcm9wczphLnByb3BzLF9vd25lcjphLl9vd25lcn19ZnVuY3Rpb24gTyhhKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09bH1mdW5jdGlvbiBlc2NhcGUoYSl7dmFyIGI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9O3JldHVyblwiJFwiK2EucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGEpe3JldHVybiBiW2FdfSl9dmFyIFA9L1xcLysvZztmdW5jdGlvbiBRKGEsYil7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmbnVsbCE9YS5rZXk/ZXNjYXBlKFwiXCIrYS5rZXkpOmIudG9TdHJpbmcoMzYpfVxuZnVuY3Rpb24gUihhLGIsZSxkLGMpe3ZhciBrPXR5cGVvZiBhO2lmKFwidW5kZWZpbmVkXCI9PT1rfHxcImJvb2xlYW5cIj09PWspYT1udWxsO3ZhciBoPSExO2lmKG51bGw9PT1hKWg9ITA7ZWxzZSBzd2l0Y2goayl7Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJudW1iZXJcIjpoPSEwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBsOmNhc2UgbjpoPSEwfX1pZihoKXJldHVybiBoPWEsYz1jKGgpLGE9XCJcIj09PWQ/XCIuXCIrUShoLDApOmQsSShjKT8oZT1cIlwiLG51bGwhPWEmJihlPWEucmVwbGFjZShQLFwiJCYvXCIpK1wiL1wiKSxSKGMsYixlLFwiXCIsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KSk6bnVsbCE9YyYmKE8oYykmJihjPU4oYyxlKyghYy5rZXl8fGgmJmgua2V5PT09Yy5rZXk/XCJcIjooXCJcIitjLmtleSkucmVwbGFjZShQLFwiJCYvXCIpK1wiL1wiKSthKSksYi5wdXNoKGMpKSwxO2g9MDtkPVwiXCI9PT1kP1wiLlwiOmQrXCI6XCI7aWYoSShhKSlmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyl7az1cbmFbZ107dmFyIGY9ZCtRKGssZyk7aCs9UihrLGIsZSxmLGMpfWVsc2UgaWYoZj1BKGEpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmKWZvcihhPWYuY2FsbChhKSxnPTA7IShrPWEubmV4dCgpKS5kb25lOylrPWsudmFsdWUsZj1kK1EoayxnKyspLGgrPVIoayxiLGUsZixjKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1rKXRocm93IGI9U3RyaW5nKGEpLEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PWI/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhhKS5qb2luKFwiLCBcIikrXCJ9XCI6YikrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpO3JldHVybiBofVxuZnVuY3Rpb24gUyhhLGIsZSl7aWYobnVsbD09YSlyZXR1cm4gYTt2YXIgZD1bXSxjPTA7UihhLGQsXCJcIixcIlwiLGZ1bmN0aW9uKGEpe3JldHVybiBiLmNhbGwoZSxhLGMrKyl9KTtyZXR1cm4gZH1mdW5jdGlvbiBUKGEpe2lmKC0xPT09YS5fc3RhdHVzKXt2YXIgYj1hLl9yZXN1bHQ7Yj1iKCk7Yi50aGVuKGZ1bmN0aW9uKGIpe2lmKDA9PT1hLl9zdGF0dXN8fC0xPT09YS5fc3RhdHVzKWEuX3N0YXR1cz0xLGEuX3Jlc3VsdD1ifSxmdW5jdGlvbihiKXtpZigwPT09YS5fc3RhdHVzfHwtMT09PWEuX3N0YXR1cylhLl9zdGF0dXM9MixhLl9yZXN1bHQ9Yn0pOy0xPT09YS5fc3RhdHVzJiYoYS5fc3RhdHVzPTAsYS5fcmVzdWx0PWIpfWlmKDE9PT1hLl9zdGF0dXMpcmV0dXJuIGEuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGEuX3Jlc3VsdDt9XG52YXIgVT17Y3VycmVudDpudWxsfSxWPXt0cmFuc2l0aW9uOm51bGx9LFc9e1JlYWN0Q3VycmVudERpc3BhdGNoZXI6VSxSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzpWLFJlYWN0Q3VycmVudE93bmVyOkt9O2V4cG9ydHMuQ2hpbGRyZW49e21hcDpTLGZvckVhY2g6ZnVuY3Rpb24oYSxiLGUpe1MoYSxmdW5jdGlvbigpe2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlKX0sY291bnQ6ZnVuY3Rpb24oYSl7dmFyIGI9MDtTKGEsZnVuY3Rpb24oKXtiKyt9KTtyZXR1cm4gYn0sdG9BcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gUyhhLGZ1bmN0aW9uKGEpe3JldHVybiBhfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGEpe2lmKCFPKGEpKXRocm93IEVycm9yKFwiUmVhY3QuQ2hpbGRyZW4ub25seSBleHBlY3RlZCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuXCIpO3JldHVybiBhfX07ZXhwb3J0cy5Db21wb25lbnQ9RTtleHBvcnRzLkZyYWdtZW50PXA7XG5leHBvcnRzLlByb2ZpbGVyPXI7ZXhwb3J0cy5QdXJlQ29tcG9uZW50PUc7ZXhwb3J0cy5TdHJpY3RNb2RlPXE7ZXhwb3J0cy5TdXNwZW5zZT13O2V4cG9ydHMuX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRUQ9VztcbmV4cG9ydHMuY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGEsYixlKXtpZihudWxsPT09YXx8dm9pZCAwPT09YSl0aHJvdyBFcnJvcihcIlJlYWN0LmNsb25lRWxlbWVudCguLi4pOiBUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkIFwiK2ErXCIuXCIpO3ZhciBkPUMoe30sYS5wcm9wcyksYz1hLmtleSxrPWEucmVmLGg9YS5fb3duZXI7aWYobnVsbCE9Yil7dm9pZCAwIT09Yi5yZWYmJihrPWIucmVmLGg9Sy5jdXJyZW50KTt2b2lkIDAhPT1iLmtleSYmKGM9XCJcIitiLmtleSk7aWYoYS50eXBlJiZhLnR5cGUuZGVmYXVsdFByb3BzKXZhciBnPWEudHlwZS5kZWZhdWx0UHJvcHM7Zm9yKGYgaW4gYilKLmNhbGwoYixmKSYmIUwuaGFzT3duUHJvcGVydHkoZikmJihkW2ZdPXZvaWQgMD09PWJbZl0mJnZvaWQgMCE9PWc/Z1tmXTpiW2ZdKX12YXIgZj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWYpZC5jaGlsZHJlbj1lO2Vsc2UgaWYoMTxmKXtnPUFycmF5KGYpO1xuZm9yKHZhciBtPTA7bTxmO20rKylnW21dPWFyZ3VtZW50c1ttKzJdO2QuY2hpbGRyZW49Z31yZXR1cm57JCR0eXBlb2Y6bCx0eXBlOmEudHlwZSxrZXk6YyxyZWY6ayxwcm9wczpkLF9vd25lcjpofX07ZXhwb3J0cy5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGEpe2E9eyQkdHlwZW9mOnUsX2N1cnJlbnRWYWx1ZTphLF9jdXJyZW50VmFsdWUyOmEsX3RocmVhZENvdW50OjAsUHJvdmlkZXI6bnVsbCxDb25zdW1lcjpudWxsLF9kZWZhdWx0VmFsdWU6bnVsbCxfZ2xvYmFsTmFtZTpudWxsfTthLlByb3ZpZGVyPXskJHR5cGVvZjp0LF9jb250ZXh0OmF9O3JldHVybiBhLkNvbnN1bWVyPWF9O2V4cG9ydHMuY3JlYXRlRWxlbWVudD1NO2V4cG9ydHMuY3JlYXRlRmFjdG9yeT1mdW5jdGlvbihhKXt2YXIgYj1NLmJpbmQobnVsbCxhKTtiLnR5cGU9YTtyZXR1cm4gYn07ZXhwb3J0cy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX07XG5leHBvcnRzLmZvcndhcmRSZWY9ZnVuY3Rpb24oYSl7cmV0dXJueyQkdHlwZW9mOnYscmVuZGVyOmF9fTtleHBvcnRzLmlzVmFsaWRFbGVtZW50PU87ZXhwb3J0cy5sYXp5PWZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp5LF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6YX0sX2luaXQ6VH19O2V4cG9ydHMubWVtbz1mdW5jdGlvbihhLGIpe3JldHVybnskJHR5cGVvZjp4LHR5cGU6YSxjb21wYXJlOnZvaWQgMD09PWI/bnVsbDpifX07ZXhwb3J0cy5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9Vi50cmFuc2l0aW9uO1YudHJhbnNpdGlvbj17fTt0cnl7YSgpfWZpbmFsbHl7Vi50cmFuc2l0aW9uPWJ9fTtleHBvcnRzLnVuc3RhYmxlX2FjdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKFwiYWN0KC4uLikgaXMgbm90IHN1cHBvcnRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyBvZiBSZWFjdC5cIik7fTtcbmV4cG9ydHMudXNlQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNhbGxiYWNrKGEsYil9O2V4cG9ydHMudXNlQ29udGV4dD1mdW5jdGlvbihhKXtyZXR1cm4gVS5jdXJyZW50LnVzZUNvbnRleHQoYSl9O2V4cG9ydHMudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe307ZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlRGVmZXJyZWRWYWx1ZShhKX07ZXhwb3J0cy51c2VFZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFUuY3VycmVudC51c2VJZCgpfTtleHBvcnRzLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlSW1wZXJhdGl2ZUhhbmRsZShhLGIsZSl9O1xuZXhwb3J0cy51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVS5jdXJyZW50LnVzZUluc2VydGlvbkVmZmVjdChhLGIpfTtleHBvcnRzLnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlTGF5b3V0RWZmZWN0KGEsYil9O2V4cG9ydHMudXNlTWVtbz1mdW5jdGlvbihhLGIpe3JldHVybiBVLmN1cnJlbnQudXNlTWVtbyhhLGIpfTtleHBvcnRzLnVzZVJlZHVjZXI9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlUmVkdWNlcihhLGIsZSl9O2V4cG9ydHMudXNlUmVmPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlUmVmKGEpfTtleHBvcnRzLnVzZVN0YXRlPWZ1bmN0aW9uKGEpe3JldHVybiBVLmN1cnJlbnQudXNlU3RhdGUoYSl9O2V4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oYSxiLGUpe3JldHVybiBVLmN1cnJlbnQudXNlU3luY0V4dGVybmFsU3RvcmUoYSxiLGUpfTtcbmV4cG9ydHMudXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBVLmN1cnJlbnQudXNlVHJhbnNpdGlvbigpfTtleHBvcnRzLnZlcnNpb249XCIxOC4yLjBcIjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///218\n')},526:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n\nif (true) {\n module.exports = __webpack_require__(218);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTI2LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksSUFBcUM7QUFDekMsRUFBRSx5Q0FBeUQ7QUFDM0QsRUFBRSxLQUFLLEVBRU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanM/Y2E3OCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///526\n")},196:(__unused_webpack_module,exports)=>{"use strict";eval('/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nfunction f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if("object"===typeof performance&&"function"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D="function"===typeof setTimeout?setTimeout:null,E="function"===typeof clearTimeout?clearTimeout:null,F="undefined"!==typeof setImmediate?setImmediate:null;\n"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if("function"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();"function"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if("function"===typeof F)S=function(){F(R)};else if("undefined"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTk2LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNhLGdCQUFnQixlQUFlLFVBQVUsT0FBTyxJQUFJLEVBQUUscUJBQXFCLDhCQUE4QixjQUFjLGNBQWMsOEJBQThCLGNBQWMsNEJBQTRCLHFCQUFxQixVQUFVLE9BQU8saUNBQWlDLElBQUksRUFBRSxvQ0FBb0Msa0VBQWtFLHdDQUF3QyxjQUFjO0FBQ25jLGdCQUFnQiw4QkFBOEIseUJBQXlCLHVFQUF1RSxrQkFBa0Isb0JBQW9CLFlBQVksZ0JBQWdCLEtBQUsscUJBQXFCLG9CQUFvQixZQUFZLGtCQUFrQjtBQUM1Uiw0S0FBNEssY0FBYyxlQUFlLFNBQVMsRUFBRSwwQkFBMEIsZ0VBQWdFLFdBQVcsUUFBUSxjQUFjLEtBQUssS0FBSywrQkFBK0IsS0FBSyxXQUFXO0FBQ3hZLGdCQUFnQixLQUFLLG9CQUFvQixLQUFLLFFBQVEsSUFBSSxLQUFLLFdBQVcsMkNBQTJDLEVBQUUsaUJBQWlCLDBCQUEwQixnQkFBZ0Isa0JBQWtCLDZCQUE2Qix5QkFBeUIsa0RBQWtELEtBQUssVUFBVSxPQUFPLHFCQUFxQixLQUFLLFdBQVcsNkJBQTZCLEtBQUssU0FBUyxRQUFRLGlCQUFpQjtBQUMzYSxhQUFhLHdDQUF3QyxhQUFhLGFBQWEsNkJBQTZCLElBQUksU0FBUyxJQUFJLFVBQVUsUUFBUSxxQkFBcUIsVUFBVSxNQUFNLHNDQUFzQyxNQUFNLDZDQUE2QyxtQ0FBbUMsb0JBQW9CLGFBQWEscUJBQXFCLGtCQUFrQixRQUFRLGNBQWMsSUFBSSxjQUFjLGdCQUFnQixlQUFlLDBCQUEwQjtBQUN6ZCw2QkFBNkIsR0FBRyxrQ0FBa0MsR0FBRyw0QkFBNEIsR0FBRywrQkFBK0IsR0FBRywwQkFBMEIsTUFBTSxxQ0FBcUMsR0FBRywrQkFBK0IsYUFBYSxpQkFBaUIsa0NBQWtDLFlBQVk7QUFDelQsK0JBQStCLGFBQWEsdUtBQXVLLHdDQUF3QyxZQUFZLFVBQVUscUNBQXFDLFlBQVksYUFBYSxxQkFBcUIsYUFBYSxVQUFVLDZCQUE2QixNQUFNLFlBQVksUUFBUSxJQUFJLElBQUksV0FBVyxRQUFRLE1BQU0sK0JBQStCO0FBQ2xmLDZCQUE2QixjQUFjLGdDQUFnQyxlQUFlLFVBQVUseUNBQXlDLFlBQVksUUFBUSxJQUFJLElBQUksV0FBVyxRQUFRO0FBQzVMLGlDQUFpQyxpQkFBaUIsNkJBQTZCLCtFQUErRSxVQUFVLGdCQUFnQixNQUFNLGFBQWEsTUFBTSxvQkFBb0IsTUFBTSxhQUFhLE1BQU0sY0FBYyxNQUFNLEdBQUcsNkVBQTZFLHlIQUF5SDtBQUMzZCw0QkFBNEIsR0FBRyw2QkFBNkIsYUFBYSxRQUFRLGtCQUFrQixRQUFRLElBQUksSUFBSSwrQkFBK0IsUUFBUSIsInNvdXJjZXMiOlsid2VicGFjazovL0Nhb3NEQldlYnVpMi8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcz9mODE5Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHNjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG4ndXNlIHN0cmljdCc7ZnVuY3Rpb24gZihhLGIpe3ZhciBjPWEubGVuZ3RoO2EucHVzaChiKTthOmZvcig7MDxjOyl7dmFyIGQ9Yy0xPj4+MSxlPWFbZF07aWYoMDxnKGUsYikpYVtkXT1iLGFbY109ZSxjPWQ7ZWxzZSBicmVhayBhfX1mdW5jdGlvbiBoKGEpe3JldHVybiAwPT09YS5sZW5ndGg/bnVsbDphWzBdfWZ1bmN0aW9uIGsoYSl7aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsO3ZhciBiPWFbMF0sYz1hLnBvcCgpO2lmKGMhPT1iKXthWzBdPWM7YTpmb3IodmFyIGQ9MCxlPWEubGVuZ3RoLHc9ZT4+PjE7ZDx3Oyl7dmFyIG09MiooZCsxKS0xLEM9YVttXSxuPW0rMSx4PWFbbl07aWYoMD5nKEMsYykpbjxlJiYwPmcoeCxDKT8oYVtkXT14LGFbbl09YyxkPW4pOihhW2RdPUMsYVttXT1jLGQ9bSk7ZWxzZSBpZihuPGUmJjA+Zyh4LGMpKWFbZF09eCxhW25dPWMsZD1uO2Vsc2UgYnJlYWsgYX19cmV0dXJuIGJ9XG5mdW5jdGlvbiBnKGEsYil7dmFyIGM9YS5zb3J0SW5kZXgtYi5zb3J0SW5kZXg7cmV0dXJuIDAhPT1jP2M6YS5pZC1iLmlkfWlmKFwib2JqZWN0XCI9PT10eXBlb2YgcGVyZm9ybWFuY2UmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBwZXJmb3JtYW5jZS5ub3cpe3ZhciBsPXBlcmZvcm1hbmNlO2V4cG9ydHMudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHA9RGF0ZSxxPXAubm93KCk7ZXhwb3J0cy51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcC5ub3coKS1xfX12YXIgcj1bXSx0PVtdLHU9MSx2PW51bGwseT0zLHo9ITEsQT0hMSxCPSExLEQ9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpudWxsLEU9XCJmdW5jdGlvblwiPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCxGPVwidW5kZWZpbmVkXCIhPT10eXBlb2Ygc2V0SW1tZWRpYXRlP3NldEltbWVkaWF0ZTpudWxsO1xuXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJnZvaWQgMCE9PW5hdmlnYXRvci5zY2hlZHVsaW5nJiZ2b2lkIDAhPT1uYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZyYmbmF2aWdhdG9yLnNjaGVkdWxpbmcuaXNJbnB1dFBlbmRpbmcuYmluZChuYXZpZ2F0b3Iuc2NoZWR1bGluZyk7ZnVuY3Rpb24gRyhhKXtmb3IodmFyIGI9aCh0KTtudWxsIT09Yjspe2lmKG51bGw9PT1iLmNhbGxiYWNrKWsodCk7ZWxzZSBpZihiLnN0YXJ0VGltZTw9YSlrKHQpLGIuc29ydEluZGV4PWIuZXhwaXJhdGlvblRpbWUsZihyLGIpO2Vsc2UgYnJlYWs7Yj1oKHQpfX1mdW5jdGlvbiBIKGEpe0I9ITE7RyhhKTtpZighQSlpZihudWxsIT09aChyKSlBPSEwLEkoSik7ZWxzZXt2YXIgYj1oKHQpO251bGwhPT1iJiZLKEgsYi5zdGFydFRpbWUtYSl9fVxuZnVuY3Rpb24gSihhLGIpe0E9ITE7QiYmKEI9ITEsRShMKSxMPS0xKTt6PSEwO3ZhciBjPXk7dHJ5e0coYik7Zm9yKHY9aChyKTtudWxsIT09diYmKCEodi5leHBpcmF0aW9uVGltZT5iKXx8YSYmIU0oKSk7KXt2YXIgZD12LmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkKXt2LmNhbGxiYWNrPW51bGw7eT12LnByaW9yaXR5TGV2ZWw7dmFyIGU9ZCh2LmV4cGlyYXRpb25UaW1lPD1iKTtiPWV4cG9ydHMudW5zdGFibGVfbm93KCk7XCJmdW5jdGlvblwiPT09dHlwZW9mIGU/di5jYWxsYmFjaz1lOnY9PT1oKHIpJiZrKHIpO0coYil9ZWxzZSBrKHIpO3Y9aChyKX1pZihudWxsIT09dil2YXIgdz0hMDtlbHNle3ZhciBtPWgodCk7bnVsbCE9PW0mJksoSCxtLnN0YXJ0VGltZS1iKTt3PSExfXJldHVybiB3fWZpbmFsbHl7dj1udWxsLHk9Yyx6PSExfX12YXIgTj0hMSxPPW51bGwsTD0tMSxQPTUsUT0tMTtcbmZ1bmN0aW9uIE0oKXtyZXR1cm4gZXhwb3J0cy51bnN0YWJsZV9ub3coKS1RPFA/ITE6ITB9ZnVuY3Rpb24gUigpe2lmKG51bGwhPT1PKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpO1E9YTt2YXIgYj0hMDt0cnl7Yj1PKCEwLGEpfWZpbmFsbHl7Yj9TKCk6KE49ITEsTz1udWxsKX19ZWxzZSBOPSExfXZhciBTO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBGKVM9ZnVuY3Rpb24oKXtGKFIpfTtlbHNlIGlmKFwidW5kZWZpbmVkXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBUPW5ldyBNZXNzYWdlQ2hhbm5lbCxVPVQucG9ydDI7VC5wb3J0MS5vbm1lc3NhZ2U9UjtTPWZ1bmN0aW9uKCl7VS5wb3N0TWVzc2FnZShudWxsKX19ZWxzZSBTPWZ1bmN0aW9uKCl7RChSLDApfTtmdW5jdGlvbiBJKGEpe089YTtOfHwoTj0hMCxTKCkpfWZ1bmN0aW9uIEsoYSxiKXtMPUQoZnVuY3Rpb24oKXthKGV4cG9ydHMudW5zdGFibGVfbm93KCkpfSxiKX1cbmV4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5PTU7ZXhwb3J0cy51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xO2V4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHk9NDtleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTM7ZXhwb3J0cy51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbDtleHBvcnRzLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTI7ZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihhKXthLmNhbGxiYWNrPW51bGx9O2V4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtBfHx6fHwoQT0hMCxJKEopKX07XG5leHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGEpezA+YXx8MTI1PGE/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiKTpQPTA8YT9NYXRoLmZsb29yKDFFMy9hKTo1fTtleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIHl9O2V4cG9ydHMudW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gaChyKX07ZXhwb3J0cy51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGEpe3N3aXRjaCh5KXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgYj0zO2JyZWFrO2RlZmF1bHQ6Yj15fXZhciBjPXk7eT1iO3RyeXtyZXR1cm4gYSgpfWZpbmFsbHl7eT1jfX07ZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe307XG5leHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAxOmNhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpicmVhaztkZWZhdWx0OmE9M312YXIgYz15O3k9YTt0cnl7cmV0dXJuIGIoKX1maW5hbGx5e3k9Y319O1xuZXhwb3J0cy51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1leHBvcnRzLnVuc3RhYmxlX25vdygpO1wib2JqZWN0XCI9PT10eXBlb2YgYyYmbnVsbCE9PWM/KGM9Yy5kZWxheSxjPVwibnVtYmVyXCI9PT10eXBlb2YgYyYmMDxjP2QrYzpkKTpjPWQ7c3dpdGNoKGEpe2Nhc2UgMTp2YXIgZT0tMTticmVhaztjYXNlIDI6ZT0yNTA7YnJlYWs7Y2FzZSA1OmU9MTA3Mzc0MTgyMzticmVhaztjYXNlIDQ6ZT0xRTQ7YnJlYWs7ZGVmYXVsdDplPTVFM31lPWMrZTthPXtpZDp1KyssY2FsbGJhY2s6Yixwcmlvcml0eUxldmVsOmEsc3RhcnRUaW1lOmMsZXhwaXJhdGlvblRpbWU6ZSxzb3J0SW5kZXg6LTF9O2M+ZD8oYS5zb3J0SW5kZXg9YyxmKHQsYSksbnVsbD09PWgocikmJmE9PT1oKHQpJiYoQj8oRShMKSxMPS0xKTpCPSEwLEsoSCxjLWQpKSk6KGEuc29ydEluZGV4PWUsZihyLGEpLEF8fHp8fChBPSEwLEkoSikpKTtyZXR1cm4gYX07XG5leHBvcnRzLnVuc3RhYmxlX3Nob3VsZFlpZWxkPU07ZXhwb3J0cy51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7dmFyIGI9eTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz15O3k9Yjt0cnl7cmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7eT1jfX19O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///196\n')},851:(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n\nif (true) {\n module.exports = __webpack_require__(196);\n} else {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODUxLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksSUFBcUM7QUFDekMsRUFBRSx5Q0FBNkQ7QUFDL0QsRUFBRSxLQUFLLEVBRU4iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9DYW9zREJXZWJ1aTIvLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzPzk1YjYiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///851\n")}},__webpack_module_cache__={};function __webpack_require__(F){var Q=__webpack_module_cache__[F];if(void 0!==Q)return Q.exports;var U=__webpack_module_cache__[F]={exports:{}};return __webpack_modules__[F](U,U.exports,__webpack_require__),U.exports}__webpack_require__.n=F=>{var Q=F&&F.__esModule?()=>F.default:()=>F;return __webpack_require__.d(Q,{a:Q}),Q},__webpack_require__.d=(F,Q)=>{for(var U in Q)__webpack_require__.o(Q,U)&&!__webpack_require__.o(F,U)&&Object.defineProperty(F,U,{enumerable:!0,get:Q[U]})},__webpack_require__.o=(F,Q)=>Object.prototype.hasOwnProperty.call(F,Q),__webpack_require__.r=F=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(F,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(F,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(445);window.CaosDBWebui2=__webpack_exports__})(); \ No newline at end of file diff --git a/src/core/js/webcaosdb.js b/src/core/js/webcaosdb.js index bfe0eb35c8e72e6493ad273ae0ed5a727019c628..1f7d9991633aedd554a79000ad99f17b06189d73 100644 --- a/src/core/js/webcaosdb.js +++ b/src/core/js/webcaosdb.js @@ -1563,7 +1563,7 @@ var hintMessages = new function () { } // see the other TODO above: why is there a .caosdb-v-message-badge inside the caosdb-v-property-row without a div.caosdb-message - $(entity).find(".caosdb-v-property-row > .caosdb-v-message-badge").addClass("pull-right"); + $(entity).find(".caosdb-v-property-row > .caosdb-v-message-badge").addClass("float-end"); } } diff --git a/src/core/xsl/entity.xsl b/src/core/xsl/entity.xsl index 264136f09828dce4e2ba7d324ff09fc14db5842c..8202ccea2a40d304943556612de40b00931f9648 100644 --- a/src/core/xsl/entity.xsl +++ b/src/core/xsl/entity.xsl @@ -297,6 +297,8 @@ <xsl:param name="value"/> <xsl:param name="reference"/> <xsl:param name="boolean"/> + <xsl:param name="datetime"/> + <xsl:param name="long-text-threshold"/> <xsl:choose> <xsl:when test="normalize-space($value)!=''"> <xsl:choose> @@ -322,23 +324,46 @@ <xsl:value-of select="normalize-space($value)"/> </xsl:element> </xsl:when> - <xsl:otherwise> + <xsl:when test="$datetime='true'"> <xsl:element name="span"> <xsl:attribute name="class"> - <!-- DEPRECATED css class .caosdb-property-text-value - Use - .caosdb-f-property-single-raw-value or introduce new - .caosdb-v-property-text-value --> - <xsl:value-of select="'caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value'"/> + <xsl:value-of select="'caosdb-f-property-single-raw-value caosdb-property-datetime-value caosdb-f-property-datetime-value caosdb-v-property-datetime-value'"/> </xsl:attribute> - <xsl:call-template name="trim"> - <xsl:with-param name="str"> - <xsl:value-of select="$value"/> - </xsl:with-param> - </xsl:call-template> + <xsl:value-of select="$value"/> </xsl:element> + </xsl:when> + <!-- DEPRECATED css class .caosdb-property-text-value - Use + .caosdb-f-property-single-raw-value or introduce new + .caosdb-v-property-text-value --> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="$long-text-threshold != 'DISABLED' and string-length(normalize-space($value))>$long-text-threshold"> + <details> + <span class="caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value"> + <xsl:call-template name="trim"> + <xsl:with-param name="str"> + <xsl:value-of select="$value"/> + </xsl:with-param> + </xsl:call-template> + </span> + <span class="spacer"></span> + <summary><div title="show more"><span class="caosdb-f-property-text-value"><xsl:value-of select="substring(normalize-space($value),0,$long-text-threshold + 1)"/></span></div></summary> + </details> + </xsl:when> + <xsl:otherwise> + <span class="caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value"> + <xsl:call-template name="trim"> + <xsl:with-param name="str"> + <xsl:value-of select="$value"/> + </xsl:with-param> + </xsl:call-template> + </span> + </xsl:otherwise> + </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:when> + <!-- this is for empty values --> <xsl:otherwise> <!-- DEPRECATED css class .caosdb-property-text-value - Use .caosdb-f-property-single-raw-value or introduce new @@ -398,6 +423,12 @@ <xsl:with-param name="boolean"> <xsl:value-of select="../@datatype='LIST<BOOLEAN>'"/> </xsl:with-param> + <xsl:with-param name="datetime"> + <xsl:value-of select="../@datatype='LIST<DATETIME>'"/> + </xsl:with-param> + <xsl:with-param name="long-text-threshold"> + <xsl:value-of select="'${BUILD_LONG_TEXT_PROPERTY_THRESHOLD_LIST}'"/> + </xsl:with-param> </xsl:call-template> </xsl:element> </xsl:for-each> @@ -449,6 +480,12 @@ <xsl:with-param name="boolean"> <xsl:value-of select="@datatype='BOOLEAN'"/> </xsl:with-param> + <xsl:with-param name="datetime"> + <xsl:value-of select="@datatype='DATETIME'"/> + </xsl:with-param> + <xsl:with-param name="long-text-threshold"> + <xsl:value-of select="'${BUILD_LONG_TEXT_PROPERTY_THRESHOLD_SINGLE}'"/> + </xsl:with-param> </xsl:call-template> </xsl:otherwise> </xsl:choose> @@ -516,7 +553,7 @@ <li class="list-group-item caosdb-comments-heading d-flex"> <i class="bi-chat-left-fill" style="margin-right: 1em;"/> <strong class="small">Comments</strong> - <button class="btn btn-sm pull-right caosdb-new-comment-button ms-auto"> + <button class="btn btn-sm float-end caosdb-new-comment-button ms-auto"> <strong>add new comment</strong> </button> </li> diff --git a/src/core/xsl/navbar.xsl b/src/core/xsl/navbar.xsl index 8c53b3bc09dbd9c5f9dd120c7b3b9fb3e483b99f..7c1d8bc897eb1e51344d54cfa81a62e4328b0467 100644 --- a/src/core/xsl/navbar.xsl +++ b/src/core/xsl/navbar.xsl @@ -32,7 +32,7 @@ <li> <a class="dropdown-item"> <xsl:attribute name="href"> - <xsl:value-of select="concat($entitypath, '?all=', normalize-space($entity))"/> + <xsl:value-of select="concat($entitypath, '?query=find%20', normalize-space($entity))"/> <xsl:if test="$paging"> <xsl:value-of select="concat('&P=',$paging)"/> </xsl:if> diff --git a/src/doc/conf.py b/src/doc/conf.py index 85a65a388efebafbd296b8f9d9f70ac072fa1984..0b092979a7dc8c501a439a280d179491e94db6fc 100644 --- a/src/doc/conf.py +++ b/src/doc/conf.py @@ -26,9 +26,9 @@ copyright = '2022, IndiScale GmbH' author = 'Daniel Hornung' # The short X.Y version -version = '0.10.2' +version = '0.11.0' # The full version, including alpha/beta/rc tags -release = '0.10.2-SNAPSHOT' +release = '0.11.0' # -- General configuration --------------------------------------------------- diff --git a/src/doc/extension/display_of_properties.rst b/src/doc/extension/display_of_properties.rst index 29d254c15a8409047ac6087030c4a35093db3ac5..e19b7030b2a93d7c9a5eed772233ccbfa02b145b 100644 --- a/src/doc/extension/display_of_properties.rst +++ b/src/doc/extension/display_of_properties.rst @@ -34,10 +34,10 @@ property, and the names of the roles and/or users from whom it should be hidden. "roles": ["list", "of", "roles"], "users": ["list", "of", "users"] }, - ... + // ... ] }, - ... + // ... } In the same way but using the ``show`` keyword, properties can be hidden for @@ -53,10 +53,10 @@ everyone **but** the specified users/roles: "roles": ["list", "of", "roles"], "users": ["list", "of", "users"] }, - ... + // ... ] }, - ... + // ... } @@ -90,7 +90,7 @@ configured in the same configuration file as above, i.e., in "RecordTypeName": { "order": ["ordered", "list", "of", "properties"] }, - ... + // ... } This ensures that the properties of all entities with the declared types are diff --git a/src/doc/tutorials/edit_mode.rst b/src/doc/tutorials/edit_mode.rst index e638bb6a7a70c485acebc6d568868b2c409bbdd8..ff126a962ce551cea348fab30f2ecc42ffa56623 100644 --- a/src/doc/tutorials/edit_mode.rst +++ b/src/doc/tutorials/edit_mode.rst @@ -8,9 +8,15 @@ Properties in CaosDB. If you have doubts, please have a look at the `data model documentation <https://docs.indiscale.com/caosdb-server/Data-Model.html>`_. +.. contents:: + :local: + +Getting started +--------------- + In usual setups of CaosDB, you have to log in to use the edit mode. Afterwards, you can access it by clicking on the button in the -to panel as shown below: +top menu as shown below: .. image:: edit-mode-button.png :width: 480 @@ -97,42 +103,94 @@ is inserted by clicking ``Save``. .. _new_recordtypes_properties: -Creating new RecordTypes and Properties ---------------------------------------- +Extend your data model: Add RecordTypes and Properties +------------------------------------------------------ -You can extend the data model of your CaosDB by creating new -RecordTypes and Properties directly from the WebUI. This is done by -clicking on the corresponding buttons in the edit mode toolbox: +You can extend the data model of your CaosDB by creating new RecordTypes and Properties directly +from the WebUI. This is done by clicking on the "Create Property" and "Create RecordType" buttons in +the edit mode toolbox: .. image:: edit-mode-toolbox.png :width: 240 :alt: Edit mode toolbox +New RecordType +-------------- + When creating a new RecordType, a RecordType card is added to the -entity panel, similar to the new Record explained above: +entity panel, similar to the "New Record" explained above: .. image:: new-recordtype.png :width: 720 :alt: Create a new RecordType -As above, you can enter a name and a description. You can add parents -and properties by selecting them from the lists in the edit mode -toolbox and dragging them to the respective areas in the new -RecordType. Note that in contrast to Records, the properties of -RecordTypes do not have values. - -When creating a new property name and description can be entered as -above. In addition, the `datatype` can be selected from the CaosDB -datatypes ``TEXT``, ``DOUBLE``, ``INTEGER``, ``DATETIME``, -``BOOLEAN``, ``FILE``, and ``REFERENCE``. See `here -<https://docs.indiscale.com/caosdb-server/specification/Datatype.html>`_ -for more information on the datatypes. You can also choose whether the -new property should have a single value or a list of values. - -.. image:: new-property.png +1. As above, you can enter a name and a description. Don’t reuse existing names, if it can be + avoided. + +2. You can add parent RecordTypes by dragging existing RecordTypes on the “parents†zone above the + “name†field. + + .. image:: img/dnd_parent.png + :width: 720 + :alt: A screen shot of the drag&drop source and target zones in the RecordType edit mode + dialog + + .. note:: + + Adding parents currently (May 2023) does not automatically add the parents’ properties + yet. You will have to do this manually. + +3. Add Properties as described above by selecting them from the lists in the edit mode toolbox and + dragging them to the Property area in the new RecordType. Note that in contrast to Records, the + Properties of RecordTypes do not have values. + +4. Click “Save†to save your newly created Property, or abort with the + “Cancel†button. + +New Property +------------ + +When creating a new Property, a Property card shows up: + +.. image:: img/screenshot_new_property.png :width: 720 :alt: Create a new Property +1. As above, you can enter a name and a description. Don’t reuse existing names, if it can be avoided. + +2. Set the datatype: + + - **TEXT** properties hold short and long strings of text. Newlines + are also allowed. + - **DOUBLE** properties hold numeric floating point values, such as + 3.142. DOUBLE properties may have a unit, you can set the default + unit (for example kg or mm) here. + - **INTEGER** properties hold (signed) integer values such as …, -2, + -1, 0, 1, 2, …, they can have units just like DOUBLE properties. + - **DATETIME** properties are for dates or datetimes (date plus time + of day). LinkAhead does not distinguish between dates and + datetimes, because users can freely decide to enter a time if they + want to. + - **BOOLEAN** properties can be either ``TRUE`` or ``FALSE``. + - **FILE** properties are special, in that they reference a *File* + entity. *Files* are similar to normal *Records*, but do not need a + *RecordType* and are connected to a binary file which is stored + somewhere. + - **REFERENCE** properties are links to other *Records*. You can choose a RecordType to further + specify which Records are accepted as references. + + Inheritance plays a role here! For example, if you select “Experimentâ€, all “Magnetism + Experiment†Records are also accepted (if they inherit from “Experimentâ€). + + See `here <https://docs.indiscale.com/caosdb-server/specification/Datatype.html>`_ for more + information on the datatypes. + +3. If you want the new Property to be a list, check the checkbox. List + Properties can hold many entries of the same datatype. + +4. Click “Save†to save your newly created Property, or abort with the + “Cancel†button. + When creating a property with datatype ``INTEGER`` or ``DOUBLE``, i.e., a number, you may enter a unit in an additional input field if applicable. In case of a ``REFERENCE`` property, you may specify the @@ -146,20 +204,81 @@ values. Again, the new entity is created by clicking on ``save``. leave and re-enter the edit mode for the new entity to appear in the lists of Properties or RecordTypes in the edit mode toolbox. -Deleting an Entity ------------------- +.. rubric:: Save your time! + +It is not alway necessary to create REFERENCE properties: In many cases when editing a +``RecordType``, it’s sufficient to simply drag the target ``RecordType`` into the property +field. For example, you can simply drag “CellLine†into the properties of the +“CellCultureExperimentâ€, this will automatically create a REFERENCE property of type “CellLineâ€. + +Similarly, you can reuse existing non-list properties if you need a list property: Simply click on +the “List†checkbox when adding it to a RecordType, instead of creating list and non-list properties +with the same meaning. + +Of course there are cases where it makes sense to create new REFERENCE properties, notably when you +want to give the reference a special name to denote its meaning. For example, you may want to create +two distinct REFERENCE properties to “Personâ€s, one with the name “experimenterâ€, and one with the +name “authorâ€. These two properties now carry different meanings, and may even be used side by side +in the same RecordType! + +.. _delete-an-entity: + +Delete an Entity (Record, Property, RecordType) +------------------------------------------------- Entities can also be deleted by clicking on the delete button in the -top right of the entity: +top right of the entity, once the Edit Mode has been activated: .. image:: delete-entity-button.png :width: 240 :alt: Delete entity button -After clicking on ``delete`` you'll be asked for confirmation. Note that -entities cannot be deleted if they are needed by other entities, e.g., -as a reference. +After clicking on ``delete`` you'll be asked for confirmation. + +.. note:: + + Entities cannot be deleted if they are needed by other entities, e.g., as a reference. To check + if an entity is in use, you can start a query like this: + + - ``FIND Record WITH myentity`` to check for Property or Record ``myentity`` + - ``FIND Record MyRT`` for RecordType ``MyRT`` + +Make a Property into a list +--------------------------- + +List Properties can hold many entries of the same datatype. If you want +to change if a Property is a list or not, follow these steps: + +1. Find the property you want to change. +2. Activate the *Edit Mode* in the top menu. Now the Property should have a clickable “Edit†button. +3. Click the “Edit†button. A dialog for editing the Property shows up. +4. Click the “list†checkbox to change the status. +5. Click “Save†to save your changes, or abort with the “Cancel†button. + +Add Properties to an existing RecordType +---------------------------------------- + +1. Find the *RecordType* you want to change. +2. Activate the *Edit Mode* in the top menu. Now the RecordType should have a clickable “Edit†+ button. +3. Click the “Edit†button. A dialog for editing the RecordType shows up. +4. You can drag&drop existing Properties and RecordTypes from the toolbox onto the RecordType’s + target area. Note that dragging RecordTypes is similar to explicitly creating a REFERENCE + Property of the same type. +5. Click “Save†to save your changes, or abort with the “Cancel†button. + +Remove Properties from an existing RecordType +--------------------------------------------- + +1. Find the *RecordType* you want to change. +2. Activate the *Edit Mode* in the top menu. Now the RecordType should have a clickable “Edit†+ button. +3. Click the “Edit†button. A dialog for editing the RecordType shows up. +4. Click on the Trash icon |The trash icon.| to remove a Property. The Property as an abstract + Entity still exists, it is simply not a part of this RecordType any more. Removed properties can + be re-added again at any time. +5. Click “Save†to save your changes, or abort with the “Cancel†button. Uploading files --------------- @@ -183,3 +302,7 @@ stored within ``/uploaded.by/<REALM>/<USER>/``. The same is true for properties with data type ``REFERENCE``, too. In that case, the Record of the file that is uploaded will be assigned the RecordType of value of the original reference property. + +.. |The trash icon.| image:: img/trash.png + :width: 20 + :alt: The trash icon. diff --git a/src/doc/tutorials/img/dnd_parent.png b/src/doc/tutorials/img/dnd_parent.png new file mode 100644 index 0000000000000000000000000000000000000000..733d52af9818d824d92b4d621afbf2801261cb57 Binary files /dev/null and b/src/doc/tutorials/img/dnd_parent.png differ diff --git a/src/doc/tutorials/img/dnd_parent.svg b/src/doc/tutorials/img/dnd_parent.svg new file mode 100644 index 0000000000000000000000000000000000000000..01874a5821d446fee3cfba8d54e8522fdaf52fc6 --- /dev/null +++ b/src/doc/tutorials/img/dnd_parent.svg @@ -0,0 +1,12734 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg2" + width="4650.6665" + height="2579.6436" + viewBox="0 0 4650.6665 2579.6436" + sodipodi:docname="dnd_parent.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)" + inkscape:export-filename="/home/daniel/indiscale/management/external/bmpg/management/documentation/data_model/how_to_datamodel/dnd_parent.png" + inkscape:export-xdpi="82.57" + inkscape:export-ydpi="82.57"> + <metadata + id="metadata8"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs6"> + <marker + style="overflow:visible;" + id="Arrow2Mend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mend" + inkscape:isstock="true"> + <path + transform="scale(0.6) rotate(180) translate(0,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#ff0000;stroke-opacity:1;fill:#ff0000;fill-opacity:1" + id="path871" /> + </marker> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter1592" + x="-0.01665878" + width="1.0333176" + y="-0.067401128" + height="1.1348023"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="9.9660127" + id="feGaussianBlur1594" /> + </filter> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1135" + id="namedview4" + showgrid="false" + inkscape:zoom="0.2614679" + inkscape:cx="2325.3333" + inkscape:cy="1578.0647" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g10" /> + <g + inkscape:groupmode="layer" + inkscape:label="Image" + id="g10"> + <image + width="4650.6665" + height="2579.6436" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 +7rvFfX+/v2r8goWL4pijj2zYfv547Z9i1apVVWNHvObwaG9vb9g+BmtzT0/ce+99sXTpsli5amVs +2LAxMplMTJ3aFbNnzY499tg9nv60nSOTyYx6bWPh/bBixWNx9z33xorHVsTatesiTdOYOrUr5s2d +G3vusUfsvPNOI17DeNLKr8exUF+jPPnkU3HPvffG4iVLoru7OzZvzr/35u+wQ+yxx+7xzGc8vSl1 +TZTnHwAAgKETeAUAMIFNymRjVvuMmNU+I57RtWPsO3Ov0rIVGx+Pcx76fXz19v8Xj216oolVAgAA +AAAAAAAAAEBzbe7piYWLLooLFiyMW269LXK5/i8sO23q1Djk4FfEu95xfOy1155Vy6ZMmRIbNmwY +ch3HvOHYuP+BB2rG77rt5q3WvujCi+In//vTeOjhxXXXuf+BB2Lvffbb5v63tp/R8Lpjjo5vfee7 +VWPX/+Wv8cijj8aO8+c3ZB/nL1hUZ79HNWTuwVi/fn1ceNHv4veXXhY33/y32NzTs9X1Z8yYEQe/ +4qA4+sgj4iUv/qcRra1V3g9b8+jy5XHer38bF//ukli8ZMlW191h++3j1Ye9Mo57+1vjaTvvPCL1 +jHWt/HocC/U1Si6Xi99fclmcefY5ccutt201MG6H7bePI494TRz/9rfF9tvPG9G6mvH8d3evj38+ +9q2xZOnSmmUf/9iJccJ73jWkeYs+/8VT4jfnX1Az/oqXvyx+9IPvD2tuAACAiU7gFQAAdW0/ZXb8 +217HxTt3OSY+efNp8f/u/22zSwIAAAAAAAAAAACAUfeHK66Mr3ztm7F8xYoBrb923bpYeOFFsfDC +i+Idxx8XH//YR6O9vT0iIrabMWPEAn7q+dkvzoyf/uwXseKxx0ZtnyPp6CNfG6f91/ejt7e3anzh +ooviA+8/YdjzP/Hkk3HV1ddUjT3zGU+PfZ+/z7DnHqienp74xZlnxY9/8tNYvXr1gLdbvXp1LFh4 +YSxYeGE8Z+9nx8c/dmK8+J9e1PD6Wv390N29Pk4/44dxzrnnbTN0p2j5ihXx81+eFWeefW686Z/f +EJ/4+Meiq6uzoXWNVa3+emz1+oYrScr3//GPh+Kz//GFuO32Owa07fIVK+In//ez+MWZZ8e/vu+9 +8b73vjuy2caeUtzM57+rqzO++fVT4/h3vrfmz4TTz/hRHPTSl8See+4xqDmLrrr6j3XDrubMnh2n +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 +e98TP7BLkj776U9q1syZMe1/+vNf9cS/n0yqBgAAAADA4Ai8AgAAQI/t/r36xprb+t1++fRz9a6p +Z2awIgAAAAAAAAAAAAAAAAAAACBzzjvnbE2cOCGmPRgK6aqrP6na/fuT6q+1tVUfv+ZTamhsTFWJ +wzZjxoy47b/rJxRlJLpoxYUJPW7FhRekuZKBeb1efflLn4+77fqbvq0nn1qZdJ+3/uy2fsNnPvuZ +T8o0E19SmOvHQ0V5ua65+qq42773g5v1izt+OezX2L59h9asXTvsfkaCXB+PuV5fOm3ZulVf/fp1 +chwn4ed0H2/t7e0x28bX1Ojcc5YnVUOu7//Va9bq57+4I6a9vLxMN37zugGfm5eXp+986wa53e6Y +bf/3zRuSPtcBAAAAAAaWGz9tAwAAIGfcvO53er2h/9/OdNtx12pcXnkGKwIAAAAAAAAAAAAAAAAA +AAAyw+1268tfiB/osa+2Vu++/P165LHHE+rriX8/qfdccaXWrH0jlSUO27HHHB23/YGHHtZv7v59 +hqtJj7POOF1FhYUDPmbWzJlavGhhhirq3znLz9LZZ8X+UmLLsvTJz3xe19/4bbW0tAzaz67du/Wx +j1+j226/M+72FRecr9NOOTmp2kbC8fDBD1yhhQvmx912y09/rg//11VavSa5wKo9e/bqnvv+pCuu +/LDOW3GJnnn2+VSUOiLk8ngcCfWl0yOPPqYPfuRj2rJ166CPfX31Gl12+fu1ecuWuNu/9IXPyuPx +JF1Dru7/Nr9fX/rqtbIsK2bbdV+/VuPGVQ3ax8IF83X1VR+LaW9qatZXr/0/2badcD0AAAAAgIHF +xg0DAABgTLMcW//9wvV64dzfy2W4YraPy6vQz4+7Vpc9/YUsVAcAAAAAAAAAAAAAAAAAAICxYF/t +Pv3Ppz+Xsv7OO+dsnXfu2Qk99qwzT9clF63Q3//5r5htB+vr9bkvfFm3TP+5zj7rTM2dM1tVVVVy +u91qbm5RY2OjVq9dqxdeeEk7d+2Keu7hSxbL4/HolVdfS8l7Gqqzl5+pm398i0KhUMy27/3gZj35 +1EpdfNGFmjljhizLUn19g+rq6vT2+vU6fMliveeyS7NQdXJ8Pp/OOfss/eVv/+j3MRdfdGEGKxrY +jdd/Q9u2b9fGTZuj2h3H0X1/+rP+9o9/atnS43TCsmUaX1OtyspKWZalg/X12r17j55auUqvr14j +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 +DTlmsIYcM1iSlJOTo83//KuUlBRlZmYpJzdXubm5cjgcio6OVmxMjJKTW6prly5KSGgS8M8NAAAA +AAAAAAAAAAAAAICGLjMrSxs2bFRKylZlZmUpJydHtm0rJiZGsTExatYsSZ06dVTLFi18fgzLsvT9 +nB+0+KefAjh5cNm2rQ0bN2njxo3albpbubm5ioyMVHx8nBISEtSnVy+/ft7UF2lp+7Vq9WptSUlR +Vla2LMtSTHS082cxu3apsZ9RDnUDBw7wWk9J2Vpjj2nbtjZt3qy//16tvfv2KS8vTxEREYqJjlZS +UlMdPeAoRUdH+/04+QUFWrt2nbZu3abde3YrN/eATNNUbGyMmiY2VbduXdWubZug/6LZvfv2ae3a +9UrZmqLs7Gzl5xcU//x8t25d1aF9u6DMtWtXqlavWatdqbuUmZkl27YVGxuj5s2aqXu3bmrTpnVQ +5vLn+KlPr7fBfn5q4/0RAFDPlQ69smwZsmTLlFyX7Dkv3TMk05Rh2zJsW7LN4n0JvQIANEQEXgEA +AAB+KCosrHBdQkITDRo4QIMq+MfT2tCsWZJGHH9c0B4/FBmGobZt2qhtmzbBHiVkxcXG6pjBgwLW +Lzo6Wr179VTvXj0D1hMAAAAAAAAAAAAAAAAAgEDIzs7RmeMmKGWrZyjOrTffqMsvvdiv/vf95yF9 +NuMLj/rQY4/R1Bef96ifNmacNmzc6FH35Rdxrt+wUd98+53m/DhXmzZtrtI+sTExOuywQzV40NE6 +dsiQKgXU5BcU6KuvZ+nN/76tf/7d4nWbDRs3qle/ww/a62Cfp79fn/Iz9O3TWx9Pe89ju5V//a1P +P5+huXPna+++fZX2bJWcrJEnHK/zzpmg1q1bVWmO6srLy9OML2dqxhcztfKvvw86z+gTR2rC2eM8 +5skvKNARRw1SUVFRca1L58418stYa1tsTIzi4+OVkZFRpp62f3+Ve5Q/Prp366oZn37ssV1eXp7e +n/aRPvpkurZt215hvx+//8bnwKucnBx9Petbfff9HC1ZslT5BQWVbt+4cWMNGzpEp558kgYNPNqn +xyyv/NejQ4f2+mbmjDI1y7L03ew5en/ah1q2fEWl/Vq2aKGTTzpR5507ocbDg3bs3Knpn36ub76d +rS0pKQeda+QJx+u8cyf49TPmtXH81KXX28oE4/kprbbeHwEADUhxYJUl2zJlyJIMUzINSYYM05Bc +YVembcuybHcSVknoFQAADQiBVwAAAIAfCE8HAAAAAAAAAAAAAAAAAACou2JiovXE5Ek6/6LLyoQA +SdILL03VkMGD1L17N596z1+wyGvYVVLTppr00AM+9ayKf7ds0bPPv6TZ38+p9r5Z2dlatPgnLVr8 +kyY/8bQO6ddX48aeqTGnnybDfUF2Ke+894Hefuc97UpNDcTotW7d+g2yLEumaUqStu/YoUcefVzz +Fiysco/tO3bo7Xff1zvvfaDzzp2g22+5SeHh4QGbce68+Xr4kclV/hpv37FDb771jt59f5rOP3eC +brz+WkVEREiSNm3c5HGc1ycJTZp4BF7l5eX53G/Hzl0etb/+XqXb7rjba0heaRERET6FOhUUFOi9 +D6bp9TffVnp6epX3S09P15czv9aXM79W7149devNN2rg0YH9xc1btqQoPz+/+PhOTd2t2+68W38u +WVql/Xfu2qU333pH733woa647BJdefmlatSoUUBnzM7O0QsvvayPPp5+0JCw0nO9+/40ffDhxxp7 +5hjdfuvNionxLaistEAfP3X99VYK/vNTm++PAIAGqPhCQ1u2JRmmLdkqfp8wDMN53zCd6yTZllUm ++AoAgIbCDPYAAAAAAAAAAAAAAAAAAAAAAAAAABAsh/Trp2uvvtKjXlBQoLsn3lflUI7S0tL26/4H +H/a6btJD/1HTxMRq96yKH+fO09jx5/oU5uHN8hUr9elnMyoM83j8yafrdPhKXl6e/v13iyTpt9// +0JnjzqlW2FVptm3r/Q8+1DnnX1ytoKLK+j39zHO6/qZbffoaFxQU6K133tP4cy/Qzl3O4J11Gzb4 +PVcoO5B3wKMWHRXlc7+MjAzl5OQUf7xg4WJddOkVBw0rkqR2bdtUOwTn3y1bNP68C/XUlOf8Oob+ +XrVal115jR6a9Jjy8/N97lOeZVnavPkfSdKfS5Zq7Phzqxx2VVp+fr5emvqqLr3iaqWl7Q/YfGvX +rtO4Cefq3fen+fS6XVRUpI+nf6ox48Zr46ZNfs8T6OOnrr/eBvv5qe33RwBAA2bbkm3Lti3XrV1c +kwzJNGQ4TOdimjJM3ksAAA0PgVcAAAAAAAAAAAAAAAAAAAAAAAAAGrQrL79Uhx92qEd97br1ev6F +l6vd76FJj2rPnj0e9fPPO0fHDjnGpxkPZsHCxbrh5tuUnZ1z8I2r4bJLLgpov1Czdt06rVixUldf +d6MyMjL87rd6zRrdfte9sizLrz6PPfGU3nzrHb/nWbd+g86/6FKlpu7WunX1O/AqbV+aRy0hIcGv +njt3OsPCvpr1ja678Wbl5uZWab8OHdpX63FWrFipCeddpDVr1lZ7xop89Ml0XXH1dcrMygpYzw2b +Nmn9ho265robtWfvXr96/blkqS698uqABMStWPmXLrzkcv3jCrDzx9at23ThJZdr7br1fveqreMn +1AX7+eH9EQBQa2xbki3ZlmSVCrqynasNQzIMQ6ZZKuzKcC0AADQgYcEeAAAAAAAAAAAAAAAAAAAA +AAAAAACCyeFw6PFHJ+nMcRM8wmHeeuddHTd8qNdALG++/uZbzZ7zg0e9a5fOuu3mGwMyb3n70tJ0 +7333V7i+TZvWOm7YUPXq2VPJyS0VFRWlvLw8ZWRkaFdqqlatWq2Vf6/S2rXryuzXsWMHHTd8WIV9 +va2bO2++Ry0mJloDjjqqap9MLVuwaLH++HOJDhw4UKbetUtnDR40UL169VSTxo0VHx+vAwcOKHX3 +bi1Zskzfff+99u/3HtTz08+/aPpnn2v8uLE+zfTp51/o/Q8+rHB969atNHrUSPXq2UMtWrSQZVlK +S0vTjp079etvf+i3335XVnZ28fbbt+/Q9TfdItu2fZqnLti6dZvyCwo86l06d/Kr785dqco9cED3 +/echjxCzTp06atQJI9Sndy81TUxUQWGh0tPTtfmff9W6VXKVH2Pjpk2VBlPFxERr8KCBGnBUf7Vo +3lyJiYkqKCjQ3r17lbJ1mxYsXKRly1d4DVn7/Y8/df2Nt+jN16YqLMz/y0kXLFikZ557oczxFRER +oaP6H6mBRw9Q61atlJDQRA6HQ7tSU7Vp02Z9+9332rhpk9d+a9eu0533/J9eeel5GT4GPWxJSan0 +69evbx8NOWawenTvpsTERNm2rbS0NK1es1YLFy3WX3+v8tgnLW2/rr/pFn360Qdq3LixT3NJgT1+ +6urrbbCfn2C9PwIAGrDi77kt2ZYz4Mq2bRkyJBkyTEkyZLrrli1Dlurvd+oAAHgi8AoAAAAAAAAA +AAAAAAAAAAAAAABAg9e6dSvd93/36M67J5ap27atuyfepxnTP1ZMTHSlPXbtStWkRx/3qIeHh+uJ +yY8qIiIioDO7fTnza6Wl7ff6uPfcdbvGnjlGDofjoH1SU3dr4aLFmvXtd/rt9z906cUXVhpC8+Jz +Uzxqvfod7lFLbpnsddtQ8OXMr8t83LNHD91z1+068gjPz8PtlJNG67ZbbtJzL75UYTDV2++8r3Fn +nSnTNKs1z+7de/Tk0894XRcdHa3bb71JE84eV+H+F5x3rjKzsvTW2+/qrXfeU15eniR5DY2pTxYs +Wuy13q9fX7/6rl27VtM+/kT5+fnFtbZt2uiuO24NSNhNbm6urr/xVq9hQGFhYbr4wvN1zVVXKCoq +qsIeV1x2ibZt265HJz+heQsWeqz//Y8/9cTTz+jeu+7we96vv/m2zMdjTj9NN91wnZo3b1bhPtde +faXmzpuv/zw4SXv37fNYv2jxT/r0sxkaN/bMas+TX1Cg2+64W5mZmR7rOnbsoPsn3qMBR/X3uu/x +xw3X9dderXkLFurBhx9RauruMuu3bduuyU8+rccmPVTtudwCefzUxdfbUHh+gvX+CABAMduWbNsZ +aGU4/2cYkm1KhmnIMA3JNCTbKNkeAIB6rnp/WwYAAAAAAAAAAAAAAAAAAAAAAAAA9dQpJ43WyaNP +9Khv3bpNjz/19EH3v++Bh5SRkeFRv+2WG9W9W9eAzOjN93N+8Fp/4L6JGj9ubJXCPCSpefNmGnvW +GL31xqv6YfYsnXrKyYEcM+QNHjRQH33wTqVhV24xMdG69647dMVll3hd/++WLfrt9z+qPcOjk5/w +Gg4TGxOj999+s9KwK7e42FjdeP21+u/rryguLq7aM9Q1lmXpy5lfeV03bOixfvV+csqz2rZte/HH +xw0fps+mfxiQsCtJeuGlqfp3yxaPekREhP77+iu69eYbKw27cmvdupVeeuFZ3X7rTV7Xv//Bh1q2 +fIXf85Z2843X65GHH6g07MrtuOHD9MlH71e47bMvvKjc3Nxqz/DBtI/096rVHvUjjzhcH73/ToVh +SqUNH3qs3n7zdSUlJXms+3Lm136FxdX08RPqQuH54f0RABA07qAry5IsS7Kt4prkzL4yZMgwDBmm +6VwMQyJQEQDQABB4BQAAAAAAAAAAAAAAAAAAAAAAAAAu9993r1q1Svaof/rZDM1fsKjC/T76ZLoW +//SzR33IMYN1/rnnBHTG8koHqrjFx8frtFN9D+RIbtlS4Y0a+TNWndK2TRs9N+VJNarm53zDddeo +U6eOXtctWbqsWr3++edfza4gnOXZKU+qR4/u1ep32KGH6IVnDx7UVtd9+tkMr6E3vXr2CGjQ3LCh +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 +2tSpOuBT++n4Y4/R9OnT+rS/klRTU6sHHnxIj/3ncb38yitau3bdZh9TXl6uvfbcXUcfdaR2/ehH +ev3c3Xm/vPd6+JFH9X+33KannnparW3xk78d+/Xxj+2t4487Rjvu8MEun7uhoVF3L1igO++6Wy+/ +8qqcc10e92N77alTTj5RH5i/fTdeWc+tfv993XzLbVpw70Itf++9LvedMnly8HfiuGM0o4qwAwwN +37noW3r00X9rw8aNsfb316zRT3/2C/3ge5fkqWebt2r1at140836590LtGz58i73nTplig769AE6 +6cTjux0OuHjJEh1w0Gey2g85+CD99ldX9qrPDQ2N+vCue+T8mfnd71ykU046sVfHffiRx3Tal8/I +ar/owgt0+mlf7NUx+0Jl5VitWbM21tZXgVf9/fXvqZaWFt19z726b+H9euKpp9XU1LTZx0ybOlW7 +776rPvnxffSp/fdTUVFRr5+/sbFRd951t+659z4999zzXf67LEkVFRXab99P6PDDPqO999qz18+b +aZt582Pr2207Twv+eUfWfi0tLfrbtdfrhn/cqBUrVnZ6vP88+mCvAq9a29p0+x136dbbbtcLL77U +5e8SY8rKtP9+++pLp56i7bffLrZt1KhR3fo6DkZ/+du1+uGPrshqP+WkE/Xd71zUZ89z78L7debZ +52a1777brvr7dX+LtXX8+7H11lvpwYULYm3OOd2z4D5dc931euHFl7p87qlTpuiwzxyik086QVMm +T+5N97ttsP28AQAAAAAAAAAAwAiUUSwqGXml5yJ75xTMOc7PvOPmlpbY+qji3n/2DQAAAABAX+g4 +Nm3uENaMLee9l3deMl7eOMnYoF46Cr2yVsY5GWNlrJdRkNQdZHhTOw0AGNrM+Qse4F8zAMDQYYxs +IpFajLWxxGIjL590wQfPySSDtj529KSxsfW5c+fmqScA8qFjgFNxcbGef/pxWWslBUXsl//oJ3r4 +0cd6fGxjjI4/7hh943++vkVBFZHHn3hS193wDz3x5FNqb2/v9XF22flDuuLyy1RVNb3Hj93c+/X2 +4iW65Hs/0Msvv9LjYx/+2c/o4m99U2WlpVnb/u/mW/Xb31+12bCxXA4+6ED94NJLehWMkUtDQ6N+ ++/s/6Mabbt5saEhHiURCR37uCH3jvHNVWto3/UH/eGNJPMRs5w8Mz98POoaMSNLSt15P3b/r7nt0 +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 +/vY79wLVAAAgAElEQVTnP+b8Gtx51905wxOAwcRaqyt+dJkKc4QtvfDiS7r+7zfmoVfSNdden/P7 +Z9ePfkS333zjZsNHJGm/T35C/7j+2pzfn7fdfqdeefW1Th+7z8f2ympraGjUy6+8utnnjTjn9MCD +D8fa5s2do4M+fUCsrb6hQU8//Uy3jytJTzz5VFbbh3basVthV/1l6dJ3dMed/8xqLy0t0YEHfKpH +x8r317+jX/3m9znDrgoLC3X1Vb/T9y+9pFthV5K03bbzdO45Z3U77EqSfvnr3+YMuyouLtb11/xF +3/zGeZsNu5Kkqqrp+uPVf9C3vnl+zu3XXHu9XnwpO/yup37805/Hwq72329f3X3XbX0SduW91/d+ +8MOc20pKSnTLTTfo+GOP2WxQXyKR0MknnaC77rhF4yort7hfg8lhnzlEZaWlWe233Hp77Hewnrr9 +ztyhVkcd+fleH/Mb552rn15x+WbDrqTg79Fdd9zS6b4/+8Uv1dTU1OM+DLafNwAAAAAAAAAAAICk +4CK7xgTTjeXDcKuMxfVf2BUAAAAAAMDmBYXTwXkKJ+eS8i4Z1E/Lp+qkTRjonbkAADAU8S8YAGDo +8eHAzQUDt9QgTgqCr4zSIVc2SDUO2vLaawAY1mZUVenXv/hZzoCXrpx95le1zTZb59z2wosv9bo/ +e+y+m2ZUVfXqsRMnTtCpp5yUc9tzz7/Q6z5l+siHd9E3zju3R4/5n6+flbPoP9On9t9XZ3z5Sz06 +7jlnfVWTJ+e+guB/X36l28epq6vT1X/8c1b7tKlT9etf/Fxjxozp9rG2mjVTl1z8rZzb/nbtdd0+ +DpAv8+bO0VdOPy3ntp/+/Eqtfv/9Ae1PXV2dfn/V1Vnt06dN01W/+02Pvj+33mqWLvved3Nu+9Nf +/trp4/b52N4523MFTXXmuedf0PoNG2JtO3zwg/rohz+cte+/Hnio28d9d9kyrVy1Kqv94/t8rNvH +6Gt1dXX6yplnK5lMZm07/bRTNaasrEfHyvfXP9P7a9boL3+7Jue2X/78J9rvk5/odn96Y9Xq1br2 +uhtybvvtr67Urh/9SI+P+eUvndZpiOel37+sx8fryr6f/Lj+8Ntf5Qxg6o0HH3pYb771ds5tv7ry +p5q//fY9Ot6smTP1x6v/sNmArKGkpKQkZ6DaylWrevQzLJP3PmfgVUFBgQ7/7Gd6dcyDDjxAXzvj +yz16zNQpU/S/V/1eiUQia9vGjTW69fY7enS8wfbzBgAAAAAAAAAAAEixGRfPDYOtgpCr9C1hVwAA +AAAAIJ+8JO9csCSdXNKlz1cYI2OsZK2MzQi9CkOwAAAYagi8AgAMTdEHyxlXV1LqVpLCQVq0kHgF +AP3qnLO/ppKSkh4/rqCgQMd+4aic217678tb2q1e22/fT+Rsf/vtxX1y/HPO+ppsDxP0i4uLdfhh +h3a6PZFI6Jvnn9fjvhQVFemzn8l93Fdffb3bx7n9zn+qrq4uq/3CC85XZeXYHvfrU/vvqx132CGr +/V8PPKTa2toeHw8YaGed+VXNnr1NVntDQ6O++72+DcDZnFtuuyPn9+d3Lv5Wr74/Dzxgf31op52y +2u9b+K9Ovz932nEHlZeXZ7U//sST3X7ehfc/kNW284d20kc/kh149cCD3Q+86qwPnYV09bdXXn1N +nz/6OC1ZsjRr2wfmb9/jQJvB8PXPdO11N6i9vT2rff/99tXBB326x/3pqeuu/7ta29qy2j+1/37a +f799e33c8849R9OnT8tqf/W11/X0M8/2+riZpk+bpl9e+TMVFBT0yfEk6cb/uzln+76f/Hiv34+d +P7STDjm4/7+WA+m4Y4/J2X7Tzbf26njPPve8Vq7MDtrbf79Pavy4cT0+nrVW37yg578HStKOO3xQ +R37+iJzbbr39zh4da7D9vAEAAAAAAAAAAABSTDi92Ht57+S9i81FBgAAAAAAyLvMmuko+Mq7dFC3 +kYyMZGws8CpdRw0AwNBB4BUAYEgLLrIUDN5cagDngy0mHXplbMagjXEbAPSpSZMm6uBPH9jrx++1 +5x4521euyg4BGCgzqqpUVlqa1V6bo4C/p+bMnq2PfHiXXj02V6hLZM89ds8ZtLElx121enW3j3Hb +7Xdktc2bO0ef2r/34SG5whfa2tr05FNP9/qYwEApKizUj3/4g5zbHnzoYS24974B68v/Z+++A6Oo +8/+Pvz6zqfRIaEqRDqLYQaoCAoJdEft5vX31PM9TzzvPu/PuvO7viu28furZe0MpFhCQjkovSlUQ +hJCEhCQ7n98fM7vJMhNIspvsAs/H3bi775n5zCdZduGT5P3Kk089Haj17dNb48ed3eAxL588KVCr +rKysNTwqEolo2JAzAvXFi5eovLy8Ttd8Y1pI4NXJJ6lnzx6BgJhPt23Th8vqFto3e/bcQK2goI1O +OH5Anc5PhR07d2rK61P11W98SxdPujw07KqgoI3u+f1v6h12lAnPf4y1Vk8/G/z7QpJu+37Dwnrq +w1qrZ58PD/C55ebvJjV2bm6ubvrODaH7Hn7kf0mNHfPjH/1ALVu0SMlYklRcUqJ3Zr4buu+mG7+T +1Njf/PpXkzo/0/Tt0zv0329Tp07T7t31D156tpYgqcsuvbTeY0nSGYMHqVvXrg06V5Ku//Y3Q3+z +09Kl72vbtu11HieT3m8AAAAAAAAAAACARKa6YTTqyo1WN4wSdwUAAAAAADJFvGc6HnxVvcn1voph +/J7peOiVY0J/FhgAgExG4BUA4NC2X2KxG7sf218znTgWeiVCrwAglcaMGpXUF8W6deuq/Pz8QL14 +T3Ey00paq9atArU9RfUPNNjfmSOHN/jcXr161rpv3NgxDR63Z88eofXi4ro9B1u2bNWatesC9XPG +j2vwnCTp9NPCg8HmL1iU1LhAUznt1FN09ZVXhO776V2/VFEK3lMOZvPmLVq9Zm2gfu7ECUmNO3jQ +aaH1ue/Nr/WckSOC738VlZVasPDgr+lly1doy5bEIMSCgjbq26e3pPDwxKnTph90XNd1Nee9YIje +8GFD5TjJfdls6ydb9fVvXR+6fe2b/6drrvuyLrp0soaMOEuDhozQt2+4UTPefFuu6wbG6tSxo578 +3yPq3atXveaQSc+/JK1YuVI7duwI1AeecHytfxel0gcfLtNnnwWvf/yA49SrZ+1/x9bVhHPGhf6b +5p2Zs1RZWZnU2L179dK4sQ0PDQozf/5CVVVVBeq9evbUgOP6JzX2cf37q3PnY5IaI9NcfVXw/byi +slLPv/hivcbZt2+fXpvyeqDevn07jRwxrEFzS/bPxjFHH61TTzk5dN+8+QvqNEamvd8AAAAAAAAA +AAAA+7OysrbGL9h1rf9LdgEAAAAAADJEjX7phM0P7pb8dmnHkRMLvDKOF4IV66UGAOAQQOAVAOCQ +t//izQvBUjzoyux3Gw+9AgCkxJAzBiV1vjFGrVuFhEvt2ZPUuMlqlt8sUKtIMqxCkgYPOr3B54Z9 +nmIG9G94MEWrli1D6yUlJXU6/7354YEDw4cNbfCcJKlb1/AwtHXr1yc1LtCUbrv1ZnXs0CFQ37Fz +p+7+9e8a/fphYU6SdObIEUmNe2y3bqGvz7XrguF3MSNqCXKZPWfuQa/3+htTA7UzBg2KBy6GfTxT +p8846LjLlq/Q7t3B4LEzRyT3+ZGk0tK9mjZ9Rug2fcabmj1nrt7/4ENt27b9gOOMH3e2nnv6iQYF +QmXS8y9Js+eEz2fCOeOTmk9dvffevND6xAnnpGT8/Px8jR51VqBeUlqqxUuWJjX2pZdcmNT5YZYs +DZ/TOePHpmT8UWeOTMk4mWLCOeN1VEFBoP7kU8/Ua5xp02eoOOTfWJdefJEikUiD5jbwhAENOq+m +2kKzPly2rE7nZ9r7DQAAAAAAAAAAAJDASLLyQq7cqL+58V+8CwAAAAAAkDFioVc1t3hwt/XCreKB +V4m903ROAwAOFQReAQAObbFvNNcMvbKu/1uYahwXW6w5sYVb2mYMAIedXr16JT1G8+bNA7VUhEtl +oh7duzf43GbNgiFckhSJRNSjAUEoBxt3376KOp3/wQfBIARjjHolMaeYsJCvjRs3JT0u0FRaNG+u +n//sztB9Tz3zrObMDQ8ISZWlSz8I1Iwx6t2rZ9Jjt2ndOlDbsGFjrccf3amTevQIvgfWJfDqjanT +ArURw6sDtMLCtFauXKUtW7YecNx3Z88JrY+sJZyrKZ048AT9828P6oF7/6z27ds1aIxMev4lafXq +NaH1Accdl/R86mL5ipWh9YEnHJ+ya5w48IRarr0iqXFHpiCEbX9r1q4NrZ9y8kkpGb9f374pGSdT +5GRna9KllwTqK1et1vsffFjncZ59/oXQ+mWTgmPXVc+eyb+ma3sd1DVYKtPebwAAAAAAAAAAAICa +vOZQ/2eMazSJWsKuAAAAAABAhrI1+6bj/dPe1zKMJDlGxjgy+wVfxX6xOAAAmSwr3RMAACBZNhZ6 +5breY2Mk43q3NZOtHEdyXRkjWfmhV3yjGgCSkpWVpS6dj0l6nMb8Qtonn36qBQsXacWKldqwcZO2 +fvKJdu/ereLiElVUVKiqqqrRrr2/nOxsderUMeXjtmrVUjnZ2Skft642bAwGDmRlZen7t/0w6bH3 +FBcHaiUlJUmPCzSlMaNHaeI54/XqlNcD+354x0805ZUXlJub2yjX/njDhkAtKytL37np+0mPXbRn +T6BWHPKarWnk8OFav/6jhNoHHy7Tnj171Cok4E6SPvp4g1avCQbzjBk9Kn6/sG1bDTiuv5YtTwwV +mjZ9hq77wjW1zmf2nGDgVf/+/VRYWHjAj6Ox3f+XP+mc8WOTHifTnv+PPv44tN6vX5+k51MXtV8/ +dcFM/WsZa/368GvXRVZWlnqGhMUla+OmzaH13r2TDzOVpJ4pCL7MNFddOVkP/f0fgfqTTz1Tp+C0 +nZ9/rndmvhuoDzr9NB3brVuD5tSyRQu1bNGiQefW1LuWENtPPvm0Tudn2vsNAAAAAAAAAAAAUFOs +IdS61WFX3s8Q83PEAAAAAAAgQ8XCul1XriRHVlJEVlaKeL14xkjGMXJsRFZGrusFfssV/dMAgIxG +4BUA4LBgXddbmSkWeGVkjZUcP/LKGC/fynEkuVLUiG9SA0DyWrZsoUgkku5pBBQXF+vpZ5/Xiy+9 +rFWr16R7OnEtW7ZslHCvZs2apXzM+ti8ZUugVllZqRlvvtUo19tbVtYo4wKN6ad3/kizZs/Rnv1C +OzZs3Kg//eU+3fr97zXKdTdtDgbaVFZWatr0GY1yvYO9PkeOGKZ///fhhJq1VnPfm6dxY88OPeeN +qdMCtZNOPFHt2iWGUp115shA4NXUAwReVVRUaP6CRYH6mSOGH/BjaApTp09PSeBVpj3/YcE5ubm5 +KmzbtlHms79t27cHavn5+TqqoCBl1+japUtoPezvyroqbNtW2Y0QbLljx45ALScnR8ccfXRKxj+6 +U6eUjJNJunbpohHDh2nmrMTQqpdefkV3/PA25eXlHfD8F196WdFoNFC/7NJLGjynZs1T8+/AgoI2 +atasmfbu3ZtQ37FjZ53Oz7T3GwAAAAAAAAAAAKAm67p+6JUrWS/8SrL8KDEAAAAAAMho8dDueOiV +kTWSsUaS10ttjCNF/IeS5EpWwZ9ZBgAgkzjpngAAAEnzF2zxb0bHvyntpRd734uOLdwSbwEAycnP +z0/3FBJYa/XIo4/p7PHn6nd/+H8ZFXYlSfnNGufzlZ+X3uehuLikSa/num6TXg9IhcLCQv3wB7eE +7vvbP/6lFStWNsp19+wpbpRxa3Ow1+fgQacrJyS4Z/acubWe8/obwcCr8eOC4VijR50VqM2bvyAQ +MhazYOEi7du3L1A/c+SIWudSH7179dL61csPuK34YLE6dz4mcO5zz7+o+QsWJj2HTHv+S/cL0pGk +li1aNNZ0AsI+Hy1aNE/pNZrXMl5paWmDx0xVoNH+wv7+TuXz0VjzTrerr7w8UCsuKdFrU9446LnP +Pf9ioNa8eTNNnDC+wfNJZfBp85DnLOx1GybT3m8AAAAAAAAAAACAmryfLbaSa6sbRQm7AgAAAAAA +mc7vnXZdV9aNJvROS1bGGBnHyHEcOU5EjuN4NfqnAQAZjsArAMBhJR5yFQ/Ast43qGW9gKvaNgBA +g6Q7aKmmispKff+223X3b36n4pKmDWCqq7zcvHRPoVGU1TEIATjSTZ50qYacMThQj0aj+sGPfqxo +NPW/QSPTXp/5+fk67bRTA/XZc94LPX779s+0ZOnSQD0s8OqkEweqsG3bhFpVVZXeemdm6NhhIVvN +mzfTKSefFHp8Y8jNzdXtt4UHof3kZz9P+s9Epj3/YfNp3jy1gVMHEhZw1iLF129RS2BUaWnDn4uI +E2nwuQdSUVERqKXy+WiewiCmTDJm9Ch17NAhUH/iqacPeN7adev04bLlgfp5505MKkQ2K5LV4HP3 +F/Z6CHvdhMm09xsAAAAAAAAAAACgJq8ZNNYQmu7ZAAAAAAAA1IO1Uqxf2rrVwd5+qLcXeuXIOF74 +lRz6pwEAmY/AKwDAYScedhWNeltCYrG8BZpjJMeRIo5/n0UbADREpqS9u66r679zk16b8katx/Tp +3Utf+dJ1+s2vfqHHHvm3Zkx9TXNmvqklC+Zq+fuLAluvnj2b8CM4tFU1QkgPcLi6+xc/U25ubqD+ +wYfL9K//PJzy62Xi63PkiGGB2tp167R9+2eB+utTpwVqffv01rHdugXqxhiNGX1WoD512ozQebw7 +e06gNnTIEGVnZ4ce31gmjB+nQaefFqivXLVa/3n40aTGzrTnP2w+ThOuxRwn+KVQ103tTzK7GfY5 +PxAb8lPckazUhWuFvdcdDiKRiC6fPClQnzd/gTZs3Fjrec8+90JoffKkS5OaT2VlZVLn11RRERyr +rv/ez7T3GwAAAAAAAAAAAKAmN94U6jeDAgAAAAAAHGKsrPf1DdfKulHv6x0JvdOOZBw5xpHjOF4I +FqFXAIAMlbpf/w4AQCaIfSPadeVayfHXadYYb00WW5cZR8axkpWXZCzX28c3sQHgkPTwo49p1ruz +Q/cNOWOwvv+9G9W/X78mntWRo1l+vkpKSxNqXbt00ZRXwoMdgCNZt65d9d3vXK/f/O4PgX33/PHP +Gj/2bHXp0jll1wt7fXbr2lVvTpuSsmvU18jhw/Xr3wY//jnvvacLzz8vofZGSODVOePH1Tr22WeP +0RNPPZNQe+edmaqsrEwIsiouKdEHHy4Lzi0kjKsp3HnH7Tr/okmBAKI//ukvOm/iBLVv365B42ba +8x82n/0fN+r1mzXTnj17Eq9fUpLSa9T28eTlZV74U05Ojvbt25dQ27t3b8rGT2UQU6a5YvJluvf+ +BxXdL+Tpqaef1fe/993A8dZavfDiy4F6z549dPJJJyY1l7LysqTOr6moqChQq2twWaa93wAAAAAA +AAAAAAA12ZqBVwAAAAAAAIciK8laWdeVayRHkmqEWhkjGWsk68hYK0f+L0n2g7EAAMgkTronAABA +qiUmFEdrfIM6llJsJMdIjuMt5hwSigHgULZ7d5H+9Jf7QvddMfky/f2v9xN21ciat2geqO0p3hNy +JABJ+uqXv6jj+vcP1MvLy/WjO3+a0muFvT6L9gQDTZpSv3591a5dYaA+b/6ChMd79uzRe/PmB44b +P25srWMPHzpEeXl5CbXikpLAOPPmL5DruoHzzxwx4oBzbyzH9e+vyZddGqiXlJbq7l//tsHjZtrz +n98sP1ArKWm6wKuWLVsEasUpDrwqLg4fr02b1im9Tiq0bBH8fOwtTV3gVWkKx8o0HTq019ljRgXq +zzz3fOh7y/wFC/XJp58G6pMvvSTpuaTqOYtGo6GBbWGvmzCZ9n4DAAAAAAAAAAAA1ORG/cZOmjsB +AAAAAMChynq90ta6stGo3GhU1nXjX+8wxsgYR8ZxZCL+rR+GRQ81ACDTEHgFADgM+Yu2WPCVdb3E +4lgKcex71UaScSTjyBgv/IqFGwAcet6YOk3l5eWB+gnHD9AdP7zN+8JcA+zbty/ZqR0xOrRvH6jt +2VMcGvgAQIpEIvr13T+X4wS/LDPr3dl67vkXU3atjh06BGqZ8PocMXxYoLZ/4NVb78xUVVVVQq1b +167q17dPrePm5uaGjv3G1OkJj+fOfS9wTPfux6pz52MOMOvGdfNNN6pF82BgzIsvv6K5781r0JiZ +9vy3K2wXqJWVlWn37qYJxenSuXOgVlFRoa2ffJKya3z00ceh9Q4hz0W6FRa2DdSKS0pCQ48aojRF +42Sqq6+8IlDbtm275oS8v7z8ymuBWlZWli6++MKk55Gq5+yzHTtC64Vtg39OwmTa+w0AAAAAAAAA +AACQgLArAAAAAABwGEjsna7evH2SjBd85cSCr/zQK7qmAQCZhsArAMBhylbful7gVXhisf8fx8g4 +jhRxJMd7DAA4NEx/863Q+je/8bXQMJm62rVrV4PPPdIce2y3QM11Xa1Zuy4NswEODccPOE5f+fIX +Q/f9/O5faefnn6fkOj16dA/UXNfV6jVrUzJ+Q40cMTxQW7dufcLH/fY7MwPHnDN+7EHHHnv26EBt ++ow3Ex7PmRsMkDpzxIiDjt2YCtu21Q3/963QfXf+9OeB8K+6yLTnP+zvC0lauWpVk1y/Z48e4ddf +uTpl11ixcmW9rp1Oxxx9dGh9TYr+fGzavDkl42SqYUOHqFvXroH68y++lPDYdV1NeWNq4LhRZ51Z +5zCpg/n44w1Jj7Fo8ZLQel2DADPt/QYAAAAAAAAAAAAAAAAAAAA4/Hih3gnBV66VjbqJvdOOkRML +u3KM5DheL7WhdxoAkBkIvAIAHMZqJBS7rtwagVfWtX4mlvEWbMaR4mnFLNwA4FCyadOmQC07O1vD +hpzR4DGLS0pUUlqazLSOKH179w6tL136fhPPBDi03PSd69W1S5dAfffuIv38F79KyTX69ekTWl9c +S7BJUxk+bGhofd78BfH7s+fMDew/Z9zBA69GjzorEHj4yaefas1aL3SlqKgoNJRo5IhhBx27sX3x +umt1bLdgKNTadev0r3//t97jZdrz3zMkEEeSPvhwWZNcf+DA40PrixYvTtk1ahvr+AHHpewaqdKr +V8/Q+vIVK1Iy/urVa1IyTqYyxuiqKyYH6lNef0Pl5eXxx/PmL9COHTsCx02edEnK5pKKz/XCheF/ +dnv36lWn8zPt/QYAAAAAAAAAAAAAAAAAAAA47FjJxnunXb9fOhZ25Xp900aScWQcE++Z9vqojYxE +7zQAICMQeAUAOLzFwq7cqNyo622uK+unFEvyFmexhZvjSA5hVwBwKNn+WTBAoLBtW+Xk5DR4zHnz +5iczpSPO0FrCxaa/+VbTTgQ4xOTl5enuX/wsdN+LL7+it9+ZmfQ1RgwPD3F6Y9r0pMdOxlEFBaEB +QPPnL5Qkbdq0Wdu2bU/Y17FDBw0ceEKdxj7l5JMC9XdmvitJem/e/MT1gKScnBydMXhQneffWLKz +s/Wj228N3fene+/Xp9u21Wu8THv+Bw86PbQ+5fU3muT6I4cPD62/+trrKRm/qKhIs96dE6jn5eXp +pBMHpuQaqVTb62nqtBkpGX/RERB0NOnSSwL/5iwt3ZvwOQz781VYWKgzR45I2Txmzno36THeq+Xf +vyfW8c9upr3fAAAAAAAAAAAAAAAAAAAAAIclK8layfWDr/weai/0yuuViIddOcbb/MAreqcBAJmC +wCsAwGHPxhZurhvYZG18ASdjJON4ycXGkRx/YxEHABktGo0GallZWUmNOW3Gm0mdf6Tp27ePOnbo +EKjPnPWuPvro46afEHAIGTrkDE265OLQfXfc+TPt3btXjtPwL9/069dXnTp2DNTffmem1q//qMHj +psLIEcHwocVLl0qS5i9YGNg3fvxY7xssdTB2zOhAbc7cuZKkefMXBPYNOv005eXl1WnsxjZm9CgN +HzYkUN+7d69+cfdv6jVWpj3/p516SujnefGSpdqwcWOjX79Dh/Y64fgBgfrHGzZo4aLFSY//wosv +q7KyMlAfMXxYUkGcjWXwoNNDX1Oz58zVrl27kxq7vLxc0988/P89VVDQRhPPGR+ov/a6F3JlrdWU +N6YG9l968YVJ/3u1pndmzQr9s1dXK1et1vIVKwL1SCSi0089pU5jZNr7DQAAAAAAAAAAAAAAAAAA +AHA4i4VdWdeVjbpyXdfrp7aSkSQTC7py/PArf6NfGgCQAQi8AgAcEawUD7eKLeDcaNTbYos4fxVn +jJH89GJCrwAg87Vp3TpQ27FzZ2gQVl2sX/+RXnr51WSndcSZfNmlofXf3/PHJp4JcOj50e23qrBt +20B9y9at+s3v/qDs7Oykxr/yismh9V/95ndJjZussMCrFctXqKKyUvMXBEOpzhk3ts5jn332mEBt +/oJFcl1XixYvDew7c+SIOo/dFO744e2hQWevvjZF786eU6+xMun5z8nJ0YRzxoXu+90fmubvi2uv +uSq0/tvf35PUuCWlpbr3/gdD99X2d2S6HVVQoEGnnxaoV1VV6f4H/5rU2M+/8JJKS/cmNcah4uqr +rgjUZs56VxWVlVq0eIl27NgR2D95Umr/TOzatVvPv/hSg8+/74Hw53vY0CFq1apVncfJpPcbAAAA +AAAAAAAAAAAAAAAA4EiQEHzl90vHgq9kjIxj5EQiMpGIjOOFYNEvDQBINwKvAABHBn+BFlu4xcOu +olF/EWdlreQnXskYL+gqllgcD7xiIQcAGad9+3aBWllZmRYvCQaaHExJaal+8KMfy3XdVEztiDL5 +skuVl5cXqL/59jv6938fScOMgENH69at9ZMf/zB038OPPqZ9+/YlNf5VV14e+vqc/uZb+vs//53U +2Mk4+aQT1bx5s4RaRWWlVq9eo4WLliTUjyoo0GmnnlLnsbsf2009enRPqBUXF2v16jVavmJF4O9a +AvgAACAASURBVPiRI4bVY+aNr0/vXrr6ystD9/3krl+osrKyzmNl2vP/xS9cG1p/9bUpmvHm241+ +/QvOO1cdO3QI1OcvWKjHn3iqwePe/evfasfOnYF67169NOrMkQ0et7HVFsb18CP/05q1axs0ZlFR +0REVeHnqKSerX98+CbXS0r1auHCRpk2fEXp89+7Hpnwe9z/wUINCxmbOelevvPpa6L7Jky6p11iZ +9n4DAAAAAAAAAAAAAAAAAAAAHM5ifdOu68pGq8OuvH5pSfL6pY3jyIn4/dIOfdIAgPQj8AoAcESJ +pxPXDL3ya3HGJIZdxTbCrgAgI5180omh9T/fe7+i0Widx9m2bbu++e0b9OGy5ama2hHlqIIC/d+3 +vhG677e/v0cPPvT3pK/x8ccbtPT995MeB8hE506coDGjRzXK2EcVFOjGG/4vdN/dv/6t7r3/waSv +8dFHH2vJ0voFDWZnZ2vIGWcE6gsXLtK69esTamPHjlEkEqnX+GPHjA7UXp3yuioqKhJqR3fqpN69 +etVr7KZw043fUevWrQP19es/qldwTKY9/yccP0Djxp4duu/6G2/SvPkLGjyP/Z/bMDk5ObrjRz8I +3ffjn94VGlB0MP/vT3+pNSzr1lu+J8fJ3C/Bnn/uRB1zzNGBekVlpb70lW/o023b6jVecXGxvvy1 +b+rzXbtSNcVDwlUhAXULFy3W2+/MDNQvq2eIVF1t2LhR3735lnoFt65es1bfvfmW0H3dunbV+HFj +6zWHTHu/AQAAAAAAAAAAAAAAAAAAAA5rfr+0dV25/ibrKpZ4ZYyRcUw87Mo4jheAleZpAwCQud1W +AAA0ktjiLbaAS7jvpxdLqg64Mkamxv2EDQCQdsOHDQ2tL1i4SN+75TYVFRUd8Py9e/fq0cee0IWX +TtaixUvi9ebNm6V0nkeC6669WgOO6x+678/33q8vffUbWrK0foFVW7Zs1f8ef1JXf+FLmnjBxZo5 +a3YqpgpkpLt++mO1aN68Ucb+ypeu0/EDjgvdd88f/6yrv/AlLV5SvwCRzZu36OFHH9NlV1ytMeMn +6q23g8EuBzNi+LBA7b4HH0oMpJV0Tj1DVyRp7NljArX/PvK/4BxGBOeQCdq0aa3v1hIcc+/9D2rr +J5/UeaxMe/7vvOP20L9ny8vL9YUvfkX3/PHPKi8vr9NYxcXFeu6FF3XlNdfpgb/+rU7nTDxnvCaM +HxeoR6NRfePbN+jHP7lLe/bsOeg4Gzdt0nVf/pr+ct8DofsvvvACjRl1Vp3mlC5ZWVm64/bwALCt +n3yiCy6apFenvF6nsd6YOk0XTbq83n+WDgcXXXiBmjVL/DP95NPPaOWq1Qm1Zs2a6dwJExptHtNn +vKlJl18duG6YKa9P1RVXX6tdu3aH7r/jh7fVO2hQyrz3GwAAAAAAAAAAAAAAAAAAAOCIYK0fgFUd +guX1Zvh90o7jBWD5IVhy6JMGAKRPVronAABAOlhJxg+3sq4rV8ZLJHat5JjqRVvsBH8xp1ggVmyL +D2gD1wAANI1hQ4eoX7++WrlyVWDf1GkzNPe9+Tpv4gSdftop6tixo4yRior2aPOWrVq0eLFmzpqt +4uLihPNGDB+m88+bqFt/8KOm+jAOC1lZWfrLn+7RFVd/Qdu3fxbY/968+brq2i+qb5/eOmPwIB1/ +/AAVtGmjli1bqrKyUnv37lVJSYk2bNyktWvXafnKlfroo4+b/gMB0qRTx4665fvf009+9vOUj52V +laWHHrxPF106OfT1OWfue7p08pXq17ePhg0dohNOOF5HFRSoVatWqqio0N69e1VcXKyPN2zUmjVr +9eHy5Vq//qOk5zUyJGxqx44dCY9btmihoUPOqPfYJ504UIVt22rHzp3xWliI0ZkjRtR77KZy9VVX +6JHHHte6desT6mVlZfr5L3+lB+79c53GybTn/+hOnfTHP/xOX//W9YFws4rKSt17/4P6z8OPatSZ +IzV06Bnq0L69CgoKVFFRoZKSEu3YuVOrVq3Wh8uWa+GixaqqqpIkDR50ep3n8Ntf3631H32kVavX +JNSttXr0scf11DPPaviwIRo5YoQ6deygtm3bKhqNasfOndq4cZOmz3hTCxctDsw/5vgBx+kXd/2k +np+Z9Bg/7mxNuuRiPf3sc4F9O3bu1PXfuUndux+rieeMV/9+fVVYWKjs7Gzt3l2kzz//XIuWLNHs +2XO1YePGhHNPPulEZWdna978BU3zgaRRi+bNdeEF5+mxx5+M1zZv3hI47twJ56Q8VHXwoNO1eMlS +VVRUSJKWLF2qiedfpBNPHKgxo85Sj+7H6qijjlJ+fr6Kioq0bPkKvfraFC1bvqLWMSdPulRjRo9q +0Hwy7f0GAAAAAAAAAAAAAAAAAAAAOBJYyeuXNsbLuJL1+qKNIyMjY+SFXjlWxkbkyMhaV9YVPdIA +gCZH4BUA4MhkrRd65VpZuX7JSo6VsUZyHBnHkfUXdjJGskayViaecuzGx/L2s6ADgHQwxujWm2/S +V7/xbbmx9+YaiouL9dgTT+qxJ54MOTto4AnH6/e//VUgBAt107FDB/3joQf0jW/doK2ffBJ6zKrV +awIBIwA811x1hV586WUtXLQ45WN37NBBj/znn/rSV76hLVu3hh6zctVqrVy1OuXXrk23rl3VtUsX +bdy0qdZjxowepezs7HqP7TiORo86S08+/Uytx0QiEQ0bWv8wraaSlZWlH//wB/riV74e2Pf6G9P0 +zsxZGjlieJ3GyrTnf8zoUfrlXT/VHT/5Wa1/f7/48it68eVXGuX6zZs308P//oeu+8rXtWLFysD+ +iooKzXjzbc148+16j338gOP0n3/+Xfn5+amYapP4xV0/0afbtmnWu7ND93/00ce674G/1nm8Y7t1 +04P3/UUPP/q/IyLwSpKuufKKhMCrMJdNuiTl1z1x4EBdfeUV+u7NtyS8lpYufV9Ll75f7/EGDzpd +P/vJHUnNKdPebwAAAAAAAAAAAAAAAAAAAIDDnrVen7TrypVkrORIXviVicTuyDhGjhyvs9qVZNxa +fxE0AACNxUn3BAAASCdrXbmulRt15UajcqNVcl1X1o0t0KwkI2OMl1wciUiO4y/qvFsZk+4PAwCO +eGcMHqSf/+zOpMc5/bRT9bcH71PLFi10dKdOat++XQpmd+Tp2aOHHn/0PxpyxuB0TwU45Bhj9Ktf +3qWcBgQ81UWvnj313NOPa9jQIY0yfkMcLLBp/LixDR577NmjD7j/5JNOVMuWLRs8flMYOWK4Rp01 +MnTfT+/6pSoqKuo8VqY9/1dcfpn++sC9at26dVquX1hYqMcf+Y8mTjgnZWNecN65evzR/6qgoE3K +xmwKOTk5+tuD9+n88yYmPdbAE47X44/+V+3aFapfv74pmN2hoX//fjrpxBNr3d+9+7E67dRTUn7d +HTt36LxzJ+gvf7pHeXl5SY01ZtRZ+sdDDyg3NzfpeWXa+w0AAAAAAAAAAAAAAAAAAABwuLPWyrpe +v7R1o7KuK8XCrIyqe6UdR07EuzX0SQMA0iAr3RMAACDtrCsrI1kjV0aOMbKSrDHyVnCOvNAr73Bj +jKxjJFcyjhNPPK4ejyRjAEiHiy+8QB3at9cdd/5Mn27bVq9zI5GIvnTdtfrO9d9WVlb1MunEgSdo +6rQZqZ7qEaGwsFD/eOgBvfTKq7r/gYe0YePGpMaLRCIaOWK4zhw5IkUzBDJXr5499e1vfUN//PO9 +jTJ+YWGhHv73P/T8iy/pz3+5Xx9v2JDUeJFIRGedOVKjR53VoPNHjhimR/73WOi+vLw8nTnywIFY +BzJs6BDl5eWpvLy8lms3fOymdMftP9DMWbNVVVWVUP94wwY99Pd/6vpvf7POY2Xa8z9m1Fma/sar ++t3v79Ezz70Q+Bjro7Cwbb3Padmype790z16beI5+v0f/p8++rhhn48ePbrrB7fcrLPHHDhkLZPl +5ubqT/f8XiOGD9OvfvM77dq1u17nO46jL3/xC7r5phvjgUn9+x45gVeSdM1VV2jJ0qWh+yZPurRR +rrlr1y5J0oTx49SzRw/dctvt+uDDZfUao1mzZrrpxhv0peuuleOk7ndkZNr7DQAAAAAAAAAAAIDM +tWbdR1qxeq3Wrv9Yu4v2qLR0r6Kuq9ycHLVp3UodO7RXr+7d1L9vbxW2LUj59W+4NfgLNzt2aK8f +3Xx9yq8FAAAAAECjsVZeh7OVW6MH2lrrBVvJ65GW/zPDxlrJGhlrvF5pAACaCIFXAABIkpVkrGTl +pRf7RWMdGcd6oVeOH4DlHSw58hdyVjKSdf3FnLV+6JU3HgCg6QwdcoZeev4ZPff8C3ry6We1dt26 +Ax5fUNBGY0aP0hevvUY9enQP7D9p4EACr5J0/rkTdd7ECXrrnZl6/fWpmvXubH3uBzMcTJs2rTX4 +9NM15IzBGj36LBW2rX+QCXCo+tY3vqZXXp2iNWvXNto1LrrgfF14/nma8dbbevXVKXr7nZn1en0O +GTxYw4cN1dixY5J6fZ5xxmBlZWWFBh2dOXK48vLyGjx2Xl6eRgwfpqnTpofuP1RC9Lp3P1ZfuOYq +/fPf/w3su++Bv+qiC85X587H1GvMTHn+JemoggL96pc/1003fkdPPv2Mpk2fofc/+LBO5/br20ej +zjpTl026RMd269bgOUwYP07jx56t16dO00svv6K33p5Za1BaTMuWLXXmyOG68ILzNfqsM+PfADzU +TbrkYk08Z7yefPoZPfvcC/pw2fIDHt+mTWuNO/tsff2rXw78e6pbt64HDJ073Jw78Rz97Bd3q7i4 +OKEeiUR0yUUXNso1i4r2xO/36d1Lzz39hF55dYoefvR/Wrho8QG/8dy58zG6+MIL9IVrr1bbo45q +lPlJmfV+AwAAAAAAAAAAACCzrFy9Ti++NlWbtmwN3b+3rEx7y8q09dNtWrT0A0nSBRPGauyoQ+Nn +PgAAAAAAaHpeiJWslXVdWdfINVGvX9o/IhZ6ZVwrGStjrGSM1xJN8BUAoAmYm1+dxt84AADEGCNj +jIwTu3VqbBGvHjvUD7+y1g+28oOurOsetqFXl7dvk/C4d+/eaZoJANTNZ5/t0NL339dnO3Zoz55i +GWPULD9f7du3V/fux6pXzx6HTTjFocJaq81btmjtuvXavn27SktLtW9fhfJyc5Wbl6cWLZrr6E6d +1K1rV7VrV5ju6aIOVqzblPD45AH8++BQZa3Vps2btWbtOm3btk0lJSXx12defr5atGiuY44+Wt2P +PZbX52Eo057/4uJirVq9Rh9v2KCioj0qKytTVlaW8vPy1KpVK3Xt2kU9e/RQmzatG+X6lZWVWrdu +vVatWaNdu3appKRUjuOoRfPm6tChg3r0OFa9evY8Iv4d8fmuXVq2bLk2btqkPXuKFY1G1axZMxUW +tlXvnj3Vp09vRSKRdE8zI+zYsUNDR44OBPiNGXWW/vbX+5Mev0ef4wK1/v376ZUXng09fteu3Vq2 +fIU2bNyg4uISVVVVqVmzZjq6Uyf1799X3bp2TXpODZFp7zcAAAAAAAAAAACHg8XL1iQ87t+zS5pm +khnWrEn8fPxn8/Y0zcRzXef2B9xf5ST+MrAj5edvpkx/W6+8Hv5LzA7kxm9+Wb16HCvJ+/7jO7Pn +adacedq5a7faFrTRWSOGaNjg0+o15g233hmodezQXj+6+fp6zw8AAAAADhf7f70hyz3wL8FN9/ob +iYzjyEQcOZFIdZ90rIfaGFlr5UZd2WhUbjTqhWPZWM/0YdQYDQDISFnpngAAABnFWllZ2aiRMd5j +x1o5kmSMZJ14KJZ3gJHxA69iizjvNFdy/bArLxcLAJAG7doV6uwxo9M9DdRgjFGXzp3VpXPndE8F +wH6MMerapYu6djmyf+j1SJVpz3/Lli112qmn6LRTT0nL9bOzs9WvX1/169c3LdfPJEcVFGjE8GHp +nsYh4cmnnw2EXUnSZZMuabRrRkOuF1NQ0EbDhw3R8GFDGu36DZFp7zcAAAAAAAAAAAAAmt60t2Y1 +KOyqTetW6tm9W/zxlGlv6dWpb8Yff7r9Mz3+zIsqLd2rcaNHpmSuAAAAAAAciqy1kmtljVtd9EOv +5Dgy1vr90UbGjfVMy++zBgCgcTnpngAAABnHyluQudZLJHZduf5tfIulFEuSjPf/WAiWY+ILPhkv +IMvb0vlBAQAAAACAxmKt1RNPPR2oF7Ztq9GjzmrE6zba0AAAAAAAAAAAAADQKDZs2qKXpkyrdX9+ +fp56du+m4/r11rFduyg/Ly++79STTvB+Tts3e97C0DFmzZ2fugkDAAAAAHAostbvla7ujY6HWVkr +ye+FNo6M429+j7QMDdEAgMaVle4JAACQ0WLBVq4rV5JxrYxjvORi4y/ejGRkZOSFXllVpxvL+Of7 +IVqK5RrTkQoAAAAAwGFj1ruztWnT5kD94osuUFYWX4YHAAAAAAAAAAAAgJjXp78t13UD9ZzsbF16 +wQQNPu1kRSKRhH1bP92mlavXaUC/Pgn1PcUlodco2lOcugkDAAAAAHCIivc3++twa7yQK2u8nmhJ +fsiVo1jBuJJMlDZoAECjotMGAIADsYoHXikeYBULvPLDr4y3kDOOt5ozcmoEXVkv+CoWeBUL0JII +vQIAAAAA4DDx6GNPhNYnT7q0iWcCAAAAAAAAAAAAAJlrd9EefbhiVei+L19zuQb07xO67+iOHXR0 +xw6BeutWLbVrd1Gg3qZ1q+QmmoRFSz/Qp9s+kyS1bNFCI4YOSttcAAAAAABHOivryg+zsrLG24yx +skaSjIyRFIlIrpGsZOT1UcfOEa3QAIBGQOAVAAAH4/qLOBkv5Mo6sq6Vcbz7jiOZiCMv9Sq2iPNC +sWLny7reotA7qjr0CgAAAAAAHNI2btqkadNnBOpDzhisnj17pGFGAAAAAAAAAAAAAJCZlq9aE/pz +1AP69ak17OpAhg0+TS+/Pj1QHzEkPSFT1lo98+Jr2lNcIknq2KE9gVcAAAAAgPSx3n9ia3FrjLc5 +jt8K7fVFO8bIGsm1Vsa6ft3KS8WiHxoAkHoEXgEAUBc1FnVWkjEmYZc1kivJxBZ5kregs7Y6AMsx +staVXO84a934uKz3AAAAAAA4NP36t7+X67qB+nXXXp2G2QAAAAAAAAAAAABA5tq4aUtofdCpJzZo +vHGjR6pZfr7emf2edu7arbYFbTRq5FANHXRqMtNssM1bP4mHXQEAAAAAkEmstdWb60r7hV4ZOTKO +K2MdOdbKjfVVeyenc+oAgMMQgVcAANRXLMnYb2Z1vcgrGWtlXNcLwzImIRTLyEszNnJkHStZK+Mn +G1tr9wu+IgALAAAAAIBDwbPPvaApr08N1Acc119jzx6ThhkBAAAAAAAAAAAAQObavPWT0HrP7sc2 +aDxjjEYMHaQRQwc1fFIptGzF6nRPAQAAAACA2vlhV64kY60cx5FxnOpAK+PIOF6/tCPJulZyXa8P +GgCAFCLwCgCA+rK2Oo/KdSVr5LrWSy42RsZxvLArx/FTjSVrjB96pf2CrryFn6ytDji2kgyhVwAA +AAAAZLI3pk7T7XfcGbrvtlu+nxCEDQAAAAAAAAAAAACQiktKA7WcnBy1btUyDbNJvQ8JvAIAAAAA +ZCrr9zW7bnXJGK/PWfL6oY2RjCMn4u1zFZWsiR8HAECqEHgFAEBDxEKqjBdiZWVkXEmOI8daL/RK +8pKN/dArGeNt1koyMvJCrax1JdcLvrKuv+Cz8f8AAAAAAIA0iEajikQigfqGjRv10N//qccefzL0 +vIsvvEDDhw1p7OkBAAAAAAAAAAAAwCGnrLw8UGveLD8NM0m9ktJSbdy8Jd3TAAAAAACgVtYPrbLR +aLzv2TFGXtezvMArx5Gxxm9ztnKtlXHpeAYApBaBVwAAJMNaP7/KuzXWypXk1DzGX+DFH9asy4++ +ciS5knH8PCzrPa55HQAAAAAA0HQGDDxFnbt01lEFBWrZsoXKy/dp0+bN2nyAH1A+5pij9dM7f9SE +swQAAAAAAAAAAACAQ8e+fRWBWk5OdhpmknrLV66JNw4DAAAAAJCRrK0OrnLd6v5n1433QRsT+48j +Y63kWnmJV6x5AQCpQ+AVAACpEIsvliTXlSvJ+AFYxhgZ15UxjmSMjPFTjo3xz/FPdIxkrbcA9EO0 +4ovH+ELQ3xe/BQAAAAAAjaGislLr13+k9fqoTse3atVK//r7X9WyZctGnhkAAAAAAAAAAAAAHJpc +1w3UjHFCjjz0fLhidbqnAAAAAADAwVnr9TdbK2utrOvKNUaOrN8DHet/9jbjGJlIbO1uvXZnwq8A +AEki8AoAgFSxUjzb2HUlY2Wtt7jzNtdf3DneY8eRiYVdGf+eMfFAq9iizwvA8se11rtGPBCrqT9I +AAAAAACwv04dO+qvD9yrXj17pnsqAAAAAAAAAAAAAJCRysrL0z2FRmGt1ZIPlmn5qvQHXhXtKdbm +LZ9oV1GRysq8z3deXq5at2qlYzp1UNujCtIyL2uttn22Qxs3bVFxaakqK6uUnZ2lvNxctWrZQn17 +9VBOTk5a5gYAAAAARyS/ZzkWeCVJrhwvlNpRdQ+03+PsWCvXescbueRdAQCSRuAVAACp5C/YZKys +H2dlayQaG8fIsVZyIl5glZSYdlxjHGNrhGf5ScmSvDFF2BUAAAAAAOkWiUR04QXn6fbbblHbo45K +93QAAAAAAAAAAAAAIKNUVFbqw+UrtXDJB1q+ck3oMZ9u264bbr3zgOP85bd3hdZ/+Yd79em27XU+ +PpWqolHNX7RUU9+cqc927Aw9pi4fm5TcfHftLtLs9xZowZIPtGPn5wc8tk3rVjp54ACNHHqGCts2 +PPxq/4/p6I4ddPv3/i9wXGVVld6eNVez5szTzl27ax3vrh/eTOAVAAAAADQxK0mu67cqW0lWJiJJ +ERljZOUHXxkjOY7XEu26staIBmcAQLIIvAIAoDFY7z/eja0OtLJGriRHxkuu8hd6ccbEcrD8ACzr +7fdTkK21knVlrCPresFaCetCYpEBAAAAAEiJa666UitXrdLGTZu0e3eRKisr1aJ5c7UpaKNePXvo +jMGDNWH8OHXufEy6pwoAAAAAAAAAAAAAGeX9ZV7I1YfLV6qisjLd00m5N2fO0Yx33tXuoj1pm8O+ +fRV65Y3pmjl7nqqi0Tqds7toj96cOUdvv/uehg46VRedO165uckHTe0qKgrUNm7eqn89+oR27Nx1 +wHOzs7LUpnWrpOcAAAAAAKgnvx/ZWldyjXff72e2Nfqijd8D7VjJi8cyXugV/cwAgCQQeAUAQBOw +khdYJUmulauojLUyjpFctzrlOHYr4+VdyQu98u56NWv9ACxjvYVj7AJS9QJx/1sAAAAAAFAvd/30 +x+meQoL1q5enewoAAAAAAAAAAAAAUCd/+8//0j2FRvXsS6+l9fpbPvlU/3j4CX22Y2eDznddV7Pm +zteK1Wv1zS9fo47t2yU1n7KyclVUVCgnxwvPWrZytf758BN1CjsrbHuU//PzAAAAAICm5vUnV/cj +W9eVjJGN9Trb6v5mOY6MrN/fbLxQLAAAGshJ9wQAADgixBKN/QWfjbpyo1G5VTW2aPVm3aisa+ML +PmuM5PgLQn9TJCJFIjJORCZSXTf+wjGWniy+AQgAAAAAAAAAAAAAAAAAAAAAh7wNm7bojw/8o8Fh +VzXt/HyX/nj/P7T1021Jj7Vr9x5J0vzFS/XXfz1ap7ArSWrfrm3S1wYAAAAANJC1slZeP3PNzVb3 +N8sYr3c54siY2OYHYtG/DABooKx0TwAAgCNJPPTKX8R5Czr/1vUWePHgKkcyxpFkvDWf9x/JeItE +UyM1ObaojN031spWX7RpP0gAAAAAAAAAAAAAAAAAAAAAR6wTjusXWv9g+cpALTc3R3169mjsKaVU +2MfXFB/bjp2f676//Ufl5ftC93frcowG9OujY47upBbNm0mSSkr3avOWrVq2crU2bt4aOKd07149 +9K9Hdet3v6Vm+fkNntvuoiJVVFbof0+9UN0U7evQvlAnDzxeXTsfo1Ytm6uqKqq9ZWXatn2Hjipo +0+BrAgAAAABSINaPbK2sdSVrZF0jOYnBVsZayXEVdf2gK79GBzMAoCEIvAIAIB38b+JZa6VYmFVt +acbGSMaRvOwrmZr16oNk/GWhjVf8SxkTD8La//oAAAAAAAAAAAAAAAAAAAAAkEpf/+JVofUbbr0z +UCto06bW4zNV2Hwb+2Orikb1z0eeVFl5eWBfh3aFmnzJ+erTs3vouQMH9NPEcaP14YpVevyZF1W0 +pzhh/85du/XMi6/p2ssvafD8Nm/9VDNnv6eqqqp4rbBtgS45f0KtAWgnHNfgywEAAAAAUsxaK+ta +yVhZ43rFWOiV/F5l48g41gu/kpV1vV7m/YOPAQA4GCfdEwAA4IgXy6Ky1l8QurKuKzcalVsV9W6j +VXKr/C0alesfY62tzq4yfmKy40iOI0UcKRKRcRyZiCPj39f+W82wrZC8LQAAAAAAAAAAAAAAAAAA +AABA+rz97lxt2rI1UO/ZvZtuvuHrtYZd1XR8/7668ZtfVsuWLQL75i1coo2bg+PX1fOvvK6du3bH +H59wXD/d9t1v1xp2BQAAAADIMDV6nN2oG+91tq6rmm3MxjFyIo4cJyITcSSH3mQAQP0ReAUAQCaI +LwS9zY26stEaoVfx4Ctvs9GoH3blpyBL1aFVjvFCrmJbxJFxIlIkUh2AFduMd2z8XBF8BQAAAAAA +AAAAAAAAAAAAAACZoqysXK9PfztQL2jTWl+77krl5+XVeax2hW11+cXnh+6b8c67DZ5jTQP699FX +v3CF8nJzUzIeAAAAAKBpeH3LbmLolbWS9SOvTKx/OSIT61eO9SYDAFAPBF4BAJAprLzgKze2GIzK +Rqvk+lu0qkpuVZUXeuW6cv2Fohd2FduMZBzJ8beIIzk1gq5qBF7FQ66M8ReU/vkxrC8BW8VkogAA +IABJREFUAAAAAAAAAAAAAAAAAAAAIK3mLlissrLyQP3SCyaqebNm9R7vxOP769iunQP1JR8s196y +sgbNMaagTWt98crL5Di0rAEAAADAIcdaWdfKdaOyblTWtX4Ilhd4ZfzAKyfib44jY5yE1mQAAOqC +rx4CAJCJrJVkYzfedlD7rQhjqcgJYVgmHoZlYqFYfs0Lwqre79VNjWCs1H6IAAAAAAAAAAAAAAAA +AAAAAIADmzNvYaB2dMcOOvH4/g0ec+igUwO1aDSqVWvWNXhMSZp04UTl5eUmNQYAAAAAII2slVwv ++Mq6bnyT60ry25XjPcmO14cc60mmDxkAUEcEXgEAkEn8cKnYQs+JODIRRyYSkVNzc2LJx0YmHn0c +C8mystZfRFrXe1wjRdn7n2RjgVY1F5ROxLue40iRiFeLONUhWAAAAAAAAAAAAAAAAAAAAACAJrFz +1259sm17oH7KiccnNW6vHt1D62vWfdzgMTt2aK+BAxoewgUAAAAAyBzxnmQ/8MqNhV/FDvD7oeP9 +zhFHxvjBVwAAHERWuicAAAB8/iIuHmLleLfGD7ZSjYCreK0GayXJ+v+3sUJs8MRgZBOrGclY1YxN +tv55JjZobJyE8QAAAAAAAAAAAAAAAAAAAAAAjWnN2vWh9f59eyc1brvCo5STna2KysqE+qfbP2vw +mINPPSmpOQEAAAAAMkss8MqVZKyViUTkWCvFep1jvc/WypFk5UpudZ8yAAC1IfAKAIBMUDPsyjFe +inHNwKvYFlsAGj/AyhjJWi8R2Q+nigVfWeuFX8lIRlY2FmplYkFXJh58lTAV/9bWDLqy+wdoAQAA +AAAAAAAAAAAAAAAAAAAa04ZNWwI1Y4w6dWiX9NjNmuWroigx8OqzHTsbPN5x/ZIL4QIAAAAAZBBr +JevKdY0XdiXJMUbW72+O9T9LXhhW9WluvPcZAIDaEHgFAEA6xAKuYvdrBFjFAq+M4y/2YqFX/nGS +JCtZI8l1vYfxsKuat/6BMt6x8q/hGP/KRjZWqzGnhDn6ScsAAAB1Za31/t0CAAAAAAAAAAAAAACA +Rmf3ax7kxzaAw8v2kAAqx3H0r0efSnrsvWXlgVp5+b4GjeU4jjq0K0x2SgAAAACADGL9oCsrSa4r +a4zkONU9zpJkjBzHkSvvQGOsRN4VAOAgCLwCAKCpxEKnYgFXgcf+fSexlsBaf5HnegtCVQdc1Qy5 +qr6feH0jI7nGu29MrOjVa9wqfqvaA7EAAAAkRRxHUT+EU5KiUVdZWZE0zggAAAAAAAAAAAAAAODI +URWNJjx2HCdNMwHQGHZ+vitQi0aj+mD5yka53r6Kigad16plC0Ui/NwYAAAAABxW/FZl4/cyy1q5 +risZ1+tH9rKtZB1HjiTXWhnreD3Oxu81IvkKABCCwCsAAJpCLOAqHmzlePed/R6bmmFU3vGx4Cpr +FV8Q2pDb2H0pFoQVNo0a48YDrsLCt/y5yngpy8aIuCsAABDGcYyi1XlXqqisJPAKAAAAAAAAAAAA +AACgiVRWViU8jhB4BRxWysrKm/R6toGNyLk5OSmeCQAAAAAgI1jrtSu7VtZYyVhZE5XkKNaXbIwk +x5Gx1t+MJOOfawi9AgAEEHgFAEBj8zKkqsOuHEfGOF7Y1X73/RSqeLiUlYIBV67rBVzVuFUg8KrW +qfiTiRVqhlxVbzJGcpzqUCxJ1iHyCgAABOVkZ6uyqvo3hZbvq1Cz/Lw0zggAAAAAAAAAAAAAAODI +UVa+L+FxTjZtIsDhpKKiIt1TqBND2B4AAAAAHL6sZFWjx9lvNzaO4/UnO44UD7uyMq4rGRPvkQYA +YH98JwMAgFSqESYVD5eKpRPXDLxynBrhVzWCpnzx5Zu1sq63CLTW9e77QVdy3erQqxphVwcSWBwa +I1vz2o4Tf2ysTXhcHcMFAABQLSc7S6Vl1Y/3/yFKAAAAAAAAAAAAAAAANJ69ZYk/q5Gbk52mmQBo +DFHXTfcUAAAAAADw+529NaoryZGRZGWM37Nco1c6HorsWsm4sl5iFgAAcQReAQCQLC/ZyguFMiYe +dGVCwq5qLthUI2jKSl6AleQt+rw7frCVTQi1it+PBV8lk25c49zYHGIhXTLGGz/2MbgEXgEAgKBm ++bnatack/rh0b3kaZwMAAAAAAAAAAAAAAHBkKdlblvA4LzcnTTMB0Bhyc3JUvi8x2K6w7VH6yW3f +TdOMAAAAAABHsnh/s5FkJGuNTI1eZWOMnEhEroykqCQjG/XCsQAAiCHwCgCAZMTCrGKBV45TI4HY +JAZdyUhG8ZArxfKjrOIhVzYeaOX6acc2nlwcD7eytkYwlr/ASzL0yu73WMZ4NX+u3sfQ8EsAAIDD +V35ebsLj0rJyVVZWKTubLzkAAAAAAAAAAAAAAAA0pn0VFSrfV5FQa56fW8vRAA5FubnBwKu9ZWW1 +HA0AAAAAQOOx1sr4t66RHGNk/c04jtdL7TiStXIkufL7oI1Jrg8aAHDYofsUAIAkGXnhVsY4Mo7j +3Xf8+/uFXXkBUjUWZfGAKyu53q3rurKu64VeudXhVqHBVKnijxUL0LImMd3KxP8DAACQKDsropzs +LFVUVsVrO3cXqWO7tmmcFQAAAAAAAAAAAAAAwOFvx+dFCY/zcrIViUTSNBsAjaFN61Yq2lOcUCsr +K/eajA0/4A0AAAAAaEKxfujYQ+NIjo33QHu9yEbGGLmSjLUyrpWRK+KuAAA1OemeAAAAh4RYWJXx +w60cIxPxQ61itzU344VdxbbqsCt5eVfWyrr+Zq2s68p1XbnRqBd25bqyUbc6/Mp1vUVgza0x7Xct +688XAAAgTEGrFgmPP9tZlPAFbAAAAAAAAAAAAADA/2fvzuPkuuo773/PqareF7W61Vq9yJLthMVm +cx7Cjh2GDBM8BtusCYEAhiTwzPMkM5OZTBYmDBMmYQlhXzIESOI8JMHYGGMTwAsM2QirjY0tydYu +tdRq9aZequr8nj/uUre6WrKkXm5X9+f9orruPXWr+nQjxL2tOp8GgMUVQtDxkfrg1brertMcDaBZ +bRzc0DBmZjp8dCiH2QAAAAAAEDOTLLMGOlkHLcVrsTPrrL2XvK+tswYArHkErwAAOJPkosp7ee/l +C4XoVizKF4sqlKJ7XyjKFwpp7ErZtlUasKrKKlWFalWhUlWoVFStVBQqlSh0lY1dZaNWxCIAAMAK +t25O8KpSrTb8BlEAAAAAAAAAAAAAAAAsnqPHRxQyv8zUO6fers4cZwRgKWzZtHHe8Uf37l/mmQAA +AAAAUBOtnzaFENKbmaXRKyfJOV+3RjsKXxG9AgAQvAIAYH5JNTi+ee/lCl6+EEevigUVkuhVvO8L +yQVX9BxJUnxxZiFEoatqpT50VanE8atqdDEX3xSCLH4+AADASue9a4heHR4aVgghpxkBAAAAAAAA +AAAAAACsXuVyRUPHR+rG+nq75FkwCKw6P3XZjnnHf3j/g8s8EwAAAAAAMtL10yarVqNbCLV10c5F +6619tDbbFTLrr/kRFgCseQSvAACYh5Nq0avkgsonsati461QkCsUogsu56Q4eJVerIUgq4Za3KpS +VbWciV5Vq9EtiV6ZEbsCAABNpX9dd91+NQTtPzSU02wAAAAAAAAAAAAAAABWr70Hjypk3mfqnFP/ +up4cZwQg/YXJGeVyecGvu3XzJq3rbfzf949/8oiOHju+4NcHAAAAAOC8WbR+OlRD/fpoRdfJ6Rrt +QiFah+3jNdgUrwBgzSvmPQEAAHKX+cfF5B8ak2hVdDGVVIPje++keDu6qDIpec9AXCROy8TZ4JWZ +FN9nL9oAAABWg5ZSUX29XRoZnUjHToyOq7urQ+t5QyUAAAAAAAAAAAAAAMCiGDo+ovHJU3VjG9b3 +qFDg96EDeWptadH0zEzd2Pj4hMxs3hjWuXj2M6/Sl+/6esP4F2+/S295w2sX9Np52rXnMT2274C8 +99qx/UJddMG2pno+AAAAAKx1ZhavsjYpSOa8zJsUTBb/qCpZry1JLpjkTM4Za6wBYI0jeAUAWHuy +Uavk3kmSqw9dzbsdHSeZLEhR7CoJXCm6V330SqEWv0pDWHl83QAAAEtscH2vxiemVKlW07F9h4bU +1tqijva2HGcGAAAAAAAAAAAAAADQ/EbHJ3Xw6PG6sdaWkvr5ZWRA7rq7uxqCV7PlsvYfPKQLt21d +0Gs/55lX6avfuE/lcrlu/P4Hf6Jv3PdtXf28Zy3o9ZfbbLmsT33mZj348K668Sue+NN6w2tvVLF4 +5uVueT8fAAAAAFBjMjlz8frpIAtOwVXlVIuzp2u0vZPMycU1rGTdNQBg7eFXeAAA1pZM5Mo5J+e9 +nPfyviBfPM2tUJArRMfJxf/XmcStQpCFoFANCtVKdKtUFCrV2i1U0+MsBC7AAADAquW91wVbNtSN +mZl2PXZQU9Mzp3kWAAAAAAAAAAAAAAAAHs/4xCk9tv9w3Zj3Xts2DeQ0IwBZmwbn/9/i3d/8hwW/ +dldnh17yohfO+9gtt9+pO79+74I/x9CxYT2278CCX+ds3Pm1expiU5L0wwce1F1n8bXk/XwAAAAA +QIZFa4fMJAsmCxavuY7XU0t167md97U13nEICwCw9hC8AgCsOdkLofTiqBCFrXyhoEKxKJ/cCkW5 +QkHOF9KLKCm6eLI4eBVdeEVxq2oauqpEY9Vq9DixKwAAsEa0tZS0dWN/3Vg1BD386AGNjI7nNCsA +AAAAAAAAAAAAAIDmNTQ8ol17DyrMeQ/qtk39aikVc5oVgKxLd1wy7/h3vvdDfeO+by/49a9+3rN0 +wdYt8z725bu+rg9+/NN6bN/+c3rN4ZGT+ua3/1nv/8in9M4//oB+/NDDC57n2fj+jx447WPf++Hp +H1spzwcAAAAANIqiV9G6a8uuqZakdF23j25zwlcAgLWHf9kAAKxemYuc9IKnLnYVXxx5J8X3SQ24 +rgpsksxkiu8txPfJhZfVX3zFjwEAAKxVPV0dmi1XdOzEaDoWQtBjB45oZHRcF2wZVKnIjyQAAAAA +AAAAAAAAAADOZHpmVvsOHtXk1HTDY1s39quzvS2HWQGYz1OveKJuveOrqlarDY/dcvud+uEDD+qZ +z3iqNg5uUAhBExOTOjk2pv0HD+viC7fpOc+86oyv773XTa9/jd7zwY9rdKzxFw8+vPtRvfdDn9SW +TRt1+aU7dOEFW9TV0amOjjZVKlXNzMxqanpax4ZP6MiRIe0/eEhHjx1ftK//XIyMjJ72seGRkyv+ ++QAAAACAeSTrq0NIh5xzMic5s3jttmTeyZmvPS2EaD0367IBYE1hdSkAYHWJI1W1cJUkNYas0uqv +yxyrJHBVH6yKIlaqj1klwavMBVi6vfxfNQAAwIoz0NcjSXXRK0kaHZ/U+COPadOG9do4sD6PqQEA +AAAAAAAAAAAAAKxoIZgOHT3W8L6LxJbBfvV0dSzzrACcybreHj3nmVfp3v/zj/M+vvvRvdr96N55 +H1u/rvesP8fbbnq9PvKpz2rk5Px/Pxw6clSHjhw9u0mvQO7xD1nRzwcAAACAtSxdmx1Hr8w7yZzM +0hXc0ZpuXwteJTEsI3gFAGuKf/xDAABoEknsyrv45uV8Qb5YfysUC/KF2s15n0avpDgiHEyhGhQq +VYVKVdVKRaFSie6rFYVqVaFalYWqQhy7ygawAAAAEEWvtmzsbxiP3pQ5rAceflRDx0c0Wy7nMDsA +AAAAAAAAAAAAAICVZWp6RkeGhnX/T/bMG7tyzumiLYPq7SZ2BaxE177kRdq2ZfOSfo5Ngxv0n97+ +Fl2+85Il/TxLaaD/9L8o8UyPrZTnAwAAAABOI7PW2sxkIdRu8dpr55xcwUc376L9eBwAsHYQvAIA +rA5J7Mo5Oefj2FV0wZOErQrFonyxKF8oyhcLcsWCXBq88kqvhTIXUUnYKlRr0atQqWaiV7WLLUJX +AAAAjXq7OrR920YVfOOPIGbLFR08elwPPPyYHnj4Ue09eEQnTo6pXKnkMFMAAAAAAAAAAAAAAIDl +NT0zq+MnRrVn3yH98MHdemj3Ph0+dkLVEBqObSkVtePCzepob81hpgDORkuppLfd9Mu6bMf2Jf08 +3d1dettNr9frXn29NgwsPNDkvdeTn3C5nvSEyxdhdo/vaU958mkfu+ppV6745wMAAAAAzqAudGXR +LQ5gSZKck/de3hfSteDZNeIAgLWhmPcEAAA4Zy79EG86KS74yifBKxeHrDL38XF1zCRTdKE0txic +bGfuiVoBAACcu7bWFu28eIuGR8Z0YnRCYZ43Zc6WKzpxclwnTo7nMEMAAAAAAAAAAAAAAICVqVjw +Gljfq3XdnSz6A5pAZ0eH3nbT6/Wv3/+Rvv1P39Hux/bN+36pxOaNg9p+8YXn9bmueuqVesZTrtAD +Dz2s7/7gfj34k0c0MXnqrJ7b0dGuy3Zs109dtlNXPPGn1d3VeV5zOB8veuFztf/AIf3oxw/VjT/j +KVfomuc/e8U/HwAAAADw+KLIVZDMyUL8M63MWm/nJRdcug5cMplF68aNtdwAsOq537zja/xtDwBY ++bJ1Xic5xfEqp9rFjZycd/UXPNkYlpJ/5I/+r8/miV2l0atkPwleRU9Y88GrX942WLd/6aWX5jQT +AADQrIKZTpwc1/DJMYWwts+tAAAAAAAAAAAAAAAATqdULGqgr0e93R2Ers7RI488Urf/mQNDOc0k +Mvf9t3NVfFvd/lOfyPtzV5Pp6Rk9une/RsfGND4xKUlqb2/Thv712rplk7o6Fy80ZWYaPnFSR4aG +dHJ0TNPTM6pUKiqVSmopldTW1qr1feu0YaBfPd1di/Z5z9fuR/fq0b375b3Xzksu0oXbtjbV8wEA +AIDV7nsP1F9fF8P0GY/P+/obK4yTnPdy3svH965QSLclKVSrsmqQVauyEBQsyILJzhCOBgCsDsW8 +JwAAwONKwlWK41Y+LvY6Jzlf2/Zzjkv+cd+SD41Rq/rQler3ldmPtwEAALAw3jkN9PVo/bpujY5P +anhkXOVKJe9pAQAAAAAAAAAAAAAArAhtrS0a6OtRd2d73lMBsAja2lr105fvXJbP5ZzTQH+fBvr7 +luXzLdSO7Rdpx/aLmvb5AAAAAIAziNdsK5iCgrwkOSdzTs6stnbcO0k+CmRVJbkgc4413QCwyhG8 +AgCsbEm4yjk5RTXfKGzl5byLir7xRY3zPo1cJb/HyiQpRDErM4vKvpnC79zoVRq6SnBBBAAAsCS8 +c+rr6VJfT5dmZsuampnVzGxZlUo1ulWj+8D5GAAAAAAAAAAAAAAAWGW8dyoWCioViyoWvUrFotpa +W9TW2qJSsZD39AAAAAAAAIAFMzNJQao6BUVricw5mffRmnHnpHiduMlJJgUzOUmsJgKA1Y3gFQBg +5XDphzRwlRZ6k6iVc1HoyiXhq1r0Kn2O4guZuP6bBq4sjlzFoat5g1cAAABYdsl5nplptlzR9Mxs +3lMCAAAAAAAAAAAAAABYMiGYZkNFs+WK2lpb5L2P3tvKe1kBAAAAAACwWphk0WJvKUjmvORNCkHy +XpLk5KKl5d7LWZDMScGx5hsAVjmCVwCAfDkX30UXJNGFiZsTuoofV/1YclwarIojCVJc/TXVBa2S +yFV2n9gVAABAPsxMYxNTGj45ppnZct7TAQAAAAAAAAAAAAAAyMX0zKymZ2Y1MjohSWopFTXQ16Oe +rs7kbbYAAAAAAABAczJFQSuTZEEhxOvELbO23DnJSzIvZybna2u+WQMOAKsTwSsAQH4ysavoYsTF +2z66WPG18FVS6E1LvRkmRRcrSbwqWEPoSpnfejV3nwsdAACA5RNC0MjYpIZHxlQNIe/pAAAAAAAA +AAAAAAAArCiz5YoODZ3Q0PCo+vt61NfTGf/iWAAAAAAAAKAJRQvB4zXgQUFO3iteVx6vKZfknJdz +Jl8wBUXrwV18DwBYXQheAQDykY1dJRckSfDK+9otc5yS2NWccFUtdBWiwFUwWbwdPSZJ8Xby+bm4 +AQAAWFYhmE6Mjmt4ZEyBczEAAAAAAAAAAAAAAIAzqlSrOnp8RMdPjGpgfY/6eroIXwEAAAAAAKAp +mUwKpmi9d1XBTF6FeLm5i9aYm8mZlyQ5U7puHACw+hC8AgAsjyRclWzHtV1lglfOR7ErJdGr7HGn +iV1FgatQd68keBUscyHDBQ0AAEBeZmbL2nfomCrV6mmPKRYK6u5qV1dHu3q6O9VSKi3jDAEAAAAA +AAAAAAAAAJbfbLmssfFJjU9OaXzylKrV0HBMNQQdPX5SJ0YndOHmDWopsQwEAAAAAAAATcaS6FWI +15lLZl5mJidTtI48WnMueXmZ0p+UmRG+AoBVhn/pAAAsnbiqm4arGvbjbV8/VscsblyF2sVMErrK +RK/qxuLQlYnYFQAAQN7GJk7p4NHheR8rFgsa7F+n3u4utbW2LPPMAAAAAAAAAAAAAAAA8tVSKmlg +/ToNrF8nSZqantHY+KSGhk82/GKxcrmiRw8c0baNA+rsaMtjugAAAAAAAMDCWLz6O5jMBZl3suDk +nJdMcnKSl6SCnMXHJ2vPiV4BwKpB8AoAsDSSwFUatvJpWbduP67wpqEr59I+lcUXInOjVg3BqziC +VQtiKX5MInYFAACQn+MjYzp2YrRh3Dmnwf512rJxIIdZAQAAAAAAAAAAAAAArEztba1qb2vV4ECf +Dh09rqHhk3WPh2Dad/iYtgyuV293Z06zBAAAAAAAAM5DEq8yk0vWigeTOZN8ULzgPF5zbvJmCvGx +CiF+CdaNA8BqQPAKALD4ouuJWuzKeznno9jVnO3oYCnOXcWNqjmBqxDii5bafd0xdZ/caFwBAACs +AKeLXXV3tuvCrRvVUirlMCsAAAAAAAAAAAAAAICVzzmnrZs2aGD9Ou09cFiTUzN1jx8aOiFJRK8A +AAAAAADQXOJglZnJhSBzLopgyct5yTkveScnU7AgF+IAlnO15eNErwCg6RG8AgAsjHO1zWTfucbg +lfeZ+JVLb4nsRYaFuMprIdqOQ1cKoRa9imNXAAAAWHlGxycbYlfeO23btEH9fb05zQoAAAAAAAAA +AAAAAKC5tLaUdNklF+rY8EkdOHKs7rFDQydULBTU2dGW0+wAAAAAAACA85NdK24hxKNermBycjKn +eF26kzMnmat7LgCguRG8AgCcu6hslRZxk9CVmyd2pWzcKhO5MikKWEnRxUi0EYetrP5CJdlOwldc +iAAAAKxYU9Oz6W8RTXjvdOnF29TRzhssAQAAAAAAAAAAAAAAztWG/nVqa23Rnn2HFDLvo91/5Lh2 +XLhJpSJLQwAAAAAAANBEMmvHgySfDMdr1CXF69K9nJckF60zDyF6nLXmANDU/OMfAgBARiZmFZVx +vVyhIF8oyBeTWzG6FYrReKEQHeddHMtSXNw1WTUoVINCtaJQqSiUK6pWKwrVanqzalUWx67MLI1k +AQAAYGUJZto/57eJOue08yJiVwAAAAAAAAAAAAAAAAvR3dWhiy/YVDdmZtp36NhpngEAAAAAAACs +XGYWrR9P1pOHEK09D1ZbR+6dfMHLFXy0Vj2JYQEAmhq/xgMAcM6cnJxPqrhRyCq6jy8UnJOTS+NY +UiZOlUSrzKQQ3Ye4qGsWorH4OCVxq8xzAQAAsHIdOTaiajXUjV24ZVCdHcSuAAAAAAAAAAAAAAAA +Fqq3u0tbBvt1aGg4HZstV3RidFzre7tznBkAAAAAAABwjpI1587FS9KdzDs5c5Lz8Xp1Sc7JyymY +yQUXHceacwBoaj7vCQAAVqgkVuXiuJV3tfptcp+9uSh2ldxqsStFvSuztKqbFHdDCJnibpBVQy1+ +FUJ0sZG9AQAAYMWama1odHyybqx/XbfWr+vJaUYAAAAAAAAAAAAAAACrz8YN69XV0V43duzEqELg +vbYAAAAAAABoQmZSCDJL1phH69FlFq1zT9e6R2va5V26Bh4A0JwIXgEA6rnaCb/3Xr5QiG7Fonyx +qEIpuveFonyhkMaulG1bpQGrqqxSVahWFSpVhUpF1UpFoVKJQlfZ2FU2akXcCgAAoOkcHxmt2y8W +vLZtHsxpNgAAAAAAAAAAAAAAAKvXxds2KbucLwTTidHx3OYDAAAAAAAALIRJMjOFYAqhqhCqtbXn +cdwqCV95H619d0SvAKBpFfOeAABghXAu+ofvzAl/uu2c5F0atnJyteOjgRqz9AIie18/Fl10NBwf +7wMAAKC5VCpVjU2cqhvbsnFA3tPZBgAAAAAAAAAAAAAAWGylUlEb+tdpaPhkOnbi5LgG+npynBUA +AAAAAABwvpL15kEWaqPOF6L7JHrlvbxJ6SEh1NasAwCaBsErAIAkNcSunPfxtpfzvjF4lZWJVZmZ +LCQXFCaLLxSi8aCodhWVdrPPBwAAQPM6MTpRt99SKmr9Ot5ACQAAAAAAAAAAAAAAsFQ2blivYydG +0wV91RA0NnFKPV0dOc8MAAAAAAAAOEemaJ16MAULciZ552QyOSXr4L2ck+Qlrzh6ZSZzjrXqANBk +fN4TAADkIK7YKhO0qr8V5txHsSuXiV6l4piVQojiVvEtVINCdqxajbeTwm7mBgAAgKZ2cqw+eLWh +f130mxMAAAAAAAAAAAAAAACwJIqFgtb3dteNzX0PBwAAAAAAANAsLIleJbdgUojWopskOcll18Y7 +l94AAM2lmPcEAADLID5Rd9n7KGUbb2dO6Bu2o+Mkk0Wp2zRUlV44qBaxiuJXtYuJ9MIij68bAAAA +S25qekbVENJ9J6l/XU9+EwIAAAAAAAAAAAAAAFgjBtb3avjkWLo/OTWjEIK853ejAwAAAAAAoMnE +69GdJFmQzCmYk0ImauWS9fJeLl7D7sxkyePGinYAaAYErwBgtctErhqCVv40kSvVglgRU1SsykSs +gsksZEq5qgWv4uPTYyUuEAAAAFapqZnZuv2uznYVCoWcZgMAAAAAAAAAAAAAALBaZSyOAAAgAElE +QVR2dLS3qVgoqFKtpmPTs2V1tLXmOCsAAAAAAADgPCXr0oNkziRnMhck5zNr4iV5yZmXCyZzFo2Z +yeJ7AMDKRvAKANYAVxe5ik7onfdycfDKeZ9Gr2qRq1gSs4pjVxZCFLsKIbolUav45N+yFwFcEAAA +AKx6p6Zm6va7OjtymgkAAAAAAAAAAAAAAMDa09XRppPjk+n+1PQswSsAAAAAAAA0rzh6ZWZSCFEA +q6Ba9Mp7OTO5YNFaeXOSueg41rYDQFMgeAUAq4lzmU2XjqXBK+/kXBS6kqsFr9LYVfKc6CogPbE3 +C2nU6vGCVwAAAFhbZsuVuv2OtpacZgIAAAAAAAAAAAAAALD2tLfXB69mZss5zgYAAAAAAABYHMka +9mAmH0ySybl4PXuybt6i+FW0Nj5IgfAVADQDglcA0OziSFUtXCVJjSErl25njlUSuKoPVll8Yl8X +s0qCV8l2Nna1/F81AAAAVoi5b5Jsb2/LaSYAAAAAAAAAAAAAAABrT3tr/S8nmy0TvAIAAAAAAECT +y6xnl6QgyTvJzMlZkFRbX++9V0gOkqRqlbXvALDCEbwCgGaWxK58ErPyUdjKzxO6Ui14lXkBSRZF +ak8XtooerAWw5jkeAAAASBQLhbynAAAAAAAAAAAAAAAAsGa0tJTq9iuVak4zAQAAAAAAABaPmUUr +4ePolTknc0HmnOQluWiNvZyXd3Hvyix6PN4GAKxMBK8AoFm5WnnWOZ+ekDsflWij8JWPoleKQ1fZ +E3ST6uJVIUShq+Q+qd6mJ/NWf17PST4AAADm4Zx7/IMAAAAAAAAAAAAAAACwKFrnBK+q1ZDTTAAA +AAAAAIBFZBYvh4/WtJt3MnNRCMskKQpfebkocmWmqjkpRNuKxwAAKw/BKwBoBi79EG+6OGQlydeC +Vy4TuopCWK4WuUrEsSszi070k8jV3OBVfM+JPAAAAAAAAAAAAAAAAAAAALAyee/r9gPv/W063juF +UPvvrRqCCnP+ewUAAAAAYDnNDWp77yUa28hDErtK1r67OG4lL+clp3jNvVe0vj6YnA+SRevrs8Es +AMDKQfAKAFaqOFQVRatqJ9zRXRK8cnI+3nb191J8/h19iPcbY1dp9CrZT4JXOX3ZAAAAAAAAAAAA +AAAAAAAAALBWFHxBIVTS/WqV4BUAAAAAIF+VarVuv1DwssppDgaWQ7ImPgQFSV4myUveR2vr43X4 +3jvJCjI5WQjxU1k1DwArDcErAFiJknCV4riVj/ajmJWvbfs5x8XbcW5WUmPUqj50pfp9ZfbjbQAA +AAAAAAAAAAAAAAAAAADA0mgpFVWu1FYNT8/MqqXEch8AAAAAQH6mZ2br9ltLJU3P5DQZIGbBJEUR +qyh65eRkUry8Plp77+XToySFIHOONfMAsMLwE3AAWGmScJVzcpKc93HYyst5J+drwSvnfRq5is/F +o2hVsDhUa7JgMgvRfQgN0as0dJXghB0AAAAAAAAAAAAAAAAAAAAAlkVbW4smp6bT/emZGfV0deQ4 +IwAAAADAWjc1p27V1tai6YmcJgNItfXwQTKryptkzsmS9fjJ+nzvJSmOXpnM3BleFACQF5/3BABg +TYvOoNMTaBfffLJdKKT76VgcukpiVy5+GVPcqkoDV5lbdc5+9pYJXxG7AgAAAAAAAAAAAAAAAAAA +AIDl09HWVrc/MTmV00wAAAAAAIhMTJ6q2+9obzvNkcAyMpOZyYLF6+Qz+/EaeSel6/Cdi9flO6JX +ALDSFPOeAACsOfFJcVSKlZxcGr1y6X38uOrH0jhWfEIu59IT8ChcpTRgZelJe6jbV+YeAAAAAAAA +AAAAAAAAAAAAAJCfzo72uv3xySmZGYsxAQAAAAC5qIag8Tkx5q45165AbjLr66PolZO5qiSfHpKu +zfdOzpyc+fiprK8HgJWC4BUALKdM7Mo5J3kXb/v0xDkJX0UhLKX3WSZFJ9RJvCpYQ+gqfUxq2Odk +HAAAAAAAAAAAAAAAAAAAAADy197WokLBq1oNkqQQgk6OTaivtzvnmQEAAAAA1qKRk+N1+6ViQa0t +pZxmA8yjLnplCgrypnTdvpyTvJczi27B0jX+6Rp9AECuCF4BwHLJxq58HLlKglfe126Z45TEruaE +q2qhq5CejFu8HT0mSfF28vk5+QYAAAAAAAAAAAAAAAAAAACAFad/XY+Ghk+m+0ePjxC8AgAAAAAs +OzPT0PBI3Vh/X29OswFOL11TH+KAuCTvfLSe37loeb7zcs7kfLzGPj7WWHMPALnzeU8AAFat5IQ4 +E7Ty2bBVvO8LhfrYVfyc08WuLD75thAU4luyb9WgUM3sZwJZAAAAAAAAAAAAAAAAAAAAAICVZ2D9 +urr9qekZTUxO5TQbAAAAAMBaNTo+qZnZct3YwHqCV1iBMsGr2s2iJfVm8Xp9yXlXt7Y/Wf8PAMhX +Me8JAMCq4qIPtXDV3P1427s5casMi0+mFSSTTJnQVSZ6VTcW4m0lYSsCVwAAAAAAAAAAAAAAAAAA +AADQDFpbSurp6tDYxKl07MCRY/qpHRfmOCsAAAAAwFpiZjpw+FjdWF9vt0pFkhRYmczi9fQhRPve +yZmTmVO6et85ee8Vkt04hpU+FwCQC84uAGCxJIGrNGwVVV6dn7PvnORUC105l/ap0mrsmeJWSdjK +LBPEik/KTSJ2BQAAAAAAAAAAAAAAAAAAAADNZXBgfV3wamp6RsMjo+rv681xVgAAAACAteLo8RGV +K5W6sY0D63OaDXAWzGqr6s1kIciStfzeS4rX8xecvJOCTM58tEbfuXhZPuvyASAPBK8AYDE41ceu +vJdzPopdzdmODlZahk1OhusCVyFEgavMfd0xdZ/caFwBAAAAAAAAAAAAAAAAAAAAQBPr7mxXV2e7 +Jian0rH9h4+po71N7W2tOc4MAAAAALDaTUxO6fDQcN3Y+nU9am9ryWlGwFlK1t9LMudkzmQ+Wo/v +pCgA4JycnMxMLpgsGWtYsw8AWC4+7wkAQNOJT2Lr4la+EN9nboXsfnysc9FTFTWq0thVSG5BFoJC +fLMQZNVqOpYEsFR3y/fbAQAAAAAAAAAAAAAAAAAAAABYuIu2bJRzLt03M+3Zd0jVashxVgAAAACA +1Wy2XNae/Yfqxrz32rppIKcZAefOzGQWolt2Tb4kJyd5J+fq1/0nrQAAwPIjeAUAZ8MpOmmNA1be +e/lCQb5YlC8WVSgW4vto3xcK8knsKj7RNakWs6pWFSpVhUpF1UpFIb1V08CVzQ1cAQAAAAAAAAAA +AAAAAAAAAABWrZaWki7cMlg3NluuaNfegwqB6BUAAAAAYHFVKlXteuxgQ2h5+wWbVSwUcpoVcD6i +9fgWr+O3ajWOYJlMcfjKOTnv5H1BrlCQ814ieAUAuSjmPQEAWPGS2JXiSmscsUpOatN6a3yMnGo1 +1+Qc1xSdJJtqJ8cW4hPn+EQ5fiw+KDp1jo9VvA0AAAAAAAAAAAAAAAAAAAAAWL3Wr+vRqakZHTtx +Mh07NTWtn+zZr50Xb1WpyFIgAAAAAMDCTU3PavfegypXKnXjWzYOqKerI6dZAecpWacfTFJQkOSd +k+TknElpA8BLBck7KUjRWn7nWMcPAMuMn3IDwFlwiuJWznk576NtH2/PiV1FJdfMSW0auIpOks1M +IQRZCFH0KtTiVmnoKvNcAAAAAAAAAAAAAAAAAAAAAMDasW3zBs2Wyxodn0zHpmdm9eNH9mrbpgH1 +9/XmODsAAAAAQLM7PDSsI8dONIwP9PVq40BfDjMCFs4sil1Z1SlqXDkVnJPMx7ErJ3lJVpDk5Mxk +lpSvAADLieAVACRc+iFqVmU2krBVXfDKJWOu9oTkPipYRb2qJHgVgizE9+l+iE+eRdwKAAAAAAAA +AAAAAAAAAAAAACBJuviCzdqz75DGJ06lYyEE7Ts0pOMjY7po60a1tbbkOEMAAAAAQLMZnzilfYeH +NDtbbnhs/boeXbBlMIdZAYvEJJMlG7LgZc5kPsjJR8v/nYtzAE7OvFwwOZdZ7w8AWBYErwAgjVZJ +LsqzRieqLrvt5VSLWyXHS3HbKmTSrcnJcBK6stq2Qm0sGY+ew0kwAAAAAAAAAAAAAAAAAAAAACDi +ndPOi7Zq36GjGh4Zq3vs1NS0Hty1V/19PRrs7yN8BQAAAAA4o1NT0zo8NKyxTFQ5a/NgvzZtWL/M +swKWgClqAJgkCwrBSVUn5xX1AaS0FeCck/NOzvva07Pr/wEAS4bgFYC1y7moWZU5Ic2eoMo7Oefr +Q1jRE9PYlaRazGrOff2YamXX7GPxPgAAAAAAAAAAAAAAAAAAAAAAc124ZaPaWlt18MixhseGR8Y0 +PDKmllJR3V0d6unqVFdnu4qFQg4zBQAAAACsFDOzZY1PntL4RHSrhjDvcd47Xbxts3q7O5d5hsAS +ihbwy4JJCgrOycsk7+Xko46Ak5zzcs7kCtFafzOLWlms/QeAJUfwCsCaNTd25byPt31UYp0bvMrK +xKrM4hNeC7JgshDS4JWFoKh2FZ8bZ54PAAAAAAAAAAAAAAAAAAAAAMDjGexfp86ONh08ckyTp6Yb +Hp8tV9L4lSS1tbYQvQIAAACANWp6dlaVSvVxj1vX06UtGwfU2lJahlkBy8tk0Xp+M6laVTAvLxfF +raLIQNoV8DJFbaxA7AoAlgnBKwBrg3OZTVe7dy4TuYoCV1H8yknxdnTWmilWxTGrNHYVB6+S0FVy +Mmuc1AIAAAAAAAAAAAAAAAAAAAAAFkFne5su236BxidO6cjxE5qYnDrtsdMzs8s4MwAAAABAM+nr +7damDevV1tqS91SApWNx9CqEtDNg3snMyZlFYy7uDXgvLymkzzUaAQCwxAheAVidslGr5D5TW01D +V/NuR8dJJguSMgVXM0X3qo9eKdTiV2kIK4+vGwAAAAAAAAAAAAAAAAAAAACwanV3dai7q0OnpqZ1 +9PiITo5N5D0lAAAAAMAK55xTf1+PNvb3qaWllPd0gOWTrPk3kwWTOZO5IHkfPe6cnPOSnFzSEYj7 +BCJ6BQBLhuAVgNUnE7lqCFr500SuVAtiRUzx2WstYhVMZqEWtEpOWqONuItldSe+AAAAAAAAAAAA +AAAAAAAAAAAsto72Nm2/YLNmy2WNjZ/S5NSUpmdmNVuuqFKp5j09AAAAAECOSqWiWkpFtbe1qrO9 +Tb3dXSoUfN7TApZXEq9K1v9bkJmTmZNCiFsDkpyXZPJmCmZyZlII8UvQCwCApUDwCsCq5OoiVz7a +9l4uDl4579PoVS1yFUtiVnHsykKIYlchRLf0pNbiw63uuQAAAAAAAAAAAAAAAAAAAAAALIeWUkkD +63u1PnSrXC5rdnZW5XJZlWpV1aqpXC7nPUUAAAAAwDIotZRU9F6FglepVFJLS4tKpZK8J3SFNSxZ ++29BFpzMmYIL8t7LXK074GQKFuRC3B9wTjb3NQAAi4bgFYDm5lxm06VjafDKOzkXha7kasGrNHaV +PMcURayktNCaRK0eL3gFAAAAAAAAAAAAAAAAAAAAAMBym52d1fHjxzU2NkbYCgAAAAAwr1KppJ6e +Hm3YsEGlUinv6QC5sKQlYEGK/iOfNAekOH7l5bzJxS2B2nNpCgDAYiN4BaD5xJGqWrhKkhpDVi7d +zhyrJHBVH6yKIlaqj1klwatkOxu7Wv6vGgAAAAAAAAAAAAAAAAAAAAAATU1N6dixYxodHc17KgAA +AACAFa5cLmt4eFjDw8Pq7e3V4OCg2tra8p4WsLzSXoApyl1FkSvJyVxcDnCS807efHRECFII0XFE +rwBgURG8AtBcktiVT2JWPgpb+XlCV6oFrzIvIMkyFdZ5wlbRg7UA1jzHAwAAAAAAAAAAAAAAAAAA +AACwnE6dOqWjR49qYmIi76kAAAAAAJrQ6OioRkdH1dPTo40bNxK+wppiZlHASk5ecfDKOZllOwVe +Kjh55xSS5wAAFh3BKwDNI4ldxSeLzsfBK+/kfRK+8tHJpOLQVfycqLoq1cWrQohCV8l9vF0LWll9 +24oTUgAAAAAAAAAAAAAAAAAAAADAMgshaP/+/RobG5v38ZaWFnV3d6urq0vt7e0qlUrLPEOcq+ET +J/QzP/vcuoWzl+7cqbvuuC3HWQEAAABYLcrlsqampjQxMaHx8XHNzs7WPT42NqaxsTGtW7dO27Zt +i2I/wGpnFuUGqqYgSc6r4C1qCCR9Ai85i2JXzkwuBDlHZgAAFhvBKwArk0s/xJtxFVWSfC145TKh +qyiE5WqRq0QcuzKLTjjTyNXc4FV8zxknAAAAAAAAAAAAAAAAAAAAAGAlmJmZ0d69ezUzM5OOOec0 +ODionp4etba2sjC5Cd177zfrYlcAAAAAsJhKpZJKpZJ6enokRWusZ2ZmNDY2pqGhofR65OTJk5qZ +mdFFF11EPBlrQ3ItHkxyQRacLPm5SjZ6JS9nIeoZmJcppM0CAMDCEbwCsHLEJ4NRtErRCWGynQav +nJyPt139vRSfY0Yf4v3G2FUavUr2k+BVTl82ACylJ1zxtIaxnTt26LZb/iaH2QAAgMVwyWVPaBjj +tzsCaAb8/QUAAM4V5w/A/MxM/+fb/6D7vvkt/cu/fldDR4d0YmREIQR1dHRo8+ZN2rnjEj39qU/V +c579LO3YcUneU8YC8fchAAAAAABr1+TkpPbu3atqtSpJ8t5r8+bN6uvrI3LV5L5xz715TwEAAADA +GuKcU1tbm9ra2rRhwwadOHFCR44cUQhBU1NT2r17ty6++GK1tbXlPVVgWSSdgRCCJCdnihsGXi7u +Fzjn5byXM5NPnhOsFs0CAJw3glcAVoYkXKU4buVdejKYPTFMxtPjkn+ks+RDY9SqPnSl+n1l9uNt +AAAAAAAAAAAAAFiJvnH3vXrP+96vh37y8LyPj46OanR0VA899BPd/uWvSJLe957/peuufelyThMA +AAAAAACLYGJiQo8++qgkQldna3xiQg8//Ij27duv8YkJTU5OyszU1dWlrs5ODQ5u0M6dO7Rp48bc +5hhC0J13fVX33ndfbnNIzJbLeuihn2jfvv06dvyYTp2akvde3d1dGugf0OWXX6aLLrxA3vtc52lm +2r1nj370owd0fHhYMzMzam1tVVdnpzZsGNCzfvaZ6ujoOOfXbYY/LwAAAMBScM6pv79f69evT8NX +5XJZe/bs0fbt29Xe3p73FIFlYWZSCHFewCQV5AomyUvO5LyTMy8vKchJIUgu1LoEAIDzRvAKQP6S +cJVzcpKc93HYykcngj5TQvU+jVwl/0xnkhSimFVSRjUL0X0IDdGrNHSV4KQSAIB5hRB0819/Xjd/ +/m906NBhbd2yRb/02lfrFTden/fUmgLfPwBrVQhBf/GXN+tzf3WzDh48pG1bt+oNv/xLevWrXpH3 +1AAAAAAAaFpmpvd/4IP60Ec+dk7Pc87pOc/62SWaFQAAKxs/rwYAAEAzm56e1t69eyVJg4ODGhwc +PO/Q1b/79y/Xgw8+1DB+2y1/qyc98QkLmmfWW37t7fr7r329YfwjH/yAfv7FL6obe/FLrtUju3Y1 +HLvn4R+f8+d9+JFd+tLtX9adX/177d6956ye09XZqac//Wl63nOfrRc8//nafvFF5/Q5z2f+s+Wy +vnjrbfr4Jz6lRx/bO+8xj+zapUsue/z/Ts7n+5Q4deqUbr3tdn35K3fqO9/5V82Wy2c8vre3V9dc +/QJdd+1L9ZxnP+u8P2/W3K/xpy6/THd86YsNx83MzOjPP/sX+sub/1oHDhw87et9696vn3XwKo8/ +LwAAAMBKlYSv+vr6dPToUR0/flyPPfaYdu7cqVKplPf0gKWVxq6cgjc5SV5O5uPeQdI+iCPQUfQq +ep45R58AABaI4BWA5eXSD2ngSnHMKrmPwlZR8CoKX9WiV+lzFIeuTHHMKg5cWRy5ikNX8wavAADA +Wfnoxz+pD3/04+n+7j179I53vksnR0d105t+JceZNQe+f0DzOps3jS2HhbwxLU8f/PBH9YEPfjjd +37V7t/7b771DIydP6tfeelOOM1s+5/NnqKVUUmtrq3rX9Wqgf0AXX3ShLr10p55y5RV6+tOeqpaW +liWYKbCy8fcxAAAAUPOhj3zsnGNXknTVM56ugYGBJZgRAAArHz+vBgAAQLOqVCp69NFHZWa65JJL +1NnZuaDXu/H6l+kP/scfNozf8sXbFi14dfLkqO65976G8fV9fbrm6hcsyueY67G9e/We931Ad3zl +znN+7sTkpO6975u6975v6p3veree+pQr9apX3qgbXv6y8w6Lncn//vPP6lN/9mkdOXp00V/7bJXL +ZX36M5/VRz/+KY2Ojp7180ZHR/WFW27VF265VU964hP0W//pN/XsRY7sHzp8pGHsR/c/oLf/h9/Q +vv37z/jc1tZWbd606XE/RzP9eQEAAACWm/demzdvVldXl/bu3ZtGrzjfxWpnFoWuLEhSkHknmZcs +yFwUunLOSXH0yplJ5uTMRd0CAMB583lPAMAakCmYOu/lvZcvFKJbsRjfCioUC+m484U4ehU9V5mQ +VahWo1ulolCpqFqpKFSqtfFqtS56RewKAIDz83dfaPxtWZL0+b/5u2WeSXPi+wdgrTrd33M3//Xn +l3kmzWW2XNb4xIQOHDio7//gB/ribV/SH7/3/Xrt696gp/9fz9L/+5v/Wd/93vfzniYAAAAAIAff ++/4P6mIdc61b16ufueoZev7znqsrnvwktbe3p4/92xf/m+WYIgAAKxI/rwYAAECz2rdvn6rVqi6/ +/PIFx64k6bprr1VLqdQw/qXbv6xKpbLg15ek2++4Q+VyuWH8Zdddq9I8n3uh/v5rX9dLr7v+vOJF +8/ne93+g/+/zf7tki7n/x/98d66xq8f27tV1N7xS7/6j955T7Gqu+x/4sX7p9W/U7/7+H2h2dnbR +5jc2NqZTp06l+3ffc59e9drXPW7sSpIuuvCCx/3vrdn+vAAAAAB56e7u1qWXXqqZmRkdOHAg7+kA +y8KkqEFgJgVTCEEh6RTEx7ikk+CSW6aBAAA4L8W8JwBglYtP1NITtzhi5ZyPI1hxDMs5OTlF/4nu +s7InixafMGZjVnVhK6lhn9gVAADn7tjx4/OODx07tswzaU58/wCsVaf7e+7o0NAyz2T1mJw8pVu/ +dLtu/dLtesHzn6d3vuP3tHXrlrynBQAAAABYJh/+6McUQmgY7+zs0O//7n/Tdde+VMVi7e0f1WpV +P7r/ft19z336eYJXAIA1jJ9XAwAAoBkdP35cU1NTuvzyyxctFLVuXa9+7pqrdcedd9V/ruFhffNb +39YLX/C8BX+OL9xy27zjN95w/YJfe66777lPb/m1ty/6677lzW9c9NdcCX7wgx/q9W96y4JCV3P9 +5c1/rV27d+sTH/uwuru6FuU1Dx8+oh07LtEXb/uS/uN//q/z/kx0Ptu3X3zGx/nzAgAAAJyb1tZW +XXrppdq1a5fGx8fV3d2d95SApWWWdgyihkGQZfoIci7NHjjvJTO5TL8gbSAAAM4JwSsASycbu/Jx +5CoJXnlfu2VP+pLY1ZxwVd1JopksWFRGTR+TJKudGEqcHAIAsECDGzbo8JEjjeODG3KYzdL6yp1f +1e49eyRJ69ev12te9YoFv+Za+v4BQNbGwUEdOny4cXzjYA6zWX3uufc+veSl1+lTn/iornrG0/Oe +DgAAAM7g9i9/Rbt275Yk9ff365de++qcZwSgGR08dEh333PfvI99+E//RM977nMaxguFgp5y5ZV6 +ypVXLvX0AGBN4fxuaS3F95efVwMAAKDZVCoVDQ0NaefOnYsWu0rceMPLG4JXknTLrbcuOHj12N69 ++v4PftAwfuUVT9Zll+5c0GvPdWJkRP/xt/7LaR+/4IJtetE1V+uJT3iCtmzZrI6ODk1PT2tsbExH +jh7V/fc/oB/86H499NBP6p53ySXb9XPXXL2oc82a77W/9vVvNIx1dnboZ5/5zEX7vLt279br3vAm +jU9MzPt4Z2eHnvucZ+tZP/tMbdq4Uf39/ZqdndXw8LD27tuvu++5V9/93vfnjU/90z//i25666/r +c3/+Z3VB/vN1+MhRTU1P67/89u82fL4dOy7RS37+xbriyU/SQH+/ZstljY6OaveeR7XtDL80rln/ +vAAAAAB5a21t1fbt27V//35dfvnleU8HWBZmJrMgBaXBKyUdBO/lktCVObng0o5CXdsAAHDWCF4B +WDxJuCrZToqlmeCV81HsSkn0qq5sOn/sKgpchbp7JcGrEIewomcs8xcMAMDqduMNL9effugjDeOL +EYNaScxM7/7j9+jYseOSpJ07dizK17hWvn/AanS+b0b6h3/8R01Onlq012tWr3rljXrfn/xpw/ha +X/x1pjckhlDV5OQpnTp1SgcPHtKJkZEzvtb4xITe+Oa36i8++2ld8eQnLcV0gRWBv48BAM3MzPTO +//mH6c8bLt25c82fEwM4P/fd963Mv4fWXHP1C+eNXQEAlgbnd0trqb6//LwaAAAAzeb48ePq6upS +a2vror/2c5/zbG3auFFHjh6tG//7r31D4xMT6u7qOu/XvuWLt807/oobrj/v1zydv/vCFzUycrJh +vKWlRb/3O/9Vr7zxBhUKhcd9naGhY7r7nnt12+1f1j/+0z/rpjf9SvqLvJfCJz76oYaxSy57QsPY +ls1b5j32fExNTemmt75t3thVsVjUm37l9Xr7r/+q2tvbT/sav/qWN+vAgYP67+98l75+9z0Nj//T +P/+L3vXuP9Lv/85vL3i+Dz74oD73VzdrdnY2Hbvwggv0O7/9W6f99/6fu+bMr9msf14AAACAlaCj +o0Otra0aGRlRX19f3tMBloGlbYMQgrwkycm5+H07zsk5J3NezsdjIdTiWPO8vwcAcHoErwAsTFS0 +qoWrGvbjbV8/VscsPocLkkmmTOgqE72qG4tDV7XmKSeBAAAstre8+Y3q7S495R4AACAASURBVO3R +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 +Bg+u1/ZRO97ky/hxB2UtTw2rfe31NzLWH3H4zgOvDp10SMYFxv/99FMtXOSf21dVVWW9aG7ihHE7 +rTvV8u1C2SSptLRUE+r4t9VH9caN2rhpU6O3z0UU+v9C92fNLUr7d0t7P9dHlJ5/qXWPH6LQ30rK +GoK7ecvmRrcptCDHz5YLIWr7R9RxPpRfUT8esn8UFvtb4UThfCFKWuP4OVfsv9HFeLy4ROH1asn7 +cz76u5Y0XqT/B4DWq127dhq5x+46+qgjddqpJ+v8c8/WN752sb560YU6+0tn6ITjp2vM6AOLJryo +Y4cOmjhhvE4+8QRd/JUL9NWLLtQZp52q8ePG5hx2tb3S0lINHz5M0489RueefZa+8bWL9bWLv6Kz +zzpTUw+frCGDB+c97KrQWtr7BQAAAAAQXWE+hOcFeRGek3NeWpiVn11hZWNBJoU1Uss6FQeArAi8 +AurLSMYoJfTKJgYPfrhViR96VZoZepU+uPAHJi4YmITBVvHaWnlpU9wPxEoMYDw/yZOwKwBoMUaO +3CNr+XPPv5iX+mflGEx10NgxWcufff6FnOotlPLycn37G1/Pum7xkiU73f6A/ffLWv7U08/k1K7W +6NXXXs+5jrffeTdr+Z57Zv+iarEZN3Zs1vIZT+Xn/VZVVaXXXn8zo7y8vFyjWshzCKB1Ki8v1w++ ++52s6xYtzj1wsbmVlpbqpz/+YdZ1115/oz5dtapB9U0Ynz0U5alnnm1w2/Jh9IEHZC1/csZTzfL4 +E8ePz1r++BMz8lJ/VVWVXnk1c9xTXl6uvfcalZfHyKdRo/bMWv70M8/lpf73ivDCmIY66cQTVFZW +lla2adPmtOcw2/ursrIy8Uuy+fDyK6/mXMebb72dtXyver53o3a8yZeuFRVZL1B7+23//GTFipVa +tWp12rpePXvWuX9tX/e+++ydUf7Sy/7r+eZbb2f8UlNZWZnGjD6w3u2XpFWrP8so615ZmfHebYg3 +3sg8t2hOhe7/C92fNbco7d8t8f28M1F6/qXWPX6IQn8rSR07dsgoq9pQ1eg2hV559bWc62huUds/ +oo7zofyK+vGQ/aOw2N8Kq9DnC1HSGsfPuWL/jS7G48UlCq9XS9+fc+3vWtp4kf4fAAAAAAAAABAZ +qZkSXlxemBcRfCfYz6wwfl6FjcnaRKBFYdsNAM2AwCsgG2MSUzLcKpYIuUpMsdTl4L7G+JvKj6Zy +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 +9NgTT+qMs87VcSeeohtvvlWLFi9u0OPNmv2+zjznfK1YuTJjXVlZWdYLiuvy40t/oPbt22WUb926 +VRd85au67vobtXXr1nrVVV1drUf//ZjOOf9C/en2v9S7DS3F8y+8qDPOOk/zFyzc6X2fevpZnXP+ +BVq/fkPW9Zde8r0GX0gu1f0l5H8//oTuuOueBteXb0ccPkVTs1w0HY/H9c3vfF+X//I3+vzzz3da +z4qVK3XhxV/XTbf8Kev6acccza9FAyi4R//9mE485XQdecx0XXf9jVq4aFGDtn9v5iyddNqZWr5i +Rca6srIyHdHACx+ipkuXzvpOHRcaXH/jzfrkv/+td11fPu8cjdxj96zrrr7mOp159nkNvphg5cqP +dfe99+vk087UYVOP0gsvZgb71OV/fvbjOsdXZ5/7ZV19zXUNGl/945FHdfqXzqmz39veUUdM1ZFT +D88oj8fjuuhr39TPf3F5vfrb5StW6JzzL9Qfb7gp6/rjp0/TYZMOqVebCqWkpEQ/+3H2C34++e9/ +Ne24k/T4kzPqVddTTz+j4046NecLU4rRcdOnqV279Pf0gw/9XfPmL0gra9eunY4+8sgma8ezzz2v +k049M+Nxs3lyxtM67cyz6hxv/+wnlzZqvB21402+TBg/LqPshptvTfzBOdSYvidbkO9dWQJ5J0zI +bEN9TJwwPmv5W2+/o298+7uqqqra4fabN2/WXffcp6lHT0sLfc52HK+PltT/F7o/a25R2L+j9n5O +NXbM6Kzlj/zr3w0KK61LFJ7/UGsfPxS6vx07ZrR22aVv1nVXX3Odfvf7q+p17Hn1tdd13Imn6I03 +32rQ40dRlPaPYsD5UP4Uw/GQ/aOw2N8aLkrnC009vmsOrXn8nCv23+hiPF5cCv16SdHcn6PU30Vh +vBiV5+PJGXV/V6u+43oAAAAAAAAAALYX5kyEuRSJ7AnPKfwWsjEmS+YFgVcAWp6SQjcAaBYpgVVG +QeBVaviVkWSsn3yZKAsCruRnWyn118Wc5JQyoEgZXMhLlrnUUCvCrQAAdZgy+VAdP32a/vHIoxnr +1qxdq+/94FJd1/9GTZ0yWcOGDlFlZaVKSkpUVfW51q9fr1nvv6833ngr48tae43aU6WlpWlfOG6M +kpIS/fHaq3XamWdr9erPMta/+dbbOuOsczVs6BCNGX2gRo7cQxVduqhjx46qqanR5s2btXHjRi1b +vkKLFi3WnHnz9NFHSxvVlgULF2nBwkW6/sab1b17pfYcOVJ7jtxDffv2UedOndS5UydJ0patW7Vq +1WotWrxYr73+hubMnVdnnV//6kXq2LFjvdvQu1cvXfGbX+kb3/5exsXM22pqdPOtt+ne+/+qiePH +acyYA9Wje3d16dJFNTU12rhxo9auW6cFCxZqztx5mjlrtmprayVJB+y/XyOekeJzwP77afb7H2jb +tm2SpPc/+EDHn3SqRo3aU4dMnKD+u/VT165dVV5ers8//1xz583XjKee3uFreOLxx2nSIQc3qj1T +D5+sq6+5TjU1NRnrrrjyaj33/As6bvqxGjhggOLxuNauXafVq1drzrx52mvUnjr15JMa9bgN8cvL +L9NHS5dqwcL0L3I65/TAg3/Tw/98RAeNHa1xBx2kXj17qFu3borH41qzdq1WrvxYz7/wombOmp3x +fg3tsfsI/eLnP2nyfwcA1Nf8BQs1f8FCXXPd9erevVJ7jRqlvUbtqV126asunTurS+fOkqTNW7bo +009XaeGiRXr5lVf14Zy5ddb57W9+vUH9fVSdecZpuuf+B7R48ZK08i1btuj/fvUb3XT9dfWqp6Sk +RLfefIOOO/GUrOO71994UyeecrqGDxuqcQeN1Z57jlTXigp16tRJ27Zt0+bNm1VdXa2ly5Zr4cJF ++s+cOVqy5KNG/7v69O6ta676vb7y1W9kHV9df+PNuvPuezXp4Ik66KAx6tmjhyoqKrRt2zZt3LhR +a9au1fz5C/SfD+fo3fdmJsZXow88oN5tuOK3v9aSjz7KCOJ0zune+x/Q3/7+sMaPG6uJEyaod6+e +af3t8uUr9Oxzz+vd92bW2d+O3GN3/fLyXzTwmSmMqYdP1kknHK+HHv5Hxro1a9fqG9/6rgYM6K+j +jpiqEcOHqbKyUqWlpdqwoUrr1q3Te7Nm6bXX3tCy5cvTtt1n771UWlqqt95+p3n+IQXUoX17TZ92 +jO5/4MFE2cqVH2fc7+gjj8jLRaGpRh94gGbOmp0Yb8+aPVtHHXuc9tprlA6bdIgGDuivrl27qm3b +tqqqqtKHc+bq8See3OEx9JSTTtRhh05qVHuidrzJl4lZwqbWrFmTttyxQwcdNHZMg+vee69RquzW +TWvWrk2UZbvI7uAJExpct+SHdY0YMVxzs5xjzXjqGb32+puafuwxGn3g/urdu7esNdqwoUorVn6s +d959Vy+8+LKqq6vT2zJxgo6bfqy++/0fNqpNUsvo/6PQnzWnKOzfUX0/S9JRR07V735/VdbPG379 +2yv0zLPP6cQTjtOggQMTnzesWrVK/5kzR/vsvZfOOO3UHdYfhec/VWsbP0Spv43FYvryuefof3/5 +66zrb/nT7fr7w//UUUcdoQP221fdu3dXmzZtVFVVpXXr1+uDDz7US6+8knGOUVlZqZF77K4XXnyp +wW0qtKjtH8WA86H8ifrxkP2j8NjfGicK5wtNPb5rDq15/JwP7L/RwXi8uETp9QpFdX+OQn8XpfFi +oZ+PTz75pM512T7vBwAAAAAAAACgvpwks13wlWeMUiOtjDGSNTLOyLngVsbfmMwKAC0EgVdo2cLO +PQiwMjYZZpXo6I1ND8LyN1TaqGD7UKtsQVdOyS8xpK4LlgEA2JFf/PwnWrV6tV57/Y2s65cuXaZb +/nR7vevbrV8/XfeHq3T/Xx/MOfBKknr17Knbb71JF331m/rkv//Nep/wy2bN5bPP1ui551/Qc8+/ +0Og6Dho7Wl8+75wGbzfpkIN12c9/qv/95a/lpYZiBqqrq/XYE0/qsSeebHTbWqo9R47UaaecrEt+ +9JO05+799z/Q++9/0OD6Dth/P/3sJ5c2uj29evbUqaecpHvuvT/r+nfefa/OfahP796NftyGaN++ +nW675UZ95Wvf1Lx58zPWb9u2TS+8+PJOfwk1mz12H6Fbb7pBbdu2zUdTASDvPvtsjZ559jk98+xz +ja5j/LixuujCL+exVYVTUlKin//kRzr3y1/JWDfjqWf00suvaOKE8fWqq1fPnrrnzj/rvC9fpI/r ++NL+vPkL6vVL6/lw2KGT9KvLL9PPfvG/dY6vHv33Y3r03481yeO3b99Od99xu8758leyXvS3bds2 +Pff8i3ru+RcbXPfIPXbXnX++raj6219e/gt9umqVXnn1tazrP/poqW646ZZ619d/t9108w1/1N33 +3he5wIqm8qXTT0sLvMrm5JNOyPvj7jVqlM48/TR95/uXpO1Ls2e/r9mz329wfaMPPED/+4uf5dSm +qB1v8mG3fv3Ub9ddM4KnUx126CSVlpY2uG5rrQ6ddIgefOjvdd4nFotp3EEND9OS/D+A//RHP9TZ +511Q5/H2nvvu1z33ZT9H2t5eo/bUdddclTWUq7GKuf8vdH/W3Aq9f0f5/dyrZ0+dcfqpuvOue7Ku +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 +Tzko//nB93c+VDlOrrr66hFj06ZNy1FHv3m15164aNGIscWLF6/2vGuL2bNm5VOf+Hhe9NJX5O67 +7x6x/bbbFuajH/9E/vuzn8+znvn0vPCIw7PHHrtP2Pquv+GG/O735+TCCy/KlVddnb9ef30WLFiQ +xYuX5O67787y5csnbC0raypdr1P9/AIAALBqaq1JrWlrTdPWJDWl1M7GXuyqNim1JjVJbZO2pHYO +nryFA6MSvAIAAAAAAAAAAAAAAAAm3Q03/G3E2IYbbpg597vfJKxmpBN/8rN87gtfGjG+1VZb5tiP +fSR9fX3j+nrXXnfdiLFly5bllFNPG9fX6blj6dI1Mu9U9chHPDzHfeWLee3r35hbbr111H2WLl2a +E775rZzwzW9l74fslcMPfV6e9o9PzaxZG437ehYvXpxvfus7+f4PfpiLL7l03Odf06ba9TrVzi8A +AABj1I1d1bZNkrRJmpLUWlJqm6QTHy+lpGmatL2dkqS/P3JXMPU0k70AAAAAAAAAAAAAAAAAgNvv +uGPE2MazZ0/CSka6+JJL89a3/9uo22688aYc/40Txv01Fy1aPO5z3pe2bVe80zrmUY98RH524g/y +7Gc+Y4X7/vkv5+Xt73hnHv3Yx+X/veu9ufjiS8ZlDbXWfO244/PYxx+YD3zow2tl7CqZmtfrVDi/ +AAAArL46JHrVudXB+9SkJKUpKX1Nmr4mpWlSSkl6N2BKEbwCAAAAAAAAAAAAAAAAJt3SUYJXs2bN +moSVDHfLLbfkNa89Knfeeee97vPB//xI/njun8b1dUf782D8zZkzJx/98Afz85/8KM98+tPSNPf9 +kbvbb78j3zjhm3nqM56dVx75mvz5L+eN+bXvXrYsb3jTm/Oef/+PLF6yZMzzTAVT9XqdzPMLAADA +OKk1dWjwqrad590QVlKSpqTpa9L09aVpOs8HYleiVzClCF4BAAAAAAAAAAAAAAAAk255f/+IsaaZ +/A8k3rpgQa6+5pr73Gf58uV5/RvelFsXLBi31x3tz4M1Z9ddds7HP/qfOeOUk3Lkq16R+22xxQqP +Oe30M/PsQw7L6446OjfddPMqvV7btnn1P702J/7kZ/e6z2677pIjX/WKfOwjH8r3vn1Cfv2L03Pu +73+Ti8//U6649MIRt1123nmV1jCepvr1OtHnFwAAgHHWjVsNC1+1bWpbk9SUJCklpSkpTZNSms7j +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 +watSSkpfk6avSWnK8OiV8BVMKMErAAAAAAAAAAAAAAAAWI/s++h9Rh3/4Y9PzBe//NWJXcwo3vmO +t2fWrI1GjN9555158UtfkY8d+8nceeedKzXX4sWL8/0f/ihHvPAl+cznvjDeSx1h57lz8+/vedeo +275xwjfzwx+fuMpzvuJlL8mDH7TnqNs+duwn84IXv2yV4z7XXffXfP0bJ+R5h78gBz7lqTnjzF+s +9LFT/fpZGT868Sd57qFH5OCnPTOf/NR/57J581bp+D+e+6cccvgLcs21147YNn369PzDkw+6z+Mf +t/9jRx3/3e/PyevecHQWLlx4n8ffcccdOe74/8lT/vEZOecPfxwYH+3nZqJNhet1ss8vAAAAk6DW +1PYet24Iq6QbvGqaNE3fQOwq3ZvcFUysaZO9AAAAAAAAAAAAAAAAAGDiPPXgp+RDH/5oli1bNmLb +f3zwP3PKqafluc95VubutFP6+/tzyy23Zv78+Tn/wgvz9w/dO88//LA1ur5tt9kmx370w3n1a16X +WuuwbXcvW5ZP/fdn87WvfyMHPP5xecxjHp2tt9oqm2++ee6+++4sWbIkN99ySy655NKcf8GF+cMf +z83y5cuTJPs86pFrdN09z37WM/Lbs3+Xb3/3eyO2/es73pUH7blHdp47d6XnmzZtWj7/2U/nWc89 +NDfeeNOI7b/57dl57qFHZPfdds1+j9k3e+314Gyx+ebZZJNNcvfdd+eOO+7I4sWLc9XV1+Syy+bl +/AsvzBVXXDnm72+qXz+r4pJLL8sll16WYz/5qWy55Zzs/ZCHZO+H7JXttntANtt002y26aZJkjuW +Ls3f/jY/l82bl1/88le54MKL7nXON7z+tdl4443v83X3f+x+2WOP3XPRRReP2HbSyafk1785O898 ++tOyz6MekW222SZNU3LbbQtz7XV/zTl/+EPOOPMXWbx48bDjHv+4/fOsZz49Rx/z1jH8SYyfqXS9 +Ttb5BQAAYPJ0Ildtai2pbTdlVUoneJWS2iSlbVKamlLbpJbUJKV7LLDmCV4BAAAAAAAAAAAAAADA +euT+W2+d5x9xWL523PGjbv/d78/J735/zqjbHrDttmtyaQMOfOIBef973513vOs9adt2xPbFixfn +Ryf+JD868ScTsp5V9Z53vSN//stfcull84aNL126NP/8ujfmB9/932y00UYrPd/9t946x3/ty3nZ +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 +j39iKx9M3vCFZh6cwt7NKw4paYya9vcvqrnmruSSW3vHX3lISVn7h9jnLUf2r3DaZcn7T3WRzlyx +5SbJP7+0/+u0bGXy/I82c/a1MzOPuXh8zLbjntL/dfnuBcm3z5+e/TleAQAAAGAGlK6bUlJKSd8P +3zuxq84CwHoTvAIAAAAAAAAAAAAAZsy/nFrz+//VzPcubIVxJuvzP6857gv9F5e84cklO22+9nUP +2b0/JvPRM2puuW/d+71jWfL7/9XMT68e70zHZ4clydP37x078/Ka/7mk/2M85tAJ1q6SPGbX5DWH +96/3D6fUvP3rNavXTHiTqTX50ZXJCT9zkc9UOfbQkpf8Tv/X6Z7lyXP+vZl/OKVm+arJb3/5qqzz +dT4Xj4/Z9spDSvbdrn/8j05o5geXTGxbK1YlV9+59uc4XgEAAABgJowRuRomcgUwHQSvAAAAAAAA +AAAAAIAZ82Az+e+Lk1d8spnd/qqZl3+imU/+pOac61shmLW5f2XytV/WPOvDzbzpyzUPNnsf33FJ +8q7nrTsG9exH9T/n7uXJMz/UitcMun7ltqXJ+39Qc8g/NnPG5a2xJQuTR+ywzt2N27GjQlYX3ZJ8 +9dzeyTx5n2T3rSa3/b9/Yck+2/aPf/xHNY9+bzOf+HHN7UvXvo17liffvzg5/ms1j/q7Zp7/0Wa+ +f7ELfqbSfx5T8tR9+8cfbCb//IOaA/62mXd/u+a8G5I1zf7ndVv62+TMK5L/+72aZ3yomV3e0cxn +f7r2r9dcPT5m00ZDyUde3sjQqCswVq1Jfu/jzbzhCzUX3Dz2+vevTE69JHnziTX7vquZr5y77mPG +8QoAAAAA06iMxK5KaYyEr7rjVzWpSfuHon6uBjBV5s32BAAAAAAAAAAAAACAh6cVq5JTLkpOuah1 +sUgpye5bJtssTjZbmCzeuGRNs2bZb5Mb7kmuuWvsX6a+/WbJd/6kkc02Xvd+n39Q8sgdkktu7R2/ +4Z5WvGa7zZJH75xssqDkvgdqrr87uerO3ucONZLPvKaRX91Y897vTc2FLs87qGSLRTX3rmjdb9bk +nOt7n/OqQ9cd9BrLkoXJ149r5NkfbuaW+3ofu/HeVhTn+K/V7L1NstMWyRaLWnNYvjJZ9tvk6jtb +4SOm18YbJV95fSOv/kwzp17S//jdy5MPnVbzodNqFs1P9t4m2XHzZNH8kmatWb6yFbq69q7kjmUT +3/9cPT5m2+F7Jv9ydMmffbX/4znxnJoTz6nZcUmy5zbJ1pu2AmXLfpvcdG/r2JkoxysAAAAATJ/S +flNKoyt0Nfrn73VkqZ37AKwvwSsAAAAAAAAAAAAAYE6oNbn27tbSHhnXegfvnJzwh43sufX49tMo +ycePbeS5/97MspX9j9++NPnBJWPvf6iRfPJVJUc9ItloqIx7nusyfyj5vceW/NePB29v8YLkBQdP +PniVJLtvlZx+fCMv/0Qzv75x8HOuurM/YMTMWjQ/OekNjXzwhzXvPaVmTXPw81asSi64ubVM1etw +rh4fc8Frn1gyr5G89auDvya33Je+ONX6cLwCAAAAwDQpJSUlpXQvI8mr4V++UbtiVxvOjzoBZlVj +ticAAAAAAAAAAAAAADx87Lx5stHQ1Gxr84XJ37+w5Mzjxx+76jh45+Sbb2xk1y0ntt42i5Nv/XEj +L31M67KXx+7WCgRNlWMPHXtjL31syaL567+PHZckp7+tkf/7gpLFC9ZvW4vmJ4/fbQo/AQwrJXnb +M0rO+etGjn7M1H2Oyzg2NVePj7ngNYeXnPG2Rh6z6+S3MZHPieMVAAAAAKZJKa3wVaNkJHXVUbur +VzM8MYAN27zZngAAAAAAAAAAAAAA8PDx6sNLfvfgku+cX/OjK5Nzrqu59u7xr7/ZxskheyQve1zJ +Cw8u2Xijyc/lkN2Tn/1lIx87s+aTP6m5benYz91yk+TVh5W89aiSLReNjG+6IHnkDslFt0x+Ht0e +vUtywI6Dt7e2GNZEzWskb316yWufVPLFs2u++auaX1yXrGmue92tNkmesm/JMx+ZvPDgkk3XM8LD +2u29TfLp15S8+/kl3/p1zcm/rjn/puTBcXytkmSokey/fXL4niXPflTJU/cd33pz8fiYKx69S3Lm +8Y2cfnny2Z82c/plydLfrn2djTdKnrx38vLHl7zo0RM7lh2vAAAAADCFOqGr9tJ6v/VQrbWVvqrt +zFUneqV5BTBlyvGn/NBpFQAYl9fsvG3P/QMPPHCWZgIAAAAAAAAAAGxIlq1MbrwnufHe5Pb7alas +Tn67Oln5YLJofrL5wmTzRSX7b9+K/5Sp6z4NqzW59Lbk1zfW3HV/a/8bb5RsvyTZf/uSA3ZMGtOw +37lk2crkkluSq+6suXd5smJVK7SzcH6y6cbJbluW7Ll1stPm0/M1YPxWrUkuuy258vaa3zyQLPtt +63iZP5Qs2CjZdH6y3ZKSHZcke2+bLFyPMFzi+FiXB5vJpbcml91Wc8eyZPnK1rGzaEGyzabJXtu0 +zl/rE+gbzfE6tgsvvLDn/gk33TFLM2kZ/e9vR1u8eHHP/d13330aZwMAAADjc9111/XcX7Zs2Vqf +P9vff8OElJJGo5EyNNS+baSURkqjpDQaKbWmNpupa5pJc03SlGUBmEqCVwDAuAleAQAAAAAAAAAA +ADCXPdSDVwAAADAXCV6xQSkljaGhNIaGUhqNNIYaSSkp7SVJsmZNarOZrGm2fiMAAFOmMdsTAAAA +AAAAAAAAAAAAAAAAAACYSaVRWrGrlJTOYCdwpXMFMC3mzfYEAAAAAAAAAAAAAAAAAAAAAACmW0lS +SulZ+ohdAUwbwSsAAAAAAAAAAAAAYMZs9pbmbE+BGbT0w43ZnsKc5nhgQ+J4BwAAAOAhpZSkE7zq +BK5qbS3pXgCYSoJXAAAAAAAAAAAAAAAAMAfsvvvusz0FAAAAyHXXXTfbU4DpU1pLq3fVfqcTttK3 +Aph2fn0GAAAAAAAAAAAAAAAAAAAAAPAwUNJdvercS62t4NXwbQSwAKaB4BUAAAAAAAAAAAAAAAAA +AAAAsOErJaXTu2rfH9YdvQJgWsyb7QkAAAAAAAAAAAAAAA8fSz/sd/ZCh+MBAAAAAGCGlJJ256od +vSqjYldpB69qaiJ6BTBN/O0YAAAAAAAAAAAAAAAAAAAAALDB6oSuWuGr4fRVr5rUdvQKgOkheAUA +AAAAAAAAAAAAAAAAAAAAbJjaoauUklJKRnpXXdGrTuiqZmQBYMoJXgEAAAAAAAAAAAAAAAAAAAAA +G6RO26qUjMSvurUDVzVpRa/UrgCmzbzZngAAAAAAAAAAAAAAAAAAAAAAwLQoJaVdvCrt99sjXW2r +2opd1TpyH4ApMhIabMziLAAAAAAAAAAAAAAAAAAAAAAAplc7dpWSkaWt1rT6VmJXANOg9NybN0uz +AAAAAAAAAAAAAAAAAAAAAACYPt2Bq+HoVRn1pE7xKhG7ApgGZfiN4BUAAAAAAAAAAAAAAAAAAAAA +sCEqrf/asavSKOnkrmpqSu28P/IWgKlShoODHYJXAAAAAAAAAAAAAAAAAAAAAMCGqWQ4dpVSesIr +SU2q0BXAtOjErkrnjuAVAAAAAAAAAAAAAAAAAAAAALDBakWuyvDSbl7V2m5diV4BTK9O9ErwCgAA +AAAAAAAAAAAAAAAAAADYAJVkOHBVSiOllAxXV5IkQlcA06aMLK3zr+AVAAAAAAAAAAAAAAAAAAAA +ALDBGq6tJKWM5K5qHVnSWQCYOu3zbqc8GMErAAAAAAAAAAAAAAAAAAAAAGBDVDpLK7hSSml3rcSt +AGZC6QoOJoJXAAAAAAAAAAAAAAAAAAAAAMAGqVW8Gg6upCSprd5VrV1LNLAAplJJT3RQ8AoAAAAA +AAAAAAAAAAAAAAAA2LB1gispKe3gSq3tulVVuQKYHl3FqzJy/hW8AgAAAAAAAAAAAAAAAAAAAAA2 +LKUdWRmOrbTHu2NXnSXCVwDTonPubZ+EG7M3EwAAAAAAAAAAAAAAAAAAAACAKVZKSntpRa9GGY5d +6V0BTJvSflNGzsLzZm0yAAAAAAAAAAAAAAAAAAAAAABTqSt01Xo/7djKqOxVranp1K4UrwCmRecc +3I5eCV4BAAAAAAAAAAAAAAAAAAAAABuU0glfdUJX3b2rWtudq6p3BTBtus/BrdvG7E0GAAAAAAAA +AAAAAAAAAAAAAGDqlFJaYZV28KqUktZ/be3IVU07dqV2BTD1SkmnOdh1Bs682ZsRAAAAAAAAAAAA +AAAAAAAAAMDU6oSuWuGrtJaerlU7dlXFrgCmVGm/KcN30tW7SmPmZwQAAAAAAAAAAAAAAAAAAAAA +MMWGI1dlOHpVSldpJbXVuBK7Apgmpf1/+7bnHJzMm6VZAQAAAAAAAAAAAAAAAAAAAABMqZJ2YGU4 +dtVZOoEroSuAadE53bZjV+03rYfa4avGLEwLAAAAAAAAAAAAAAAAAAAAAGDqlZJW76q0l67kSq1J +TaroFcA0aBWvOtHBrt7VMMErAAAAAAAAAAAAAAAAAAAAAGADUlIaJWm0oytJUttLum4BmFKl1bxK +UlLSuTNSvpo3O9MCAAAAAAAAAAAAAAAAAAAAAJg6JUkppXdph1aGG1dV7QpgWpSRwFUpJQN6V4JX +AAAAAAAAAAAAAAAAAAAAAMAGoBNV6QpeJWnVrmoVuwKYbq3yYPt83DkH1+HooOAVAAAAAAAAAAAA +AAAAAAAAALABKO3YVdrBldIVuaoj0SvxK4Bp0opd1XQFB7veEbwCAAAAAAAAAAAAAAAAAAAAADYI +JWlHr0pKSjuxUtutlRqZK4BpULqXMvJ+5/zbPvkKXgEAAAAAAAAAAAAAAAAAAAAAD3mlHVopKcPB +lZKk1lZtpdaaVMkrgGk1HLvqnHJHzruCVwAAAAAAAAAAAAAAAAAAAADAQ1cp7bZK6QmtpJSRwFWt +7eZKTXd8BYCp0D75lpLeE3Ht6QwKXgEAAAAAAAAAAAAAAAAAAAAAD02d2FUpKaWkpCu2UuuAJXpX +ANOh3bgqJaklI+fbWodPu4JXAMC6DReNAQAAAAAAAAAAAAAAAAAA5o7u2FWGl6TvAunaeaN2BTBt +SusEXFLSrDU1NbUTHIzgFQAwDp1v8gAAAAAAAAAAAAAAAAAAAOaUduyqlJLSaN+m9PauOrGVTu+q +il4BTKnS1Rns7lO0z7lV8AoAGJfukjEAAAAAAAAAAAAAAAAAAMBc074eupRGq7jSfWl0J3KVCF0B +TIfOObenTVGSNJO0YleCVwDAhMhdAQAAAAAAAAAAAAAAAAAAc1UZDq20royutfVebdeuOrEV0SuA +KdQdu+rcLWU4NNiJXdXaTCJ4BQCsS+cbuyJ5BQAAAAAAAAAAAAAAAAAAzCHt66BL1zXRpSt6laQV +XRG7ApgmZeS2u0tR0jrn1prUZtJsnX8FrwCAtRquZwpeAQAAAAAAAAAAAAAAAAAAc0zneujSaLRj +VyNqO3BVW3dmemoAG7bh1lVpJylG2hQ1I73BWmtqbSYRvAIAxmE4egUAAAAAAAAAAAAAAAAAADCX +lNIKXXUvSdqZq05tZdamB7Dh6px3O+93PTR83q3t4FXrvuAVADC2rm/qRteMAQAAAAAAAAAAAAAA +AAAA5oRRvauStHpXtWY4fAXANOmODXapdeQ03D4VC14BAOtU0hvSBAAAAAAAAAAAAAAAAAAAmG0l +SSklJaV1W0rXddG1FbzSuwKYHq2T8EhpcFD0ql27qu2TseAVALBWJRn5AwYAAAAAAAAAAAAAAAAA +AMBcU0aCV0m6Qld11ALA1OmErjLSpOhqU9T2qbd2nYIFrwCAcSmCVwAAAAAAAAAAAAAAAAAAwFxS +WrGV0o6tlFKSWtutqzoSvtK7ApgmZVTkqqa03klSUzvFq9o6CTdmZY4AwEOH0BUAAAAAAAAAAAAA +AAAAADBHlZTW20HXRdfhNwBMpTKylDJcHkzSil51ltGnYMErAGCdRv5wAQAAAAAAAAAAAAAAAAAA +MAd0roHuvha6c1uT1JrUmip6BTAN2rHB7vJVOqfeTuyqvXQRvAIAxmVg0RgAAAAAAAAAAAAAAAAA +AGCmta99Lu03pYyMDWtHV1rBlZmeIMDDROf8W0r7VNuKXdVm+7Z9v0PwCgBYu+6iMQAAAAAAAAAA +AAAAAAAAwBxQhq+D7l462qErAKZZ6Tn91tp6U2uzFRscdSoWvAIAxjT8rV1pf8MHAAAAAAAAAAAA +AAAAAAAwm0oZjl2V4ffT37tKWuUV4SuA6dHuUJSe6FVNbZ97a+0vXs2b0QkCAA9RZfgPGgAAAAAA +AAAAAAAAMNO++73v56qrr06SbLXVVnnVMa+Y5RkBAAAwW0rSE71qD4w8obbfdMeuRK8ApkfPebi2 +T7/d0avepwteAQBja5eMi94VAAAAAAAAAAAAAACzpNaa977vH3PnnXclSfbZe2/BKwAAgIezUlqX +QbejV61lJHnV6V2JXQFMpzKSGmyfl2u6QlfNkfe7z8ON2ZgqAPBQUdJTvQIAAAAAAAAAAAAAgBl2 +8SWXDseuAAAAIEnr2udSUhqd66G71fYSsSuAadGuDJZBLYqu0FX6z8HzZmJ6AMBDV+n0rmZ7IgAA +AAAAAAAAAAAAPCydceZZsz0FAAAA5opO6KoTuypluLVSa21dE93prAwIrQCwvjoBipKRt201rRNw +7USvOoMjGjMyRwDgoWe4pNkpXkleAQAAAAAAAAAAAAAw804XvAIAAKBL6xLodvSqjLoOutYMx1X0 +rgCmWDt21Tn3ljJcvGqdfWu7dzU6ejVC8AoA6Fe6SppaVwAAAAAAAAAAAAAAzJK777knF1xw4WxP +AwAAgDllJHRVRsWuavu2Fb4CYEp1xa5a8cFBT2rHrkYSWD2PCl4BAAON1Iy7FwAAAAAAAAAAAAAA +mDlnnfXjVBcpAwAA0K196XMpjYHRKwBmQBnVoujEBmtt/Tyv1rSbVz0ErwCAXqWMpK1GN68AAAAA +AAAAAAAAAGAGnX7mWbM9BQAAAOaQ1mXPrchV6YpdlaQntjKwsgLA+illJDRYRkUo2qfd7lNwHXAe +njcT8wQAHmI6f8hQugIAAAAAAAAAAACAh7Vaa66+5ppceOHFuevuu7Ny5cosWLAgm26ySbbZZus8 +4fDDsmjRovXez+2335GLL7k0t91+W5YuXZZaaxYv3jTbbbtt9t9vv+yyy85T8NFM3N333JNLL708 +N9x4Q+6///6sWrU6ixYtyo477JD99ts3e+y+26zMa9Xq1bnssstzww035s677syKFQ+k0Whk8eJN +s/VWW2e//fbNbrvukkajMSvz61if10+z2cx//+DUnPWjH83wrAEAAHhoKCPXRNekO24lcwUwfYZj +V93Rq/Z5uLZLVzU1tQ4+GwteAQA9OnmrkT9kzOp0AAAAAAAAAAAAAIAptOe+j+y5v/9+++aU73yr +73krV67MZz/3hXzxyyfmpptuHnN7PznrtEkHr2659dac+JWT8p3vnpLrb7hhrc/dYfvt85xnPzOv +ftUx2XWXXSa1v6T/499jj91z2g9O6RlrNpv53in/nRM+/4X88le/Xue8XvC7z8trXn1stt9uu0nP +azxWrFiRk7/93Xzv+/+dc889L6tWr17r85csWZKnH/m0vOgFv5snPfEJUzKHmXj9rFq9Ot86+dv5 ++H99Mtded/3A9a686qq+uQxyzRWXrPM5AAAAPMR0IlddS1JbsZXaDqzUzv1ZnivAhqqMDlHU1PZ5 +t67j/Ct4BQD0Gv7GrtO76vwHAAAAAAAAAAAAAGxobrn1tr6xCy+6OG9+y9tyw403rnXdBQsWZIft +t5/wPpcvX5EPfvjf84Uvfnmd0aaOW2+7LZ/+7Odywue/mJf93tH5q3e8PZtsMrnQVrfrr78hq1at +yvz585Mkd9xxZ9781rflnHPPG/e8Pv6JT+UzJ3w+f/x/Xp83HveGbLTRRus9r26rV6/OZ074XD72 +8U/mvvvuG/d69913X77xzZPzjW+enAMe9ci84+3H54lPOHxK5zbVr59Pf/Zz+eSnPpPbbr99SucJ +AADABqqUZPgq6NpzA8AUawcHe5a0T7vt6GDPMobGjEwWAHhoKWlFr1rFq6hdAQAAAAAAAAAAAMCG +aenSpVmxYsXw/TPO/FFefsyr1xkrSpLddt1l+Jftjtdll12eF7z4pfn0Zz837thVtzVr1uRLJ34l +z33Bi3LV1VdPeP3Rms1mrrnm2iTJOeeel+e/8CXjjl11W7VqVT78kf/Isa/5o9x772/We14d111/ +fV509MvyT+//1wnFrka76OJL8qo/eG3e9Z7/m1WrVk3Z/Kb69fP37/snsSsAAADG1r7+uXMddM9l +0DVdwZXOAADTpvOzvXbgqraXdRG8AgAG6HyTp3YFAAAAAAAAAAAAABu6W2+9LUnyrW9/J68/7o15 +4IEHxrXeHnvsPqH9nH/BhXnZK1+Va6+7fmITHODGG2/Ky175qlx2+RXrva0rrroqV1x5VV77+uNy +1913r9e2zjn3vBzzmj9crzhVx/nnX5AXH/3yXHrpZeu9rY4vfvnEvOaPXp9l998/ZducqdcPAAAA +D3Pt0NVw7KpzGXTpjl7VUdErAKZc+zzc0TrttqJXrYG1n4DnTePUAICHmu5v7HpuRa8AAAAAAAAA +AAAAYEN1622354Hf/jZ/+dfvSrPZ7Hlsr732zHOf/awcdOAB2XqrrbJq9ercd999ufqaa7PzTjuO +ex/X33BDXv2HrxsztHTwQQfmaU99Sh75iP2z5ZZbptaae++9NxdfcmnOOPOsXHjRxX3r3Hvvb/KG +P35TvvPNr2XJkiUT+6C7nHHGWfnAv34w9y9fPjy2YMGCHHboIXniEw7PLjvvnC222DxDQ0O5/Y47 +ctVVV+e73/t+rrr66oHbu+yyy/PW4/8in/7Ef7Yuwp2Eq66+eq2fr002WZQnP+mJecLhh2X77bbL +VlttlVWrVuXuu+/O9TfcmDPOPCu//NWv+76eSXL2L87JG457Uz7/2U9l3rz1v7xsKl8/Rz39yL6x +H552et/YJpssyuGHHbbecwcAAOAhoit0NRK76lwY3Vbbi9IVwPTrnJPboavavWTtZ+Jy/Ck/dKYG +AFpKSWk00mg0UoYaXe8PpdFo5Pc2md/z9AMPPHCWJgoAAAAAAAAAAAAA/S688MKe+yfcdMcszaTl +NTtvu9bHFy9e3HN/9913n8bZtOy57yP7xv7qL/48n//Sl3PTTTcPj+26yy75m79+x8AA0UStWr06 +R//+K3LRxZf0z2fPPfLev313Dj/s0LVu47Qzzsw73/We3HHHnX2PveTFL8y//PM/jmsugz7+0Y5+ +yYvz5297a7bddpu1Pu+Hp52ev3rnu3P3PfcMfPx97/27vPxlvzeueXV74IEH8rwXvCTXXX9932Pz +5s3L6/7oD/LmN/1xFi5cuNbt3HTTzfm79/5DTjvjzIGPv+bVx+Y9f/PXE5rbbLx+Bu1zn733zg9O ++fZ6bxsAABjsuuuu67m/bNmytT5/tr//5mGgHbwqpbSuex4aSmPeUBrz5rWSV81m6ppm67bZiq8k +nVsApkQpydBQytBQ0mgkpaQ2m6nNZlJrms1m6po1aa5Z0wrjj3EObszwtAGAOa6037TCxiNVzeob +OgAAAAAAAAAAAADYIP3j+/+lJ1Z01NOPzHe//Y0piRUlyQmf+8LA2NUhj39cvnnSieuMXSXJ0494 +Wr78hc9l66237nvsG988ORdedPGUzPXP3/bWvP+f/mGdsauk9Xn69re+NuZzP/BvH8wDDzww4Tl8 +8MMfGRi7WrBgQb5wwqfzF3/+tnXGrpJk5513yic+/v/yl39x/MDHT/jcF/KrX58/4fmNNt2vHwAA +ABi+5rk7fJXSui46SdqXQdcqdgUwfUbOu6WUnkdqra3o4DjOvYJXAECv4eJVWdczAQAAAAAAAAAA +AIANzJFHPDX/7yMfyqabbDIl21u6dGn+42Mf7xvfaccd87GP/nsWL1487m3tsftuee/fvnvgY5/8 +9GcmPceO5zzrmXnjcW+Y0Do7bL99/utj/5GhoaG+x+699zf5+je/NaHt3XLrrfnc57848LGPfOhf +c8jjHzeh7SXJG1732rz+tX848LH3/N17J7y9tZnq1w8AAAB0dEJXKRlZunVCV8MLAFOnjLQoerQC +g7W9pOt2LIJXAECfUjJcOO4YT0kTAAAAAAAAAAAAAHjo2mnHHfPBf/1A5s2bN2Xb/No3vpWlS5f2 +jf/NX/9ltthi8wlv71nPPCqPPvjgvvH//sH/5L777pvUHJOk0WjkL97+tkmte9CBB+Tol7544GNf +/+bJE9rW57/wpaxavbpv/BlHPT1HPf3ISc0vSd721j/NTjvt2Dd+0cWX5OxfnDPp7XabjtcPAAAA +dCulpPNfd3SldiJXneiVy6IBplBpv21FrzrxwU6OonZHr8axNcErANgQDZeJy4SW0igppTESuxoV +vQIAAAAAAAAAAAAANlzveudfZvGmm07pNr960tf6xvbbd58865lHTXqbL/v9o/vGVq9enf/96c8m +vc3DDj0ku+2666TX/5M3Hjfw316ff/4Fuf32O8a1jVprvvGtwYGstx//1knPLUkWLFiQP/vTNw98 +7PNf+NJ6bbtjOl4/AAAA0Lneuefa57Vd/yx2BTD1xjrvDvcG29HBuu6TsOAVADzUdH0zNrw0Skqj +MXBpjLUMDQ1cylDr8dJojHzDJ3wFAAAAAAAAAAAAABu0ffbeO898xuQjVIPcdNPNueLKq/rGn/fc +56zXdg895HEDx39+9jmT3ub6fuw77bhjHvuY3xn42C/OOXdc27jwootz55139Y0f8KhHZu+99lqv ++SXJc579zCxcuLAaJI4xAAAgAElEQVRv/Ec//klWr169XtuejtcPAAAA9Ohc79zouua5ZjiwUtvR +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 +v/qoE5f/4A//SPzT73jprd0YAAAAbrqMmM4Hj13sas6t1Phndz63c7oBTtXqZ+7U+IjYi16N8GDd +QFvj0o1vJQCcotXBbo5cLQfEdexqdRktI1uOmNXu8Xtq+bIq964OnvMBNeLY8lg9FAAAAAAAAAAA +AACAa3Pp0qX4J9/2zfFZn/058Xu/9/vH1v+7f//z8dmf8/nxnA95drzwo18QH/Zhz48nPfGJ8fjH +Pz4eeeSR+IM/+IN48MEH44E3vyXe8IbfjF97zWvijW9806lt30f9mY+MV/3Kq+ORRx6JiIhfefWr +41M//bPiIz7iw+PFn/Dxcf8HPSOe9KQnxZ133hnvfOc749df89p42Y/9ePz6a1572ef8nL/02fHi +T/yE696mr/var4k3vulN8Ruvf8Pe8qqK7/1n3xc/8P/+i3jRC18QH/sxHxPv+9T74slPfnJst9t4 +29vfHm95y2/FT738p+OVv/yq3e/JH/H8D31e/B9f/VXXvX230qd+ykvi7/69fxDvfve7j637mq/9 +uvjJn3p5fPZf/Kx45v33x3a7jbe//T/HW9/61vi117wm/uSf+Ij4gs/73DPYagAAAK5b5nKZY+yf +J75356MLALheq5+/u9hVRETtQlfHwoPXTvAKgMMwH+xGbXf+AHI0dnX0cu8xURE1X64OjON6zdGr +ql0Aa1zWkdvHAlkAAAAAAAAAAAAAAFy3p953X3zPd35HfMlf/WvxO7/7uyfe53W/8fp43W+8/hZv +WcRHfPiHxxd+/ufFl3/FV0bvfVn+6lf/h3j1q//DNT/fR/2Zj4z//av+9g1t09133xXf/dJvjy/+ +q/9dvPa1rzu2/pFHHomX//Qr4uU//Yprfu7nf+jz4ju/45/GnXfeeUPbeKs89b774gs+/3PjO7/r +e05c/wu/+EvxC7/4Syeue//3e7+buWkAAADcLKvzyCNzdb73fGUsz5MfDsB1mH/mjlGRsf5BW7Xu +dVy/dmMPB4BTsMSrWmRrkZsWbbPZjUuXVmNePu7b2qjyxmhZVVTvu8vtPLYRY9S2T+uWURHVdwXJ +dfRK7AoAAAAAAAAAAAAA4FQ865nPjH/5z78vXvjRLzjrTdnztre/LT7tz39KfOM3fH3ccccdN/Rc +L/6Ej49v/yffGo973ONueLue8pSnxPd9z3fGp37Kn7vh55p9xqf9+fi+7/2ueOITn3Bqz3kr/I2v ++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 +hhl/KpsKyk9FQRn3dXT4qaOO44I46k/GQQkwIjKyiAiyE3AGcBQIaxIgG1mbJL13uuueZ/445966 +1VXd6a6q7qrqer9fOXXvfc65p59OTvepe3PPp2odXmjbprYz+4ND+dg//3N+/pd+Jc/67u/Mc571 +3XnQRRcuaD9t2+ZP/v9X5g/+8I/mXT81NZUXfv8LFjNVAACAY6MpKWUsdDUWHUnSvU5vZ2LUddCm +Hd73khuA+Yy/fzsWsRqGr0ZRq2ZmfPicWmtKf4KpNTPv747FrmZFrQSuFqX89Nvf7d8eAHBEXnD+ +mbMeP/ShD12mmQAnqh37B/nSzvuyff8ge6bblCQnTZScPDWZszauy9kb1y3rh413HWhz0677sm3f +dPZOt2lrzUkTTbZOTeScTVM55zDze/HVN8wZO2/TVH756849pnM+nJX+73ul23Wgzc398bBn7HjY +MjWRczauy7mbprL6PpI740T//S3EoCa379mfW3cfyK7pQfZN1zSl/3Nz0mTO2nBs/tzM9/fH+Zum +8kuH+Ptj93Sbm3ftz117D2TvdJtB/9/u1JMmc97mqSX5KcMsP8fj4tQkX9k3ndv2HMi9901n36DN +gbZmXVMyNdFkQz/HMzdMHtMLgY6nfYOaL+7Yl+37B9m5f5CaZONkkzM2rMv5m6ZWVABvOf773NfW +3LHnQHesDtrsH9TcN+j+XK2faHLSRMmp6ydz3qapbJpcOf+uDub7u8Xx/c/yW2l/P+8dtLl194Hc +ufdA9ky32T9oM1FKpiZKNkw2OWP9upy1cd0x+3thuc73K5E/n0dux4FBfukjN88JVTz01A350a86 +a9H79/3gwp0o32+sBf7+Xf1W0+ufY22lfX91IjlRvz/x52flWsnnp9Xw58Hfh0trJR+Pq2F+S2W+ +11tTE01OOWky52+aypkbluf11lr598/81vrft8f79/+FHfflizv2pSkll2xdnws3Ty3+NwEnkGuu +uWbW41ffcueRPXF4MdTogtu5F942Tfcd7vCCp+4i27a7+HZ04W3br+u2OfjztwfbsmXLrMcXXXTR +kc2XVe0f3/Xu/MhLXjp6fMEF5+exj3lMHv2oR+bBFz8oF110YTZs2HDI52/bti3vff8H8so/f1W+ ++MUvHXK7l/7Yi/MTL/2xJZ07AACwNtxwww2zHu/cufOw2x/56+/uS2lKmqZJmZjoboexqz5EktpF +futg0N227VgAq81hfzIEAGvPeNyqD1yN358VukpmAotJf06p3W33xm73z8GBq/luWRDBKwDgiAle +ASzM3kGbn/6nm+aMP2Tr+vzkw85ehhkBq8l8F5Sfs3FdfuXrzzv+k2HNczwCAKxs77x5e95ywz1z +xl905Zl5+GkbF71/3w8CAAAAAKvBgoNXQ/NcGNVMNGmaiZSJ7gLccbW/6LYdDNIOBv2FtzW1rYJX +HNLBwav5nHXWmTnl5JOzYcOGbNq0MVNTU9m+fUfuumtbbrr55vv9NZ7wrY/PK//0j0ehNgAAgKNx +7IJXJSnpX29PzCzjr11KScZea7eDQdr+dfas+AgAJPO+pztrGY9dDUNXo3BVkv6HGOTgc834+ca5 +Z0ktz49wAgAAWEN2H2jnHd846UMkAAAAwNKoST58+9wPlW1Z1+Shpy4+dgUAAAAAsGYML2gqJbWU +lAwvZCppSklJ21+c218g1TRJrd2FU6OLpGqSmrTzf3YMjsQdd9yZO+44ymBb7xFf/3X5g9/7L2JX +AADAytIHR1JKmqaZtaSU7kNQ/evptm3TtnW01OFrbMERAIZKSRne9ueSucGrfmz4fu6Y7rRTR7Gr +WaErgcVjSvAKAADgGLt51/55xzet80ESAAAAYGl87p692bZves74o87anKbM8wQAAAAAAO5frUmb +1NKmtiVtktSSlKa/QLf/DFgpKaVJM5HU0qTWtnuO92c5hI0bj80Pq5iYmMgLf+AF+emfeGmmpqaO +ya8BAACwIKMASXfb9CGSjMVHam272Egfu6rtoAtdzQpMA7DmDeNVYyGrUfCq6d6rnQlclZRhULE/ +j9Tx80q/zMSuInZ1HAheAQAAHGOfu3fvvOPnb/JhEgAAAGBpfPC2nfOOf9PZW47zTAAAAAAAThDD +i5+SpK1p6yClralNSdPUJBNJU5OSJCWlSUomUpuaOihp011MBfP55sd8U65+/7vz5rf8Xd7+jnfm +c5/7/MyFdguwZfPmPOMZT8sP/b8/kIsuvHAJZwoAALAUZoIkTdOkTEykacaD0mUUG6mDNrVt07bd +bR2PkABASR+46sNWTTMKXg1/SEEZvmc7jCqOolbJKHxVa/fe78Ghq8Q55zgQvAIAADiG9ky3+eid +u+Zdd8nW9cd5NgAAAMCJaNu+6XzyK3vmjF+6dX3O3rBuGWYEAAAAAHACqTW1bZOU1FJTaneRVFO6 +C3JL+tvh41rTJmlKUvWuOIzzzj03L/nRF+UlP/qi7Ny1K//6rx/PNZ/6dG655Zbc8uVbc+ttt2XX +rl3Zt3df9t13X6anp7Nu3bps2bw5Z5xxei644IJcftml+YZHPCKP/Iavz9SUH8IJAACsRGV028VI +JtJMNGmaJn21ZGbT/jV4OxikbdtRBEt4BIAZw/dj+9hVv3RBxaZ/j3Zs8+EPNqhJhueWsejV+DZx +ujluBK8AAACOobfdeG/uG8x9lbtxssl5m3y4BAAAAFi8v/3S3fP+P/ZvPe8Bx30uAAAAAAAnpFq7 +92FrTdKkljZtSpok6S+oSkpKSWop/WM4cls2b87jHvvNedxjv3m5pwIAALB0xkLRTTO+NElpkszE +Rtq2nbV08emIXQEwiiOWkqTMxK1GoavSpDT9DyVISUrt4lV91KrWOhO7quOxqypytUwErwAAAHq7 +p9tMNSXrmqX5sXofvXN33n/rjnnXffPZW+KH9wEAAACL9b/v2JWPb9szZ/yCzVN52Gkbl2FGAAAA +AAAnqpqkdBdFtTXJIG1qSu2XpqSk6T4XVmt3K3wFAADAWlW68EhpmpnbUeiqJBkGSLrb2rapgzap +7UzkSuwKYG3rzyWjc0op3fuwo8hVM1qfZCxiNQxdZSZuJXa1ogheAQAA9K7fvi+vuXZbHnP2ljzm +7C05c8PCXjLVJO+4aXveduM9866fLCVPOO8Bi5gpAAAAQPKJr+zJ667bNu+673jQqWLbAAAAAABL +bniRVJu0JbWPXTW1JrXpPjw2/IGLw4uxAAAAYI0aRkmaPnbVPS7D3lXS1rRt28Wu2ja17SLToyAJ +AGvXWOyqGZ1DZiJX3boms96CPThs1faPx9b1G4pdLTPBKwAAgDF7ptu865btedct23P6+slcccqG +XLp1fc7auC5nbliXqebQH0DacWCQT929N++6eXvu2HvgkNs95YKtecDUxLGYPgAAAHACaZM084zf +tW8677p5ez50+855n/fIMzfl8pPXH9O5AQAAAACsXf3Ft/2VVKW2SZ1Ik5q+eDW66CrNfO/yAgAA +wImvi5F0satmYqIPXQ3j0F3xqtaa2rZpB33wqrajOAkAa9hY7KqUPp440cwKXs36gQPDmFXt3rtN +fz6ZFVB0bllRBK8AAAAOYdu+6Vx9285cfdvMxaNbpyayeV2TqabJSRMlk03Jnuk2O/YPsm3f9P3u +86tP3ZCnX3jysZw2AAAAcIL4iQ/dkNPWr8vmdU02TDbZP6j5yr7pfOW+Q78HcepJk3n2Jacdx1kC +AAAAAKxR/QVStU1q2rTloB9i0DQpLqICAABgLRmGR/o4SbeUfhl71dyHrrpl5n5qHycBYO0aRq76 +HyjQNDPnlKa/HW6XpPsZBKPYVXcu6WJXfUSRFUnwCgBggV589Q2HXf8nj73ouMwDOL627x9k+/7B +gp774AeclBdefmbKEs8JAAAAODFN1+SOvQdyx94j237jZJMf++qzsmGiuf+NAQAAAIBVy+cXV5jh +xbhtmzZJqeOLC6oAAABYI0ZxkpJSmlGcJE0zipLU4WvoPkrSDqNXw7Fl/i0AsIyG55HShxLLMHLV +3+/XJZkJXI3dH4auRu/XOqmsaIJXAAAAvamJY5OiapI88fyt+TcXnZzJIncFAAAALL1TTprIi648 +K2dvXLfcUwEAAAAAWHO64FWS2ibN2AVW1Q8oAAAAYA1pSpqmSWkmulhJH70qpUnSBUjqMHLV9vdr +m9Q+egXA2tTHrkoZO3c0M8Gr8fVJkppRLDFjMcV+RRe7cl5Z0QSvAAAAelecvCG/8cgL8tE7d+Vf +7tqdL+/ev6iI8/qJkkecsTlPvmBrzljv5RcAAACw9Jokjzxrc/6fB52azetcOAUAAAAAsCz6i6pq +KSm1pDQ1pXYLAAAArAmlpJQudtVMDENXJSlN0pQML9KqtaZt29RBH7kSuwJY8+aLXTUTTZo+oDhL +TWr680fb3c4KXDmnrAquuAYAABhz6kkT+fYLtubbL9iafYOaL+7Yl5t27c+2fQdy977p3HPfIHsH +bfYP2hxoa9qaTJSS9ZMlW6cmcvr6dTlv01Qu2bo+l2w9KZOl3P8vCgAAADCPx52zJV/evT/b9k1n +94E2g1pz0kTJ5nUTOXvjuly6dUO+9oyNOe0k/9sXAAAAAGBF6MNXSZOUdrlnAwAAAMfNeKSkjAdK +SrrXy207e6ntzOtobRKAtWkYujo4djW6X5JSZsesak3a2sWu2lboapXyyWcAAIBDWD9RcuUpG3Ll +KRuWeyrAGvYnj71ouacAI45HAIDj6zmXnLbcU5jF94MAAAAAAEemDi+uakWvAAAAWBuaUaCkC5f0 +paukbdMeFLxKW/vYVcSuANaiPnKVg2JX4+eRkswJXdWx4NUofjW+HauG4BUAAAAAAAAAAAAAAAAs +lVpdrwsAAMCa0kxMdLGS0vQRk6S2s0NXbdt2Y6NoyXLPGoDjbjxyNRa7KrNiV915JEnStrNCV6P7 +EbtazQSvAAAAAAAAAAAAAAAAYCkNL94FAACANaCZmJgVMKlJUrvoVdu2qYNBF7pqxa4A1rzx6FXT +pJkYi16V0kWs+qX2oavULpo4WseqJngFAAAAAAAAAAAAAAAAAAAAwIKUpqSkJOlbVm2bOlwG7Sh0 +VYVKANam0p0jStOkGcatJvr7pQtdlX6bJF00cRS+6mNXbbtMk2epCV4BAAAAAAAAAAAAAAAAAAAA +sCCllK5jVbsgSa01bdum1uEyDF2JXQGsOX3MqjTNzO1Y7GoYw6q1ptSk1rY/n/SxK7HEE47gFQAA +AAAAAAAAAAAAAAAAAAALVJLU1LaLlLRtmzpaahcrSdW7AliDRpGrfmnG7vetq87wfFH70FU7vC+Y +eKIRvAIAAAAAAAAAAAAAAAAAAABgYUpJah+7GgxmYld1LF4CwNpTyih4NSt0NRa8qrUmY3GrYTwx +w1tOOM1yTwAAAAAAAAAAAAAAAAAAAACAVarW1LamHYauhrErsRKAtWssdjW6bZqUph8v/WY1Yldr +zORyTwAAAAAAAAAAAAAAAAAAAACA1altB6ntoA9d9bGrWiNVArAG9aGrlJKm6UJXzcRY7ColSU3a +bvNh5GoUuxK6OuEJXgEAAAAAAAAAAAAAAAAAAACwIO2gj121bWrbRUtqIloCsAaVPnjVBa4OWkof +u6pJTR+3amtqbZO2JnVYwXL+OJEJXgEAAAAAAAAAAAAAAAAAAACwIHUUvOpjV0IlAGtTKclBsatm +Yjx4laTtY1dtF7yaFbty/lgTBK8AAAAAAAAAAAAAAAAAAAAAWJBR7KqKXQGsZaWUbhmPXZWmHx/b +sPaxq7aPXIldrSmCVwAAAAAAAAAAAAAAAAAAAAAsSBe7qlolAGtVKSnJWOyqpGm62NWodFVrUrtI +YvpI4jB8xdoieAUAAAAAAAAAAAAAAAAAAADAgtTadr0S0RKAtaeULnQ1FrsqTZMy0aQMY1dJ0taZ +wFVt+8dtt875Y00RvAIAAAAAAAAAAAAAAAAAAABgQWorVAKwVpVkJnhVSprS9OGrPnhV6yh2VWtN +2rY7b9RW6GqNapZ7AgAAAAAAAAAAAAAAAAAAAAAAwCpSSjKMXTWzQ1ellG6bmlmxq1Sxq7Vucrkn +AAAAAAAAAAAAAAAAAAAAAAAArB4lmYlcTXS3aUq3Zhi0qu2s2FUVulrzBK8AAAAAAAAAAAAAAAAA +AAAAAIAjU0pSSkopffRqIk3TJN1wZxi4Go9e9eOsXYJXAAAAAAAAAAAAAAAAsALccMMNyz0FAAAA +AIDDGxatSklpuuBVM9GkNE03XutY7KrOxK6ErkjSLPcEAAAAAAAAAAAAAAAAAAAAAACAFa6UlOHS +lKQ0o+hVGYawklHsarRE7IrO5HJPAABgtXraA09e7ikAAAAAAAAAAAAAa4zPLwIAAAAAsFxmYldN +StOkaUoyCl0dFLlq29S2dq0rvSt6glcAAAv0jAt9YAQAAAAAAAAAAAA4vnx+EQAAAACAZTEndtWk +lCZlFLxKhtGr2raz41fQE7wCAAAAAAAAAAAAAACAFeCiiy5a7ikAAABAbrjhhuWeAgArVR+9avro +VWn6CFZJUodL2y1t7R5H8IoZk5lVSIsiGgAAAAAAAAAAAAAAAAAAAAAAMFL62FU5KHaVpA9d1X5J +H7uqM+ugN1nGgle11qQU0SsAAAAAAAAAAAAAAAAAAAAAAKBrEo0tw/hVUvqgVe3aRbW/HZIx4iCT +pWm6e/2BUsWuAAAAAAAAAAAAAAAAAAAAAACAscDVKHTV9PGrPlVU2y521S2ZWeAgk10pbTbRKwAA +AAAAAAAAAAAAAAAAAAAAWMOGgat+KaWkNGPhq9RZsavaZiZ8BfNo5lTTAAAAAAAAAAAAAAAAAAAA +AAAAyljg6uBlqM4OX8GhTJam6e7VmpQ2dXgwOXAAAAAAAAAAAAAAAAAAAAAAAGBNGoauSjO2pA9d +DdtWtaZWsSuOzGSa7gAqNam1O5wcNgAAAAAAAAAAAAAAAAAAAAAAsEaVkgyDV6VJaZqUUjLsXXWV +orHQVW37YfUiDm2yNE2SpLZtSimppdzPUwAAAAAAAAAAAAAAAAAAAAAAgBNZKd2X0pQ+djWz1Fr7 +3tVY9Arux2QZBq5Kk1rasYIaAAAAAAAAAAAAAAAAAAAAAACwNnWhq9I03VJKlyfqY1fdF7ErjtxM +8KpJSltS+oOsOogAAAAAAAAAAAAAAAAAAAAAAGDNKUlKSRe56peRmj56NQxfwZGZLE3T3Wvb4RG2 +vDMCAAAAAAAAAAAAAAAAAAAAAACWWRmVr2YHr8SuWJjJ0YE0PKj0rgAAAAAAAAAAAAAAAAAAAAAA +YO0q3VJKSWlKUspY5KqORa/6BY5AU0ahq+4IK+nvF+UrAAAAAAAAAAAAAAAAAAAAAABYe8Y7RGUs +SdRHr0SuWIBm/MGwcVUOHgAAAAAAAAAAAAAAAAAAAAAAANaGUkYdoi5DVLrQVTITuxK94ihNzhnp +U2olM8cXAAAAAAAAAAAAAAAAAAAAAABwguvbQ2V4v4wedWr/pdb+rkoRR66Z/XCmqjYqrJUSAAAA +AAAAAAAAAAAAAAAAAADgxDZqDpWSsfTVbDWptYpdcdSa4cHVLUnKWONK6woAAAAAAAAAAAAAAAAA +AAAAAE58ZSY+VMZ6RDNBoqSvXS3H7DgBNPMPl/4YU7wCAAAAAAAAAAAAAAAAAAAAAIC1oowCV/P0 +h4atq1rHHsCRmSd41ZfVxK4AAAAAAAAAAAAAAAAAAAAAAGDtKActc9SZpQ4fw5GZG7w6KK4mewUA +AAAAAAAAAAAAAAAAAAAAACe2MooNlbEHYwWiYduqjsWu9K44CqPg1bxhNbUrAAAAAAAAAAAAAAAA +AAAAAABYI8rwn5SUlDKeIRoPXCldcfSaeUfLWOlK9AoAAAAAAAAAAAAAAAAAAAAAAE5wpc8Ndbmr ++dtDNbWO7sJRmTz0qhJHFADAof3BJ28/7PqffNjZx2kmAAAAAAAAAAAAwFrh84sAAAAAABxTw87V +vLGroSpNxILMDl6VsaOsJKmiVwAAh3Ld9n3LPQUAAAAAAAAAAABgjfH5RQAAAAAAjq1DF6/qnDtw +dJrlngAAAAAAAAAAAAAAAAAAAAAAALBSlINux4hdsQizg1e1P5pqv6Q6wAAAAAAAAAAAAAAAAAAA +AAAAgHkbWHCkmkOvErsCAAAAAAAAAAAAAAAAAAAAAADGFNUrFmZu8Kr2X8SuAAAAAAAAAAAAAAAA +AAAAAACAEbErFm4UvKrji9gVAAAAAAAAAAAAAAAAAAAAAACsPaMAkRARS6uZO9QdZLU/6BxyAAAA +AAAAAAAAAAAAAAAAAACwBgxjV3VueaikjD0oc9bD/ZkJXtWZpR7moAMAAAAAAAAAAAAAAAAAAAAA +AE40tf86ChHNv9mwdSV6xVFqDh4YHWK1O+xErwAAAAAAAAAAAAAAAAAAAAAA4ARX+9hVrTMhooP7 +QyUpEbpiYSbr6ICqM8swdgUAAAAAAAAAAAAAAAAAAAAAAKwNNUnpwldjRSKJK5ZE09XU+sjVsHc1 +XHtwXQ0AAAAAAAAAAAAAAAAAAAAAADjhDGtDtfYRooP7Q6X/UpKUPoFVpLA4cs2sR2PxK7ErAAAA +AAAAAAAAAAAAAAAAAABYQ/rYVc3h+kNiVyxMM4xb1VrTHWZCVwAAAAAAAAAAAAAAAAAAAAAAsKbU +YX2oj151SaLMShING1diVyxAU4exq9Ft+iMNAAAAAAAAAAAAAAAAAAAAAABYS+qoQXSI4lUpM+Er +OAqTtbZJMopezT64AAAAAAAAAAAAAAAAAAAAAACANaHWpJSuQlTH4lfDsZKklJSU1DL2HDgCk7Xt +DpZa2wyPLYcPAAAAAAAAAAAAAAAAAAAAAACsQbUrXdXh7XAs6YJXTZK2pJR028ARmqy1TZLRwSV3 +BQAAAAAAAAAAAAAAAAAAAAAAa11NTd8lKqUfKzPRq1q7+yWyRRyRyWEhrbbDotoyzwgAAAAAAAAA +AAAAAAAAAAAAAFg+wxZRHXaJaobJq5TSrSvD2pXiFUdmsrZtkqTWmlrbrqjm4AEAAAAAAAAAAAAA +AAAAAAAAgDWpqxB1sava9k2ikpRSuvBVKV2lqBxuLzDbZNsHr1LTHVjDshoAAAAAAAAAAAAAAAAA +AAAAALA29Z2rWtuUYd2qlO42dew+HJnJOha8Sq2pYlcAAAAAAAAAAAAAAAAAAAAAALC21Zpaa9LW +1NSkKWOdqy50VZLUUiJcxJGYrO3YgdJHrwAAAAAAAAAAAAAAAIATz8WXXjln7CGXXJJ3vv2tyzAb +WBzHMwAAAMCxVZOuRzQMX9Wakpouc5UuejW+DLeHQ5jMrOPDwQIAAAAAAAAAAAAAAAAAAAAAAGta +H7hK23YPk5RSZoJWpaSUktqUlJTUNDPrRK84hKY7lPqDy3ECAAAAAAAAAAAAAAAAkCRp2zZXveZ1 +efJTn5ErH/Z1ecpT/03+6vVvWO5pAQAAAMBxUWvtl3ZsOShTVEpSmpSm9PfLck2XVWBS5AoAYGH+ +5LEXLfcUAAAAAAAAAAAAgDXG5xfh+PqjP/7T/OEf/fHo8fVf+EJ++VdflnvuvTcv/pEfXsaZAQAA +AMDxUFNrkraPFDVNZuWuSklJUpvuS0mb2tZ0g8d9sqwCzXJPAAAAAAAAAAAAAAAAAGAlesPf/M95 +x//q9W84zjMBAAAAgGVQuy+11qR2t7XWLoBV+6JVKSmlJMMlwwXmmlzuCQAAAAAAAAAAAAAAAACs +RHfedde843fceedxngkAAAAALJOapHR9q1pratumLW1K+tBVklJKSpLaj9VSZoJYMEbwCgAAAAAA +AAAAAAAAAFj13vb3/5Drv/CFJMlpp52W7/ue5y56n2edeWZuve22ueNnnbki5gcAAAAAx0VNUmoX +vOqjVylNkoyiVyllbOkfJ8JXzCJ4BQAAAAAAAAAAAAAAAKxqtdb8+m/+Vu66a1uS5CGXXLIkQann +PPu78/svf8Wc8aPd97GaHwAAAAAcL7Umpa2ppU1NH7VqmqSUUfSqlJJakpLuVuyKgwleAQAAAAAA +AAAAAAAAAKvapz/z2VFMaim95EdflJNP3pqrXvM/csuXv5wLzj8/L/z+5+fZz/quFTE/AAAAADhu +ak2tNWlr2rRpusZVF7lK179KSVJK0pSknf1cSASvAAAAAAAAAAAAAAAAgFXufe//wDHZbykl3/u8 +5+Z7n/fcRe3nWM0PAAAAAI6vYfSqTe3jVrXWlNolr2pKH7xqUlJTazsTvhK9IoJXAAAAAAAAAAAA +AAAAwCr33hUelFrp8wMAAACAI1FrUtKm1pK2JE0pqaVJLTVp+o1KSVKSpqa0SS2t2BUjglcAAAAA +AAAAAAAAAADAqvWVu+/OJz95zXJP45BW+vwAAAAA4IjV2reruoBVLU3StEltklqSkiT9be3v19JF +sESviOAVAAAAAAAAAAAAAAAAsIp94ANXp67gi+VW+vwAAAAAYEFq7QJYbU0tbTfWlJTSB66S7nZ8 +GT6PNUvwCgAAAAAAAAAAAAAAAFi13vv+Dyz3FA5rpc8PAAAAABaiJqltm7YPWZXUlDRJ06SULnxV +S0lpSmqapKSPZCVpRa/WKsErAAAAAAAAAAAAAAAAYMncfscd+fznr809996bHdt3ZMfOnVm/fn22 +bNmSk7duzeWXX5oLH/jARf86bdvmHe/8x3zggx9cglkvvZU+v5Vi565dueaaT+Wmm27O9h07cuDA +gWzcuDGnnXZqHnzxxbn8skszOTn/ZXCllNR67C+OvOOOO/Ppz3w2t99xe3bs2Jlaa7Zs2Zyzzjwz +l192WS644PxjPgcAAACAFafW7r2Zts34OzQlJSk1GUb8Dm15AAAgAElEQVSvmiYlXeiqtjVJ263X +vFqTBK8AAAAAAAAAAAAAAACABbv33u155z++K+/7wAfz8U98Infeedf9PucBD3hAHvfYx+R5z3l2 +Hv2oRx7Vr7f/wIG8+S1vzZ+98s/zpRtunHeb666/PhdfeuX97uuL137msOu/7WnPzHXXX39Uzzue +85tvHw+55JK88+1vvd9935+F/N6P1P4DB/KmN781//Nv35R/+dePp23bQ267ZfPmPOmJT8gPvvD7 +c8UVl89at379+uzdu3fR85nPrbfdltf/9d/k79729tx4002H3facs8/OU7/9KXn+931PHnjBBcdk +PgAAAAArUq2pbZu21pRa05SklpKSpltfSkqSOlG6zlXa1LYk3egyTpzlIngFAAAAAAAAAAAAAAAA +HLWrP/Th/MWrX5MPffifMj09fVTP3bFjR9729/+Qt/39P+QRX/91+b3f+e1ccMH59/u8V/3lVfnz +//4Xuf2OOxY67WNqpc9vJXjXu9+Tl/3af8ptt99+RNvv3LUrb3rLW/Omt7w1P/CC5+fnf/anMjU1 +lSQ55eSTlzx4tXv3nvzBH74ir33dX2X/gQNH9Jzbbr89r/rLq/Lq17wuz/7u78ov/vzPZtOmjUs6 +LwAAAICVqNbapatqF6+qbUktTWrbJk0zs2Ep3eNa+/slafvgle7VmtLc/yYAAAAAAAAAAAAAAAAA +nR07duQZ//Y784IX/lDe/4EPHnXs6mD//H/+JU975r/LJz7xyfvd9jd+87dXdExqpc9vOQ0Gg7zs +1/9TXvTiHz/i2NXB/uLVV+WZ3/FdueHGG5Mkp5126lJOMZ/73OfzzO/4zrzqL6864tjVuMFgkP/x ++r/O057573L9F76wpHMDAAAAWKmGsavUmtrW1LZNOxikHQy68FVqRlWrUlKapotfNU1Smi6AxZoh +eAUAAAAAAAAAAAAAAAAcsQc84AFpmqW9CG337j35oR95SW697bYl3S8rw2AwyE/97M/nqte8btH7 +uva66/O9z39hbr3ttpxxxulLMLvOJz55TZ79vO/Ll264cdH7uvnmW/Ls531fPvf5a5dgZgAAAAAr +X621X9q07WAmeFXbmSBWKUlTRtGrLnxVBK/WmMnlngAAAAAAAAAAAAAAAACwuvzAC56fn/65X5g1 +1jRNrrj8snzNwx+er/7qr8rpp52arVu3Zt3kZLbv2JFrr7s+H7z6Q/nQh/9p3n1u+8pX8vsvf0V+ +9z//1iF/3Sc98Qlzxt79nvfOGdu0aWO+8dGPPsrf1eKt9Pktl//yey/P373t7Ydcf+455+QZT39a +vurKK3LWWWdmYmIid999d7Zt+0o+8tGP5eoPfzj33HPvaPtbb7st3/eCF2bz5s1LMr8bb7opz/+B +H8zOXbvmXf/whz003/L4x+XKKy7Pqaeemlpr7rnnnnz6M5/N+97/gVzzqU/Pec4999ybH/7Rl+Tv +3vTGbN26dUnmCQAAALCS1dSkrUm6yFVJkpI0pYzu9wNJH8EqbZtaareuLtPEOa4ErwAAAAAAAAAA +AAAAAICj8vSnPzW/9Tu/m23btuUbH/2oPONpT82Tn/zEnH7aaYd8zuMe+835wRd+fz772c/lJ376 +53Ld9dfP2eYtb31bfvKlP57zzjt33n288k//65yxiy+9cs7YueecO++2x9pKn99y+MhHP5ZX/vl/ +n3fd+vXr88u/+HN53nOenVLKvNs89znPymAwyGtf91f5/Ze/YhSl+tINNy7J/PYfOJAf//c/lZ07 +d85Zd/HFD8qvv+xX842PftS8z33yk56Yn3jpj+U973t/fvlX/mPuvPOuWetvueXL+fXf/O3DRtwA +AAAAThh1GL1KH7capJaklpJaSkrTjKJWpZTU/nEpSS3DHaheneia5Z4AAAAAAAAAAAAAAAAAsLpM +rVuXP/jd/5z3v+eded1Vf5HnPudZh41djbviisvz2le/KqeffvqcdYPBIO99/weWerosk1prXvZr +vzHvuo0bN+aNf/26fM9zn3PI2NXQxMREXvD8781b3/zGnHrKKUs6x1df9dp86tOfmTP+yG94RN70 +N68/ZOxq3BO/9VvyV6+9at5j+m/f9JZc86lPL8lcAQAAAFa+mlr7cFWtqW1NHbRpB4O0g0Fq246i +ViUlaUrSNCn9kqbpxg7/dhGrmOAVAAAAAAAAAAAAAAAAcNQe803fmAdecMGCnnvGGafnh3/whfOu +++jH/nkx02IFec9735fPX3vdvOte/nu/kyuvuOKo9nfhAx+Y//Znf3K/gawjtWPHjvzxn/7ZnPHz +zj03f/pfX5EtW7Yc8b4edNGF+fWX/eq86/78VX+x4DkCAAAArCq1+1KHsau2Tdu2qYNBt7RtF8RK +kpKUUlKakkw0yUQfviqlX7mMvw+OGcErAAAAAAAAAAAAAAAA4Lh7ypOfOO/45z9/7XGeCcfK69/w +N/OOP+FbH58nPfEJC9rn137Nw/P0p337YqY18sa/fXN27NgxZ/w//NIv5JRTTj7q/X3bU56Ur3n4 +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 +vupUfNUzboqf/vDZw54KAAAAAAAAAAAAcJn7qmfcFDdf5c9E2J2Xv+yl8bznPTf+639939S2t/yH +t8bbf/O34i989VfFi174gvisz/qsGI1SPPjgQ/Gxj38ifud3fzd+5Vd/PR555JHOcX/qT748vuYv +fHV8x9//BxvN7ZX/zVfG9/zT748nnnhiatt3fff3xlt/+T/G1/6lr4ln3nVX7O/vx/33n40zZ87E +H7z3vfGFX/D58U3f8PUbjX+Y89vb24tv++t/Lf7X/+O7Brf/8I/8WPzMz/58vPKVfza++Iv+RNx6 +661x1VVXxUMPPRRnH3gg3v3u98Svve1t8aEPfbhz3C233BKf+8c/J37lV39ts5OPiK/8ilfE1/2l +vxg//bM/N7Xtvvvvj7/7339HfPZn3xmv/LNfGc977nPilltuiSuuuCIefPChOHv2bPzeu94Vb3/7 +O+Kj997bOfYLv+Dz44orrojffufvbDS/U6dOxb/4oR+Ir/naV8WnP/2Zqe2/+Y7fiq991TfGc59z +d7z0S14Sz3/+58aTb7oprr/++rh48WI89thj8cgjj8Q9H703PvCBD8YfvPe98eEPf2SjOQEAAACw +gjrNKuccOaVIKVVto1FERIwjYhRpEmBV51elVARZ1UFYaZyizcYa1V2XL70xWZ07GQAAG/jSO66P +j5+7GO848+hhTwUAAAAAAAAAAAC4TL34ttPxpXdcf9jT4IRLKcV3/qN/EN/8Ld8e4/F4avsjjzwS +b3jTv4o3vOlfLdXf53/e8+O1r/n+ePjhhzee2+233Rbf9I1fHz/5ujcMbv/td/7OzFCkO5761I3H +X2TX8/sr3/QN8ZZfemu847d+e3D7ffffH697/Rvjda9/41LzPXXqVLzm+783PnLPPVsJvIqI+D/+ +t/8lPnXmTLztN94+uP0jH7knfuD/+eGl+7vzGc+IH/qB/zte/8Y3bRx4FVG9j97wkz8e3/Jtfys+ +8Ud/NLjP+/7w/fG+P3z/xmMBAAAAsGM5V9lUxe8xxzlXgVajKhArpRS5DrzqBl+lyducI+Vch11V +iVdtzlUZeNU8FoK1lNFhTwAA4Lj75rtvib969y1x9V5avDMAAAAAAAAAAADAlly9l+Kv3n1LfPPd +txz2VLhMfMlLXhzf/V3/+8b9vOiFXxyv+5c/Gk86fTrueOpT4ylPuXXjPv/B3/+O+JznPW/jfnZl +l/M7depU/PPX/rO4+9nP2rivq6++On7gtf8svuQlL47nPfe5W5hd5corr4wf+aEfiK/+qldu3Nfn +Pf9z46fe+Lq49dZb4rnPfc4WZld51jOfGT/30z8VL/2Sl2ytTwAAAAAOWB12lXOOnHOMx+MY7+9P +Xi7VL/XzPB5XL2VYVR2IlUajSHt7kfZGEXt7EfXjNJq8RErTL8wl8AoAYAtectvp+M4vuiNe+fQb +48W3nY47rrvysKcEAAAAAAAAAAAAnEB3XHdlvPi20/HKp98Y3/lFd8RLbjt92FPiMvN1f+kvxuv+ +5Y/GZ91++8rH7u3txd/+m98er/+JH4snPelJbfsXfsHnbzyva665Jl7/Ez8WL3nxizbuaxd2Pb8n +33RT/PzP/Jv4xm941dp9vPCLXxC/+HM/HV/+ii+LiIjn3H33tqYXERFXXXVV/F+v/r743u/+P+Om +m25c+fjRaBTf/q1/Pf71m17fhqQ97znbC7yKiLjlllvi9T/xY/Hq7/ueuPMZz9i4v729vfiyL/0z +8aV/5k9vPjkAAAAAlpNzFXxVh1lVQVeXqpf9+uXSfuRe4FUbepVSxGg0eWmDrvbql7q9DsYSdrWa +9Pff/Na8eDcAgIi/9see0nn+/Oc//5BmAgAAAAAAAAAAAADT3v3ud3ee/+THP31IM6n062/7ytCn +iIg777xzh7Op3HX350y1PftZz4q3vPnfrtTPuXOPxU//zM/Gm37q38QHPvjBufvedNON8RVf/or4 +9m/56/HMZ941tf1HfvTH45987/d12j78/veuNJ/GeDyOX/z/3hw/9a//3/jd3/v9uHTp0sx97372 +s+I7//E/jJe/7KUz9/nKV/75wfM7KvMbcs9HPxo/+fo3xlve8kvxqTNn5u57/fXXx5f+6T8Vr/rL +XxsvftELp7b/mVf82fjovfd22tY999Jjjz0W/+anfyZ+9ud+If7gPfP7u/HGG+IrXvGK+Jvf/q1x +112f3dk2Ho/jc7/gBfH444+3bet8PA/JOcd//JVfjTe/+d/Hr/7ar8fZBx5Y6rgbb7whXvKiF8XL +Xvol8eVf/mVxy803bzwXAAA4aPfcc0/n+SOPPDJ3/8P++RsAlpVSijSqg6pGo0hpVD0fjept3SCr +ToRVzhG5fht1QFaO+m390u5XRjrVxxERAq8AgBUIvAIAAAAAAAAAAADgKBN4dTg+85n74vff9a74 +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 +2C+NRuObwWWwUhlz1eY+3Gg0Gv9KhIesOjk81/bc2Gg0Go1Go9FoNBqNn4f9EPyBXqWT5YtPLHR2 +hLrgHMmX3nzdV48qt3ShyzCR+PqEaDGyfkRKcRYwOLjChV4md3alzqO0jehgioJJWT4iol6xiOSM +6SCXUu42Xv1YhwXZGlfHAZRk8ejnys7rEsbzWstCTErpA+wXpOIaIVqFdVxNkft0t5HTKxtRYb2W +dnXL2Fypn14U21bg8++vFotvn/s3yrot4uff192W+NNV2l5SqSIX15UfXCno7a493CRKkkznJl1T +T05RjL/DcJ/LTrCMPzTyu2zcSSoZzzVzCWnPnV6pw6rkverZEe6WC4Rq51eaPSqawO+hWRYDzpaL +4e3kA0S5RQsEFxbqtCy8MvDI4HO8nxXe/S/LAO56iEE76G6P7P2MR7NZHAPZbdhgwTTU4TA2ot6s ++7z2/DrOeWlNK675rSwc8iSz3lA5Kqy6setLLDYQ6dzd2SttlaaZkCdTZTB+ZciTnpuM8Oky5V76 +OYQphch4lpZF88zzKDYGwOkV8ZjTzOkVRYd3MvMxE52nrYGdIqSbjqrzKJFztE0dAM6HZptpZl3Q +kZXO2WEukVm6doF5gZuq87kcHV95V877xnl6W4RI6PS+V17nfIZ2Oydhp6Pjryskd3eBc9xoNBqN +RqPRaDQajUaj0Wg0Go1GY+DrDq8URs456SSiQ4ToOMbr+mM6wGAmPpgOOkiY6DxPIhp5fHeLRqPR +aDR+Cd4kwaATrNpucg6Vygm7QaFdULI0IG+pwydgAWhGioGqUbNA2A5OyWPD8dSQ86FEMazf0GXQ +5UnyIj6Mf8MEOxMi2WKSGIjIHL04eUz7w5kWLAykASfRDBKF7xGm5YgRFpT4RW57tl13DdOz5tzf +qTTJFqd1n5gOYc5pVNT7FRK7te+doZeefSZJGlVMPz0npeF1Wl2cpBfUk9MJ8aCXs5oNknrUrDur +bUYXjt4gSxyr2YW4E5wTcLY1MbLY1QV7k8ZkJMBQKaPkUCAKWteoAy3MFtIJnK4x2KUYhioGJ22a +RZIa43mEOuamAs9JgoFk7+5RfOWQuc2bvl+mICrKSuc4NKE65dCY3C5vzzpn4rWFvv5IvFSB82D2 +Odll6Fdxe8GW86pInfHl+sV6XdjQugQbHEirOl8Sxpd6EOFOi9oBOk8Syijas+yhQ0COEUjH4b4Y +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 +POz/pF1SaXNc+dib+7oZd8j23Qmd2m0mubrNm32eT2Q+UR/p+1+7vq2Lbr89N47rYFwbTP15907q +1O7B+j7Yn71UkqkxxDn4ebdRcaej+0vsNSk0klzJJfP86gmoRvkiIjaJqcZ2zs7wpuv1F8j2crdx +ifHaJvdTdb3dvN8TAAAAAAAAAAAAAAAAAAASflDCK7oXOK57IaEH07zILtgwv+5FZWYivmjkp+iB +N1gFAAAA8AVUb7o9avfBzyU2r9dyNkPwzzt+qmAq7uFINH5aR9SyUE6JtPxXo9ssAoNaLJcKcRIh +pldQZT2WVu7zzkNGI1qrT0EPRJujaX2Odq3tCCqzwQTz+PQRX3eQ3Ah64dF0BOfqoJoe8dyCc0Qp +mGRXI0hChYYNVSFzkHWwQ+sjvtGrBbaNPqbM62TtPKLlkml4mPTMxaCuNXYmau1eb2z2wzlkm95S +h6o2q4AmFbVzbG+tk7Wal7StLcSlLLttmaCxVfNFLFbVd+Ft3WypwkkpNxvOn+DPFGQ+ponVzIbT +fW0/2Ej2c33blk1feb/7dnNQqb9sZ8z8rRXaZv5nY462jE1lN8itgXV9Zj09/wAAPz3fFegNAAA/ +Cvz3NAAAAAAAAACAn5BqzTtLhKV1TfIr9+Xt/jKjua+SYKlyj+cyX6zXSa/6+u9Ysux11NY22jrt +WJ/tqt3PZTaBoUK6i2Ld9H3EbPpOfDGR2DbZ2qyW9eXwtu5tl7olHL8uG7F0VPyEJFf9S/5alpQ3 +W6KkbKZHDyArvnFMfLyAsvNVSa5CIp/DuuFjkqVriuo5sCrf/R/tHzpKDxrJM/tvXsYPe/kSH2pz +3/kfjB/pjVf5rsK5T3R+7YykVveOlan9Xt+TZZkkWIsEWCHp1fgsmkmlTEKsxVZ/uO2SXOklMp/k +SifCGq/9azozyCYm3xqfZzZblRqD3vZ5UdvVvUSZ1TL98dsOAmlLqQoRmUQwQWcfeCT3oe2/ar+X +Tuyb1oZ+DD6K47Sua6Q6XGyVzRirksevmFq25SQCxej52JRMO48LCU5Vu7V0c1jr6nWHR/1Xxp18 +vtBTHSghdWNQCWZJHbV+T6L7crFJr6iV9Q2mm+/3Hp7JseTWZxWv6RnPo6z6bs+u972vPdm3OFh1 +m5oJsNRz831bST6fxrNtj1vq98xZz20cXarvsX0uexyml88EXGpM2glny9vwmNhXbeZbP+cBAAAA +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 +MT1qePuCstNyEjq4i9Xj3/48eOf3qg/XdRaFdlnbNgldpasjXrWv4JUsr0McU/xqvTKbtfcEr8wa +20JXvqBTbStrjmZ9d7cIYAlb/f24kb8hbE3RK6dun7+5Z6suz+1R63kTe7en+NXMtXmfq/l669qy +H439JVO3/vVFlRrFqjaojls2mZuTGvunanuCukvwDZxKrGpVCJ0y6futz0NQvyn29GSbc1UDjzqE +oWmKffuBIW9+y1vp+3/wh5vtV111JT3i2mvpkksuob/5m7+hP37Pe+n2228nIqJnfuEXnKtpAgAA +AAAAAAAAAAAAALiHAMGrDiEKXy1ExCEQ73a0ox3RjtaDQWbiHdOOzlAgpmVZ1o4QvQIAAHCKqRIR +OpkJoxyLfb1LQotJmfBCsPXrD1e8uRaZStkzQYY1GRApISSsGbfyjZllFmuf8uZazm/STTY9bqxz +STi2Ylg5mTklPqcBZVtMMlnbzEBk/NIaxdyIqe6vVtajmz5kEpNKDpXc0pw4JXx9gatyrzw/nZRF +6ir798SseCKmnhvXcZQPN9ZhYojNsz42uUuLJ1Hdt9GvtgnXzuem5+Bavfn1e6imtocTqensJ6CX +qh6sv0/6HqoR2K+379eE2JUd295UZzW2xX92vNtYrdI6NGxbPLd5bHEDAAAAAAAAAAAAAAAAAMD5 +h8meKkrLWtY+dY+9xxMV/9SkkOV2uBjK7IgovYiIiCrRq3zO2hK9IsqCVVn0ao05K3aVxLGosq2T +bYldUZyDWqs4Bx4fvEyKUXWFqebCbWMm0OCu23O6Rts2EasJIawNbU2fjm/b5bQcsgWn1j6NHIY4 +YFkhj37Evdmk+nHoUGHrzp1zunvbO6t3fLzP3N1V8EqVKcaYLeexZ0SuTkjwqtqLslZf3Er4RR9b +LkXZNlMXd777vbi27SV6NWgbladEryb2eR/xq6krOddyG6u5t/a3Xrtxt3tk+3n+9cUzyGKvoWXa +4jgfo1+trZ3xush+Jr+RlansdCgu/Zien50n+25+UDOvabTg1swYbQs4Fj/8Iy8rfw8juOyyS+k7 +vv0l9Kwv/zK6173Knx+dPXuW3vb2t9NrX/cG+iIIXgEAAAAAAAAAAAAAAADYCASvWoRAFAIty7KK +XYVAO0oHQrtyMLjbEfGqKLFjoiX1zWFwpAIAAOAeSCsZg21l8IrL6MKev6jqZCbSGljOhFgmU+ih +1lYOVdf0s139HFcDlnnm5GYqadtKzCp34UrTay2HInpFRQyr5PKWYEW4ioxKltkolYScMoWCjklU +1peqab/Ufg5+f6lzjOQ2ZSe2fiKBSYkB2aQu6RuvOjnLtKV+QnSqbtfxtdgVd2N6Y1LqZ2Lp+Yu4 +Tnu5aL9qfyr/4lR9FE0c29+M6gRtmvRnsO/ZnU9vpN6cZEPLj62x2rdi8L5r6K5su6iO6rtC49nP +cRox5GT4kP7Urtf3v4F7r1odx/cdAAAAAAAAAAAAAAAAAAB3b5iO9IfkKZC9kvgjdyYhQiUH1rNY +a+kgwp9dOk8pIUK+5FNeK3oVha7SOU0RuLKiV7SKUAnRK0q2LHYVX5IkxK7Wc5gkclULYHnCVyTF +rpQQVrQEiufeWw5mov/RxKrOJdVJoG3KldZR2jbBq33szgxH55kd3zmXc30ja4WqoGobQx08/b1H +H4c9Z1t7+j+Q3efWaep9Frwzfa4d1Hm9PCdvl4WtKTJ0woJXOda8yJUs3z0Er2bL5m5P1eM8SrFp +s/kcns19hmydZYjRMxajynmVDarbh3t9AuJX1L6v5M21tz7W+y73yd8z62v3u2XTdjnVqqYbbLVt +9R1b5qmBatM+ffo+9a/Deif7vwkLKdrWwM0Jzcy0N4dGjLmw9ziSaO7dgRs/+EF67eve4Lb98A98 +H33OU59S2c+cOUOf8djH0mc89rEnPT0AAAAAAAAAAAAAAAAA90AgeNUhLAsRMwVm2tGajBTiwXA+ +zNut4leBAy1EtAtESwhEy1IOcu4uJxUAAADAEEdgZ48Y5asXP3TaG3aRCBOIxVt6RaeYI7gmLse0 +DpkQUjKcq5jJnt+pyaXOsb3oShkbCyGsGFO/iTfNLyZDS18jXFUSo4nK24VLvECBVE6zTI5OQ4gE +s+xfbezkXa4SkMre5CgmGclL/Ep+6pp9ZYJX8R+JXK1X3Ve3s46zIWaq+/Ou52vnnip2ve39Y1Pv +73uxddKrxnlW9dg9GvPqjdCai9d39Hj2k8r1BHV3/ZlW8ao4bNbJbrxZsapWjOq2Nepy/7r9611w +7lfjJrh73bE3mPmOMvld56AeAAAAAAAAAAAAAAAAAAA4Ikz+y39SRdm2BZJf9cUE9Y4L9Pt/ikAW +l7PRkM9oaqErIhICV2vfIoBFStiKHNsqhEVK7Go9l41iV2JsK3ZVjodFmYI+X05L3yx2NcOGmM37 +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 +eXkzXHvVFWjapAn+9Z/HY8t/mT4dX3z5FXbZeae8+nDr7Xcmyk8qysvxv8f/jZ49N8vaxnoVFRg0 +8HzsucfuOPeCQYnt1Sd++ulnvP7Gm7Hy8vJm2HefvfNq65nBz2HC9z/EynfYfjs88uB9WG+99bK2 +0a/PXuiyySY45fSzsGDBAm/Za0PfwEknHI9eW26RU38efvQxTJ8xI1besGFD3H/vXejXZ6+c2gGA +zTbtkfd56KFH/o5fpsdlTI0bN8a//vFIRjGcS4cOG+GRh+7Hf594Enff+0Bs+dPPPIuDDzwA22zd +O6/+Rbnr3vu9x3v364vbb70JFeXlRbULhJ8bbrktLjQEQhndU0/8G5v37Jm1nbKyMpx80gnYa689 +cOLJp2HR4sVF9622cMjBB+Kue+7D8spKr3zIq0Nx3p/PzlsAqBn6xrDE8qOOPKKg9gDg4kEDcc5Z +Z+RUd+9+fbH55j1xwsmnxsRSAHD/Qw/j0EMOyih+S6I2nG/4+YEQQgghhBBSE1B4RQipe+iZfIRQ +UhhHYiPtD/bJukk+5vdsYqtMdb3HTrk3KG0WJwuuktpPqmfuC3s/KsHSgQQjVXLEFzoYIKRIu7xo +6ZXqgw0hAJCqvtDvT2GWafGVEGrgXzrHzhNfqUCfeZtbGZZUIT97/LPIr6REoI9XoI9zRHDlOqsC +57nypGGR5w3O9qPPq14l7sKKN+aUJZ3CGHcghBDiIoSEVHIrARFebFLCTnupPy+r+iaoJ63kynxu +lna5+TzBj9OEkHqAMKIrALB/0+hzH6SSXYHnPkIIIYQQQgghhBBCCCE1iLBfUJvJ7wAzWY2UEjII ++H02IYTUE5JP4yJNeZpSLbIKH5iyaM7VSK0iTbliKZNVNZOq6clNtcTK3rrZVbsdX1hlpmJ1ZFhW +WuVIoNwy2OsehIA0gRcl0fIEVba+nYAVJZddmfI0siud9TVZHKhsrJPbhVATxjLXXme54fpr8fW4 +cZg1a7ZX/tLLQ7B3377o22fPxPWee+FFfPTxJ7HyPffYHSefeMJa6atm5sxZsbLmzZvj8MMOKbjN +9u3aFdOlOkenjh3xwL135SS7crnwgvPw3qjRmDbtp9iysV9/k5fw6ueff8E7aeQj9997V06yK5dt +t9kaD91/D04785y81qtLLF26FBdechnWrFkTW3b6qadgvYqKvNp67F//iZVv1L49Hrj37pzkM5pN +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 +flZj+DbbrNJpr3lVz3k33XRTvekNr9OjH/sEbdy4MRv3yte8Tvvuu49uu8MOY13f4MWnvEyPOflR +uvs/3W3kNtauXat3vvu9rePuvf+9Bm5n11131RV/vLIx/L8+9gm95U2vH3n9loJ73uPuuttd99VF +v/rfbLi1Vs9+7vP1sY9+WDvtuOPA7a1Zc4Oe87x/bQ0XWkye88/P0jlfP1dr167Nhl9++RX6yEc/ +pqc95UkDtbPtNtvo2c96ht7+znc3xr3lbe/Q+vXr9cynP3VG63rFFX/U2hvX6p/u1v9vdd997qLD +H/gAfevb32mMe8GLT9FZZ75X99rvniOtx6233qrly5f3nGb58uU65SUv1AtedEpj3Gtf/0Ztt922 +esBhhw613NPfd6Y++7kvtI771+c/V0VRtI6bBA950FF6z3vP0J/+9Ods+K0bNugZz3quPv5f/zHU +Nn7dunV65rP/RX9bs2bcqzrRTjzheL3u9W/Khp1/wYWtgVfHHfuIWVmHK6+6Si956ak6/V1vH/h3 +7rLf/V4veempreN22nFHHXH4A4dah0nZ3kzS8QMAAACApWNyP/0DQEMeeBV71PEXHkm7Qi9dwVV9 +Zhp/mx1tZxezk4KDLESpdmE/NFO/YB7DMjouqlcX1BWD4pyfTy79cwrlBiF8Q1VvVmFcrabOJXO5 +pLFGm67qZSu0aWMPWWVolbVlT1q21vuVc07W2sYyrQ8Pia8/WY98rRXDtkJ7kuRiAEn53LqyqDDc +nDHlY1e97nJSU/5MbNVe/RbW3Tor62y2Xr3+800nP6vafx3LC+8pN27cuHEb881vj61zcqYoAyiL +QioKaaqQiimZKVM+L0y1DQ8BK9NW09PTmvb3dno63qcF6/P+Orlx48Ztwd6qImVJsmEbLPnjcX9s +L78tn/f15caNGzdu3Lhx48aNGzdu3IyxbKkAACAASURBVLhx48aNGzduS/FWVo5Iznfo5nwnajZc +V3TydShSWtvDjRs3btwm9Nazjm/ImsCO/2LtYVKP2HqzTqFz0vRW1rqYqg5S4dqp8vZ8bWas1Qy1 +p+m06X+hRjJdTjKtpKoeJgvCkpyM76xIvm40uY4b6ji7xttymaEeMwwPqvpO59fYr5NTdg1Z4TWE +57Xx4TX2C7vyXeX1CLuaQb0x5sVNN9+sl7z0VE1PTzfGverlp2r77Vf3bWOfu9xZz3rG0xrDb7hh +rV566iuzWuhxOufr39DJj3uijjn+RJ3x72fpd7///VDzX3DhRXrME56sq66+ujFu+fLlOuKBDxi4 +ra5wi69+7ev6yEc/NtR6LUWvedUrtGzZssbw666/Xied/Hh9+eyv9m3DWquvf+ObOukxj9P5F1w4 +G6s5UVat2lrPfubTW8f9+1kf1J//8peB23rC4x6jfe5y59Zx73nvGXrSU5+hCy68aKj1u+aaP+kT +n/qMHvP4J+khDz9WP/xRM9iny0tPeZG22GJFY/j69ev11Kc/S+957xlav379QG2tW7dOZ3/1HD3h +yU/TBz70HwPN86Ajj9BRRxzeGD49Pa3nPv+Feu1pb9SNN97Yt52rrr5aT3vms3Xm+z/QOv7hDz1a +hx1y8EDrNF+WLVumU170wtZxf/7LX3Tiox6rb3zzvIHa+ta3v6OTHvN4XXjRr8a5igvCwx56tFas +yH+nP//FL+m3l16WDVuxYoUedOSRs7Ye3/3e93Xy457UWG6bb573bT3hyU/VmjU3tI4/5cUv0NTU +1NDrMAnbm0k6fgAAAACwdDTPfAHApDFVWEBbwFBe0gN0Ky8gD3fRuN88XePbhteHpZeww4XuON5U +0xuTjEseV+OraUObaXuN+7BwlX8/rdM07quesso2XP48+fNLCypMvK/1dJX1uhX+tqsL/dm8pixq +iNOoFgQW3sMkDM/4QKs43IXyvzDOZvOlbaXzZtO0XFgO83ZtfeI6ucG3T9nvSL0CAwAwP5LQ1XBM +GvfL4XHoiTPs3V0ohKsKAp11ctM++LCsjGP7DgBjZXx3vIphuP6DhR+WbI/ZBgMAAAAAAAAA5osp +YlBIqI9RUn/iQmdqzlbXFQEAC1N9E57VlfboOLWzOZe10zqPi9Ur+XhXzZsODzWXVaerVa1naCPW +gCavo7Vj17Z1SsYnq6DQOWrzFaSBUS6fJql9bZvX1SdsdBTbryPZWq2rH+6Mes4bX3dH2NUwNaRo ++vNf/qznPO8FY2vvIQ86Sg958FE9pznt9W/S1Vdf0xh+zCMepiOPeODAy3r6U5+s7//gh7roV/+b +Df/5f/+PPvQf/6mnPeVJA7c1rEsv+50uvex3eu8Z/67tt1+tu+67r+667z66wx1ur6232kpbb7WV +JOmW9ev1179eq9/9/vf6yU9/pt9cfElnm89+1jO0cuXKgdfhqCMP1zve9R5t2LChMe4tb3uHvvPd +7+mYRzxMu+26q6anp3X99X/Ttddeq99ccon+6W531UknPHL4F76I7L3XnnrG056i9535/sa4tWvX +6qUvf6XOfP8HdNSRh+vOd9pb22+/vaampnTjjTfquuuv1/nnX6if/vzn+tOf/pzNe9ihh+gXvzx/ +oHCihehRJ52gT332c/rDHy7Pht9yyy1601vepne/420DtbNs2TKd/u536FGPebyuvfb/GuN//t// +o5Mf90Ttvdeeuu997q19991H26xapZUrV2rDhg36+9//rptuukl/vPIq/e53v9dvLrlEl19+xciv +63a3va3e8sbX6znPe0Fjv3Lrhg3697M+qI9/8tM6+KD76b73vbdus/32WrVqlTZs2KCbbrpJ1//t +b7r00sv0m4sv0fkXXKiNGzdKkva/134Dr8Npr321Lr/iCl162e+y4c45feozn9UXvvRlHXjAfXS/ +Aw/UbXe4jbbbbjtNT0/ruuuv19VXX6Pvfu/7Ov+CCzv3i/vc5c561SteNuQ7Mz+OOPwBOvYRD9cX +v3x2Y9x111+vF7zoFL1nlzN01BGHa++99tTq1au1bNkyrV17o9asWaMLLrpIP/vZf+vKq67K5v2n +u91Vm2yyif7fL345Vy9l3my5xRZ66NEP1mc++/k47Jpr/tSY7kFHHtEa9jYT+99rP1140a906623 +SpIu+tWvdOwjT9Ld7nZXHXrw/bXLzjtp22231WabbaYbb7xRF1/yW537zfN67iOPP/YYHXboISOt +zyRtbybh+AEAAADA0kHgFYAFouz5Rkn4j5SGCMzz6mFBGDbsys/UM/TK9BhfH942bfq8LfSqdd5G +EJXiBfQq0KoZchUu/oeAqcECseKa5s+7xue1FNnFf4UL+y3zphf1W8OvjJFzNr7mbDrlBRNlQJZt +HZ72EhaDsNLnUiMMK/ycUtW07RufON+AvS/Vfyfy9wcAMF+MFI8/ZYxMUR2TqkjDrlT19Did9P4Y +wlRCwEroBbJWsA4AGBPnVKiQcU6ukEwoc3bV55wYmc12GAAAAAAAAAAwT4wLXTxW1xzDdcRwLdH6 +abpqUwAAC1TLdr2tOrVvQFKtWLM+fXjWWgMZajqT4Y1Qq6oBf221VquZdjqU1KCm84RX52yMdIzj +m/u3dJ6y7jLMVtad+hCqWFva/nY0gq78BWJnQn9Jvq7HP6qPT8O+2kKyQg1uW1BWz7CrUeqXEd18 +89/1ne9+b2zt3WnvvXqO/9rXz9XZXz2nMfz2t7+dXvZvLxlqWVNTU3rT61+nY094lP7xj39k405/ +35m6z733193uuu9QbY7i//7vOn3nu9+b0ft44AH30VOe9ISh5rntDjvopBMfqY99/JOt4//fL37Z +Gepy+9vdbuh1XIye+fSn6reXXqZvffs7reOvvOoqfeBD/zFwe7vttqveeNprdNChh49rFSfOsmXL +9G8vfqGe/qznNMad963v6Ec//okOut+BA7V12x120IfOOlPPeNZz9ac//7l1mt9eepl+e+llM1rn +QR126CF69StO1WtOe0P8vkRq3bp1Oufr39A5X//GrCx/iy1W6IPvP0NP/+fn6pJLftsYf+utt+p7 +3/+hvvf9Hw7d9j53ubPOOvN92nzzzcexqnPiVa94mf567bX6yU9/1jr+iiv+qPd/4EMDt7fzTjvp +Pe98uz756c8sicArSXrUCY/MAq/aHHfsI8a+3Lvuu68edeIJevG/vSz7W7rool/poot+NXR7+99r +P738ZafMaJ0mbXsjzd/xAwAAAIClg8ArAAuDUfsVXclfpXSkw2AgvcKrRtWrvb6hV7Xn9dCr8rK6 +ac5bC72SXI/xPYKwwvQu6fmrJRAreUXJv9WDZvBVSwBY8ii90F+um7/I79rDr8JjG9fXZa+/bdp6 +mFUaghV+NunPxdaeS0oKLfLhaShWfVy97Tb135kYkgIAmBjGGLkk4MoURQy6CkVqxph4iOr88WhZ +yGf9PsSV96E4PZmGxFYAmAWh2NoU8Xnkt8U2bpM5BgcAAAAAAAAAzBNTxW2kHaPFDhvSm8S1RQBY +5BrRT6EX1HSarn1BDJlqny7WUKpWN1kLtCoHNTsgTYOtwn2jrjSrv6wCrsoyTtt8jem0tZCrEGYV +Q64k2TAuhFRVC07mHy7oSi2BVjHoyiU1tUmIVRpc1Qi7iu9NFXRF2NXC9Kc//Vmved3rG8ONMXrz +G07TlltsMXSbu+yys174/H/RG9781mz4xo0b9ZJ/O1Wf/8wntcUWK0Ze57nwiIc/VK951StUFMXQ +8/7rvzxHv/jF+br4kktmYc0Wv6mpKb3tLW/UK1/9Wp39lWYQ2zD22nMPnXXm+7TVVltp48aNY1rD +yXTQ/Q7UIQcfpO//4EeNca9/41v05S98RsuXLx+ord13202f+vh/6pSXvUI//dnPx72qQzvhkcdp +9far9bKXv0pr166d8+WvXr1a//mhs/TK15ymc7953ljaPPrBD9JrXvVyrVgx2dvCuuXLl+t973mn +Tn3lq/W1r587o7buuu8+Ov1d79D226/WXnvtOaY1nHx3utPeuttd76qLftUeMrXLLjvrnve4+9iX +e/3frteDH3SkiqlCLz31lVq/fv3IbR12yMF665vfoE033XTG6zVp25uZmsnxAwAAAIClgcArAJPP +hAutPlTAlD3bydqkqIe8K8yiekhVi2GCtBrTjSH0qh4QJdXG+4vveeCWq/5uGuFYaW9e3QFYbcFX +IWwqaTp/r+LrTkYmoVX18Ks81CovmKiHW6XTVu91HnxVD7qKvWMmP5t60UcVdNXc0nSFY7VNE7QF +Zg1r3MFtAIAaY2RMUR5/FkV5i4+bYZbx2NT5kCtry1AVa8v9VJwjLzQEAIxZ2EabHkUSMYB49lcH +AAAAAAAAAICGUA9nquuQzlrJptcVjZx8HRDnswFgQRu2I5626U2yM2htLx3UUgeZhlll47Jazzzc +qi3YKq23jIFOWehUFTzVVm/pqtExDCsNuQp1mM64JHAqnzks0phqeXGNuoKuXLX+oUY3TBP2tfUQ +q/J5HnYVpmmEZcXXVEVy1cOwMPmmp6d1ysternU33dQY95QnPUH73fMeI7f9mJMfpe9+/weN8Ior +r7pKp73xTXrjaa8due26Fzz/X/SJT35af/nrX2fc1p577K7n/8tzdNihh4zcxuabb64Pvv8MveDF +p+jn//0/M16npWj5JpvoTa9/ne5773vrre94p9asuWGo+Yui0ImPPF4vfuHztfnmm8/SWk6eU170 +Qv34Jz9rhHv98cor9eGPfFTPfPpTB25r9erV+tBZZ+or53xNZ5x5lv545ZUzWrepqSkdfP+DdMjB +9x9p/sMOOVjnnP0Fvevdp+tLZ391RgFm22237dDzrFy5Uu9825t17nlH6N3vea+u+ONo78euu+6i +Fz7/X/SAww4daf5JsOmmm+ptb36j7nfgAXrbO9410t/n4x97sp733GfHwKQ77bXXbKzqxHr0SSd0 +Bl4df+wxs7LMG24of05HHXG4dtt1V536ilfpf3/9m6HaWLFihZ7zz8/U4x978lgDneZrezNpxw8A +AAAAlgYCrwBMNh/kUz5uGe+vWrqqj7u5WzcsSCOHBPWZLw+Syg0UhjULoVeuFlSVthl7qDL1YaqW +1zmuWcjQFnyl2tgqtMooLTJIQ6vCwDT8Kh9vGu2k75ONhQN5CFZz+YrzxumVFxWkw7oCsOrztI1P +12sQg/6OOqfqPQMAzFzcB5ePnTHxcfnAlaGr8tv+dOfng62cs3LWyfrwK1lbFqYDAOaEMWUQrTOS +cVbOFD7818bPGdbaajvN8TQAAAAAAAAAYK75juuscyqclbWFjHFlbYkrry86a2Wtf+4sJXEAsJCl +ddB99ApFchqihrE1aMo1pm0EWsX1rddN5sFWVbBTlV7VCMmqz+tfRRD6F+0OufLtVSuWLMOHWPk4 +q9hOEmLVGnRVC8PyKVsxxCp0LFvV5SahVUnYVXwfk+mq97Y97IoOTheGsz74Yf3il+c3ht/pTnvr +Oc9+1ozaNsbotNe+Ssccf5LWrVuXjfvy2V/VwQcdpAc/6MgZLSN46pOfqCc+/rH66c9+rh/88Ef6 +4Y9+oiuvumrg+XfY4TY65OD768jDD9d977P/WEI8ttlmlT501pn62jfO1Wc/9wWdf8GFPQN69txj +d93j7v804+UuNsc84mE64vAH6nNf+KLO/so5uviSS3pOv9222+qIwx+okx99ovbYffc5WsvJscsu +O+vkR52oj37sE41x7//Ah/Swox+iO9zh9kO1+bCjH6KHPuTB+t4Pfqhzzz1PP/rxT/S3NWsGmnfV +qq11n/331wH3vY8e8IBDtXq77YZadt2222yj1776lXrOPz9LX/jSl/Xd731fv/rfXw8079577amD +73+Qjjv2Edp5p51GXoejjjhcRzzwATrv29/R179xrn7wwx9r/fr1PedZuXKlDrrfAXro0Q/RoQff +f9HsI499xMN11BGH6/Nf/JLO/so5+vVvLu45/apVW+uBhx2mJz/x8dp1112ycTvttKM222yzvu/l +YvGgo47QG9781sb+cWpqSg9/6NGzssy1a2+Mj/fcY3d96uMf1TfOPU+f+NSndf4FF/Y8Lr/DHW6v +hz/0aJ386JO03bbDB8YNaq63N5N4/AAAAABg8TMv/Nq3uBQOYDL5E5dFUajYZJmmli1TsWyZjDGy +09Oy01Zuerr8ompyA/oZ+eLxDC861+dtXY/asBA8lQzIgphMdaU8C3JKQ57q02RtupZp60FbvtCu +s52sUEHNYb2mUzosD6sKy03bScenbeXvcXuIVbr+6fTNeo3qfWwd3nHyul8IVte0AIAJ4AvTjL+l +j01R9qysGIDl5wlFbiGA1Vo5qzL0KhT9cWwKAHOuWLZMxVQhs2xZVWwsH1Rorey0lbXTctPT87ui +AAAAAAAAAIAlyxRFeT572ZSKqSlfD+fr36anZeP1R0vnDQCAvvWI0oD1iy0dg/oRrcOrYKv2+Zsd +jeYBWtn8WYhV9dipZXwWxFULn0qmTdtphFT1mS4LugqvoS3Aqm29sxreZNo+YVePuf3q7P3dc889 +BcyVv//977r8ij/qqquu0rp1N+nvt9yiW265RVNTU1qxYoW23GIL3e52t9Wee+yhbbZZNevrs+6m +m3ThhRfp2v/7P/3tb2vknNNWW63UjnfcUXvvveesBogsJtf/7W+6+OJLdNXVV+umm27W9PS0Nt98 +c+1wm+212267ac89du+sWb/L3e7ZGLb33nvpi5/91Gyv9qLinNPV11yj3/3+D7r22mt188036x// +uFWbbbqpNt1sM2255Ra6/e1up5132knbb7+6f4MztG7dOl32u9/rj1deqbVrb9T69eu1bNkybbbp +ptpqq62044531K677KJVq7aeleVv2LBBf/jD5brs97/XmjVrdPPNf1dRFNpixQrd5ja30a677qzd +d9ttSXyX4m9r1sS/z3Xrbop/n6tXb6fdd91Ve+65h6ampuZ7NSfCddddpwcc+ZBGEOJhhxys953+ +rhm337a9u9Od9tYXPvPJ1unXrLlBF1/yW1151ZW66aabtXHjRm2++ea63W1vqzvdaS/ttOOOM16n +UczH9mbSjh8ATK7LLrsse/6fV187T2sCAAAWmmXzvQIA0EsZKhB6N6r3cuSqkAG6scMQRj5BHi9m +d8/fa3x9nGlrrzbMqDaNqdrJ5s/mM8k0ap/GVWFWoaeqtL36sOpFNHv1cuG1xGe1YU7JmHSu8L60 +vFfp++VDQ+J6J4Fb9dCvOM7Viypc7XneA1m9jfRnFNaxWcxR2x4NEITVtoxRLIWLPAAw60J6VS3c +yhRF3J+qMNXjyPf+aG352Dq/TykDr+I+IRSvUYAOAHMnfm4qysLkwm+H/QcTZ6Sy217DNhoAAAAA +AAAAMPeS89ixJs4Uflh554wkW4VycC4bABaHmdYMSqr2Iy1tdoVYZeNqYVTVuPZQqyojqi0Qy8ja +vD3nbNaGTYOi4r5Nssl0rhqcrG9adlNO62TiWhq/yq7qU9WPdXJKamXDdEqDq0LteS3Aqh6YlQ7r +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 +8WzNmzdvxl5jMjY++qjuuutubXniCY1tHdPYtm2aP3++lixZouXLlumkk07QUUce2Zd9897rnnX3 +at26ddr46Cbt2LFDCxYs0NKlS3TggQfqBc97np7xjBV92bd+2bZtW19ffxD/Xvbs2aP77n9A6+69 +Vz//+eN68skn5b3X4kWLtHjxYq1ceYSOPfYYHXjAARN+TuecvnnFt3Td9df3cM+Hi/de9/7sZ/rJ +T27T5p//XE899ZT2339/LV60SM94xgq97NRTtHDhwmm/zqOPbtJtt9+hjY9u1NjYNnnvtWTJYj3z +4IN10oknauXKI2bgt5m82fr9AQAAAADA3EbDK2BImfjVpBCokRTG9HNIlGF7YA4rAjuy9dWHa+Ee +Y2ohnRTucS0n71o54FML90gEewAAAABIqk496k0+6l2vcoWBWgMAYK5KE+lifc1aK9OwVcOr6o6h +tuZ91eAqXXzV8EoS9TUAAICpiMdQPjW9iptNbmwSvsnjofEYTtbIyIamV5JkbXXf4vgsj4vG4zYX +x04lLzkX+qXIq95EBQAwKMjDAUOOPBwADJzzVq/Shz/yv2vbvvu97+vhDRt0+GGHzchrfPWitR3b +3nLeqhl57ol44omtuuJb39Y1112v/7j1Vm3a9NjTPmbp0qU6/RUv1zv/09t1yktfMuXXPuaE59S+ +f8Hzn6eLL/pKx/1+/JOf6stf+aq+/e2r9PPHH9/ncx5+2GF6w+tfp1/+z+/SEUccPuV967Z/knT8 +ccfpisu+Nq3nlaSzzj5H96xb17H9Z3ff/rSP3blzp666+lp9/dLLdN113Rsw3bNuXdf9n+xrtevn +38u+PPXUU/rGpZfrm1d8S9/9/g+0c+fOp33MYYceqlNOeYle/crT9dozz+jaZG73nj26+JKv6TP/ +9x913/0PdH2eify3lp7+v/eg/r0l7ft30okn6LKvX9xxv6eeekqfu+CL+tK/flnr1z+81+e74bqr +ptzwacMjj+jL//ZVff0bl+mBBx/c530PPeSQ8J7w7nfpyJUrp/R60mD9/gAAAAAAYHjQ8AoYVnk1 +uzZpIH+29wfAzEgr2KXb1rSFe2y1yl25il0R3nZpEl7L5VAPq9cBAAAA6M7EZlex1BAnEhlV80HD +xecJRQAAzAnGhBJ6bJLQOYEu1N5Skysp1tjKJlddGl4BAABghpRNDELRIXyTOpxY1ZtzW0ne5seY +1AihuM6jp9ZK3oeHeF818zZexvvq9cpsBTUPAOg/8nDAcCIPBwADa/W5b9Zfn/9RtVqt2va1F39N +v/vb75n28z++ZYuuvuba2rZnHX2UXvTCk6f93E/nOzfcqH/+/Bd0w43f1fj4+KQeOzY2pm9cerm+ +cenlevEv/oL+z1//L61cecS09+muu++Rc042NvJ+eMMG/eV/+x+6qu2/0b48vGGD/vGzn9M//fPn +9cvvfpc+9IH3d21kNBd9+8qr9PVLL9NVV187oYZOM2kQ/14kac+ePfrnz1+gz/zDP2nLlicm9dgN +jzyiNWsv0Zq1l+jwww/TdVd9K//tSdJnP3eB/vGf/lkbH310RvZ12Gx4ZGPHtp/89Db93u//gR58 +6KF9Pnb//ffXoYccMunX3L59hz72N5/QF7/0r9q9Z8+EHvPIxo367Ocu0Oe/8CW9/f95qz70R/+f +Fi2afqOpfvz+AAAAAABg+NDwChhCYfDf1PM9Pg3wVwP9YkAfmBvKyXcxuJNWrautYGxtzvR476VW +mHkeJtt5yVcT79JKdp73AgAAAABPx6hjEkG7WrMrzi8AAAMs19dSQytji/paVXOTFGpq8sXkOV/U +11zVACvV2QAAADArvCQ5JxkjL8l4I+O9jPPVsV7o3J0bedfE4z3TaEjeyxgvH5tglWOo3vvY9Lv6 +nroHAPQHeThgyJCHA4A5YcWKFXrl6afp6muuq21fs/aSGWl4dfElX+9oHrR61bnTft59GRsb0zvf +/au6/Y47ZuT5bvnhj3T2Oav0xc99Vief/IJpPddTTz2l++9/QMcc8yx9/wc36T2/816NjY1N6bm8 +9/r8BV/UzTf/UF+64LNatmzZtPZtEPzWb//erL/mIP+9/Oxn9+m//O7v655166a9X6e9/GW1ZleS +9D/+5/+a9vMOs7GxMe3YsUMLF4bmUddce71+9/ffN6FmbEcdubJq+DpBd955l37nvf9V993/wJT2 +t9Vq6V++/G/6zo036p/+76d13LHHTul5ktn+/QEAAAAAwHCyT38XAHNGHvxXl9Xs4gr08mI5O2Bu +MZJUrFhnG41wacZLoyHbsLI2rXZXrF7XasmNt+Ra42qNp9txVbsysA0AAAAAexUnEnU0vfLVhfMK +AMCgq02eszKxxtbI9bVwCZPoYpE9NblquVBXGx8Pl1ar1vSKxgcAAACzqGg+VTU3aIVx0dZ4uIyP +x+O3tL1oWBqZeFxora3GXZtN2WZTjXhtm818H5Mbae27KTgAYIaRhwOGEnk4AJg7zlu9qmPb/Q88 +oB/+6N+n/dwXXrSmY9vqVedM+3n3ZenSpbJ2Zs/rt2/fod94z+9owyOPTPu57rzrLt1664/1a7/x +nik3uyrdfscdeu/73i/n3LSfaxQN6t/LTTffovPe9o4ZaXYlSW9761tm5HlGzSOPbJQkXfy1r+s3 +3vPbE2r2JEnPetbRk3qdW3/8E739ne+ecrOr0kMPrdfb3/lu3XnX3dN+rtn6/QEAAAAAwPBq9nsH +AMyctOJVWM0upXzS8laqBT+ZfAPMISk8nQI+RdjHFINoxphideG4al2ceOfitbyvMn68DwAAAADY +l6K0kOZxVrWHwOcvaQPnGQCAwZQ+w4wxob7WsLK2EeprxsgYK6Vam0sT41TV18omV1L1mcdnHwAA +wOyLx2Dee8mYcHxmTO2YT0WDqnDMZ/OygLnJaXqMihpHOdbqvbwxYZxVkuKxoCnHXAEAPUUeDhhS +5OEAYM4484zXaNmyZdq6dWtt+4Vr1uoXf+FFU37en952e0fDlVNPeakOP+ywKT/nRP3qr/yy/vAD +H6xts9bq2SedqBeefLKe97znasVBB2rZsmXar9nU1rEx3X3POl3/nRt0w43f7fqcm3/+c33045/Q ++R/58LT27eprr9NNN9+iXbt21bafcPxxOv0Vp+m5z32ODli+XMuWLdPOnTv16KZNuuWWH+nSyy/X +E09s7fqc37nhRn35K1/VO//T26e1b/125hmv6br9yquu7ti2aNFCnXrKKTPyuoP297Lu3nv1G7/1 +29r25JNdf77//vvrZae+VKefdpoOPfQQrVixQs45bd26Vff+7Gf66W236wc33azHHtssSTru2GP1 +ohee3PE83f579/q/9VzzyMZHtXPXLn3wj/+so6ncscceo7Nff5Ze8PznacVBB2n3nj3xf4P7dMTh +E3+fe+DBB/XLv/rre/3f++QXPF+veuXpes6zT9KBBx4o7722bNmi226/Q9dce51+8tPbOh6zZcsT ++s3/8jv6+toLtWzZssn90oXZ+P0BAAAAAMBwM3942ZWM7gHDIIU2pWKlq7DiqKRq5dLxlrxrybsq +BABgwMR/yzmQ3SXUk27LmHpQx/kc5imDPekCAAAAABNWno80igkHjYastfLeq7VnXG58XK3xPfIt +zjkAAAMmFNhyowPFZgfWNuoNr2TyfSUfmxtUE+hSsyvnnESNDQAAYLCVza4UmlvJhganeZy1aLBQ +G5tVbHyVG6D62lird65quCBVTVbK16fJAgDMHPJwwPAgDwcA+pUjDt7nz5csWVL7/uijj+7h3lSO +OeE5Hdt+dvftte//4r/9lb7wpX+tbVuyeLFu+t53tP/++0/pdbs95/kf+bDOW33u0+7f8ccdpysu ++9qUXleSdu/Zo9NeeYY2b96sU095qd509hv02teeoRUHHfS0j73jjjv1X//wA7pn3bqOnzUaDV17 +5RU6fILNXLr9bu2e8+xn68//9EN6yS+9eJ/32759h87/2Mf1+Qu+2PXnRx91lK684lJZaye0b3vb +v+n+t0/OOvucrv8N2//2JqKX+ykNzt+LJO3atUtveNMqPfDggx0/s9bqXe94u973++/V8uVP38To +zrvu1jev+JaOOvJIrV51zoRev5f/rQf9763b/n3oA+/XF/7lX7V+/cN525ErV+pP//iP9tqgbTJ2 +79mjt77tHfrpbZ37ecwxz9Jf/eWf69RTXrrP57jqmmv1J3/2F9q06bGOn523+twJN13rx+8PAAAG +x/3331/7ftu2bfu8/+fXb+rh3gAAgGHS7PcOAJgZKXyZQj7VlsTXV7STF2uOAgOkmHxXrjacJuHl +ALapQtd5dcpipcoqdO1z4JpVLAEAAABMVe79IeVzFNXOM2J9gVMOAMAgybU1xTpbaGqgjjqbao0K +Qhm9qLGVDQ6osQEAAMwNxTFbaF7lFA4MveSNvPPVWKx1OWOR6x75gfFba0M5xBh5a+tjs/H19vY9 +AGB6yMMBcxx5OAAYGuetXtXRnGrbk0/qW9++Sm9+09mTfr7du3fra9+4rLZtwYIFev1Zr53Wfk7U +vP3208fO/4hWrjxCR65cOanHPvvZJ+mLn/+s3njuedq8eXPtZ61WS1dfe53e/a53zMh+vuK0l+sf +P/Mp7bfffk9730WLFuov/vSPtXDBAn36M//Q8fP7H3hA3//BTXrZqafMyL6NkkH6e/n4Jz7ZtdnV +fvvtp0/93d/ojFe/asLPddKJJ+ikE0+Y8P3R6cN/fX7t+zPPeI0+ev5HtHjRohl5/s9f8MWuza5e +8ksv1j/8/Sc7GiV2c8arX6VjvniB3v7Od3f8Da5Ze4l+5d3/Wc9/3nOntH+9/v0BAAAAAMDwm3h7 +fgADrx4MkIxMW8ynmITKWD8wONK/1/jv11or27CyzYYazYZsoxlWqWw08orDYTael3deruXk44qV +efXKVqtaxc45/skDAAAAmJrU8cq0TySKqDEAAAZNbHIla0ItrdGQaViZZkONRqixWduQsamRo/Kk +uVRXc63xUF9Ll1RnYxIdAADA3JAaI5QNElpOruXisd64Wq1xuT3jcuPjxXFgPPbLxY44hmvjcWSz +IdtsVpd0fNlohOPOOJZba54FAJgW8nDAHEUeDgCGyskveL6OP+64ju0Xrlk7pef79pVXaevWrbVt +b3j967Rw4cIpPd9UvPxlp066eVHyjGes0G/++q91/dlNN98ynd3Kjly5Up/+u7+ZULOr0vt+//d0 +7LHHdP3ZLT/80Uzs2kgahL+XjY8+qs9+7vNdf/ax8z8yqWZXmHmvefUr9am//fiMNXsaGxvTJz/9 +mY7thx92mD79d5+YULOr5FlHH6W/+ss/7/qzf/zsP095H0sz/fsDAAAAAIDRQMMrYFikVUfz7SLa +EwM9YSG7YjU7JucAA6II5xUT8UJougj3pMl5eUU75RCPa7kQyh4flxsP4R4Xf8aKdgAAAACmxahz +omZaPZtZRACAQRQ/u4y1cTJdvdYWamy2miLrvZzzVbOr8dDoyrVaucZGfQ0AAGCOiWOkeTw1Njj1 +40XjhPFxteL4quvS6DQdU1bjt83YpCE0vGqUja/isWet6RUAYHrIwwFzGHk4ABg2bznv3I5tN9z4 +XT366KZJP9dXL+pslPWW1aumtF/98rrXntF1+1133T0jz/8H73vvlBqANZtNvfud7+j6sx/9+39M +d7cwRTPx93LBF76k8fHxju1nnvEanf2G10953zB9hx92mD72f/63ms3mjD3nhWsu1tjYWMf2P/3j +D+qAA5ZP+vnOet2ZeuHJJ3ds/+YV3+5oQDhZvfj9AQAAAADAaKDhFTBM8op2CvmenPEpJqDmCakA ++ir9ey2Dz43qOm+zVaBHMaTni2B2GdD2rXgdf06oBwAAAMD0tU0iKnlflBw4/wAA9FGutVUNCVKT +q1qNzeQWV2EabKyjubLW1nK1bXzGAQAADIFUu2gba3XF8V9qqlA7Nkz5itT02ygee6po3lA0xSqa +Y5n28d7yAgCYOPJwwNxBHg4Ahtrqc8+VtfXpR957rb3ka5N6no2PPqobbvxubdthhx6qU176kmnv +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 +l4vvsrDtxk98Qu973/sP/Jw555VftGcVPy8P/9yH6YILLljY/qY3/5Xe/Z73HOq5z0dKiyWIN99y +85E897Z+3pZ54AMfoHve4x4L21/7h3+kd73rH07hHQEAAAAAABwPFrwC1p3VDna2pAhVoasdyR5g +f1o4uJ3PSrjH4snSQudbn4SSPWd567QbtokudgAAAABWXVvsyupgQz3F2iGvxzUMOQAAzslMlqyM +qe013haK78siVy754thans+Hsbc+1nba3yAAAABwCG3hlrz4+6/XxSNy3BbuWxZ8keRlURiTDfPc ++z2138ONZbAArBDycMDRIg8HADhG117zVeXfkGB3d1f//od+RH/1//31aPtd73oXPf7xX3iSb0+S +dMld77qw7YMf+tDShY324+///l36jZf+5mHf1sq7973vtXT76/74Tw78nC992cv1oQ996MCPPwmr ++Hm5/e1vry//sicuve3Hn/WcQz33+bjjhRcubPvQhz6snPOhn3tbP297eeYznrZ0+3/40R8/4XcC +AAAAAABwfFjwClhnrfumherTFvOpXUFjwJGQD7AHG4K/LcyTdma1++2ObNT1tjzE3UuAJ3Tbzbu7 +vXtdDxu3QA+hHgAAAABrZAikLiknqouL9EWvTu5tAQDWyajQfqY0a+NtM1k7mZV/aVrxXB1r8zbe +Ni9jbk7xHAAAALZFmF/20UJY4ffk3TA/vburPN9Vzm1xWO9jNmamlJLSLCnNZko7O+V38nY+m9VT +WPSCxa8AnDbycMDRIA8HADgh97zHPfS4xz56YftvvGxxgZ+nfOWTdPvb3e4k3tbI3e9+2cK2m266 +SX/xl2867+e68ROf0Hf9L//rkSzws+o+56GfvXT7L7/wRQf6/j/xiU/q2c957mHf1rFb1c/LN33D +P1u6/bd/53f1+3/w2kM//35cdtmlC9tuuukmveWtbzv0c2/r520vX/vMp+uCCy5Y2P7qP3iNfv4X +n3fybwgAAAAAAOAYsOAVsK5aIKGf1PM9Jc/jNVMwBCHJ9wDLmSSFjnU92LtTTz3k2wJ1Q5fdHu6Z +72regsXz2sGuhZAJ9wAAAABYJ62w0aweMC0WObp8KC4CAGAqjF33AvudyXhbHYtrFXXuXsbUWkHd +vIy5TQvqKKYDAADAxgvzzH3Rq3ku89Dz3eF0225fhCL335mHAkALi9COfh+fntIsLFbLolcAThF5 +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 +113f5fcuXLRIM++4UzPvuFP/9f9+rB132F7HHftJHT1pYjZRWp0tX75cf73oYv3+j3/W3LnzuvTe +2W++qSlTp2vK1Olaf/0xmnnLjbLWduq9d951t/560d901933qL29vUuf29bWpquvuU5XX3OdPvqR +D+vnP/2xxo7doEvr6A+efe55OefSn+kbs2frh//x37ql4phckTdmz9af/nKh/vzXi/SZE0/Qt755 +VreCyRL13P//cuHF+tOf/6q33n6729vbE7PffKuq7fEnntQpp52pV197bYXvHTJkiNZbd92+2rSG +qNwfn3t+ls7+9nf16KOPder9bW1tmjbjKk2bcZWOmjRBP/jedzR82LCq11162eU67/wLVhrelF/v +jKuv0Yyrr9Hhhx2iH/33f64waKwrFi1arF/88gL9/ZJLVxjmlffmW2/pLxderIv+domO/eTR+tbZ +39CwYT3fnkb3B40+HgEAAAAAjdO5q31108lBgACA+uhohlEAAAAA6Csh4KU63CVerLWyURQvpWQp +VS1RqaRoUElRaZCiinYblbL3JeuJrEyy3qrPNdmShM8ki5K23F8hvefTIBrl25QbZKHioAvvveR8 +9WCMjhYXQqTSNnX4usLj4g899+PP/k6FJflZmOrfg8n/TqL8z7VU+Nnb5HcyqCQ7qPp3Fi+59UTV +v/806MfkFqBV5I41G1X0dVFJJoqPwSSTzvs42MqXy3LtZbn8bQi78jWPeQAAAAAAUD/UwwFAU6Ee +DgCAThs9erT23muPqvYpU6f3yvqnTb+qKoxo4oQje2Xd/dFNN9+iwycc1a2wn1oefuRR/d/lVzYs +7OrFF1/SYUcepR//9OddDruqtMfuu3Uq7KqtrU2HHXmUPvv5k3T7zDu6HHZV6cF/PaRDjpjQ6dCd +/mTZsmV6+eVXJEn33ne/Dj1iUpfCbfK897ro4r9r0ieP1/z587u1jnrv///9Pz9uaLhOW1ubFi9e +nD6+7fY7dNwJn1lp2JUkbbTh2IYd130lvz/eettMTTz62G4fd5OnTNMJJ36usC8uW7ZMXznlNH3n ++z/sdNhVpauuvlYTjz5O8+Z1bx/Pe+aZZ3XExKP0lwsv7nTYVV65XNY/Lvs/HXLEBM164YUeb0+j ++4NGH48AAAAAgMZpssCrwCgdOMjANQCoD5/8WTkY21B2CQAAAKAO0iApFQOl8kFXNg6lMvkgmHx4 +VS7oyg4aJDtoUAi9ypaqUKUOApastbImBDxVLUpn/U4DotL/KlWGUCkLulKNYKoQeuVdtsh5ybmw +FJ/zhfWq5vqqFqWX33JLZYBXtlhj06VmCFkHYVdV4WNJ0NWgQdnvKf87KWW/z/j3XCv0ykjGptub +7jtAfxeOQyVhf6GvM6VIURrGF2WBbz4LvEoCrly5PQ66Shbn5J0j8AoAAAAAgGZAPRwA1B31cAAA +9NykiROq2l5+5RX966GHe7zuKydPqWqbOOGIHq+3P7rt9jt08ldO0aJFi1f+4i44+aQv9Or6Ouv+ +Bx7UpGOO1/OzZvXK+o45+qhOvW7kyJGytnf/pbdo0WKd9KWvavabb/bqepvBM88+q0cffUyfP+lL +amtr6/H6nnr6aZ16xllyznXpfa22/3fWm2++JUmaNuMqnfSlr2jJkiWdet/GG3+oz7apkZ559ln9 +66GH9ZVTTuv0z6Ijjz/xpL7+zXMkSe3t7frKKafp+htu6vE2Pj9rls46+5y4Xq+bHn3scR37qRP1 +UgiY6onXXntdx37qRD3z7HM9Xlez9AcAAAAAgIGl1OgNqGZyfwIA6sfLy8jIK63qMVLyEAAAAAD6 +TBjcFQ/2Ui50SWGm7WwQWBKIJRXDsdL3h/OZmjPZVbSt9FTH+/S0KGvr6LX5tVa+KHdilRa8dL7w +JT5by+536SRtRS+v1W4qr82FEC+Tu18YFFIz4mulD7JBJj7kf/m0GMh7L1Nx36dhYPF5a7ImE14T +BwAR6oN+LgmfSwL+cgF86bHmk5v4mHDOx+FW3sUBeUloXi7gDgAAAAAANBr1cADQGNTDAQDQU/vt +u49GjRql+fPnF9qvnDJVH/nwjt1e7xNPPlUV0LHrLjtr/TFjur3O/ur9uXN11tnndPj82LEbaP99 +99HWW22lMWPW09ChQ7V06VK1tbXprbff1hNPPKlHH39CzzzzbOF9m2yysfbbd5++3vwqs154QSed +/BUtWLiw5vNDhgzRbrvurL322EPrrbeuRo8eLeec5s+frxdefFFPPPmU7rv/Ab377hxJ0rhNN9WO +O2zf6c//t89+Jg26SVhrteUWm2uH7bfXNttsrdFrrqFRo0ZpUKmk+W1teu75Wbrjzrt019331Fzn +nPfe03nnX6Bzf/KjTm9Hf3Dr7TN1/wMPaunSpYX2zcaP01577qGtt95Kq6+2mkaNGqUlS5bo7Xfe +0YMPPqRrrrtO8+bNr7nOO++6W5ddfoU+ddyxndqGRu3/tZ67+ZZbq9qGDRuqXXfZpVN/l6568623 +tWTpUp3z7e9VhQJtuukmOuSgA7Xdttto9Jpr6oPly8Mx8pI2WL81+8lbbrtd99//oD744IO0bfDg +wdpt11209557aMyY9bTGGmvIe685c97Tvx56SFddc63eeefdmuu79baZuvGmm/XEk0/pttvvKDw3 +ePBg7brLztpj9900doP1tfrqqyuKIr333nv610OP6Jprr9Mbs2d3uN5rr7tehx5ycJf/jq+8+qo+ +829f7LB/3H67bfXxvffSVltukf5d586dqyefelq33T5Tjz/xZNV75s6dp3//8ld11dQrNWrUqC5v +U6KR/UEzHI8AAAAAgMZowsArAEBToLAHAAAAQG/I0pKKTVIW4GKSUKXKEKtiwFXaHkKxCsFWVcFX +qgqI6XTIVMVM38YrF7GUvKbycYcPsrbcdvjK5zo4ATNZNFTh9b7D19fYimRbK8Opan5s/pOMjEnS +dXJBXpUfUrEOs6IHJmv23oQfrpe8iYOtpBBwFVYeQnuSNiMfQrCUBvqkoVf5n7Gv+o0VfxZAM0j7 +rPgPY61sFMVBV+GxScL+FO/ePuzn3jk55+TzC0FXAAAAAAAAANAx6uEAAOiywYMG6YjDDtHfLrm0 +0H7ttdfrh9/7joYMGdKt9V5x5eSqtqMmTujWuvq7yVOmae7ceVXtgwcP1ve/+y0d+8mjFUXRStfz +zjvv6rbbZ2rG1dfo3vvu179/8fO1J4vrQ0uXLtVJJ3+1ZpiLtVYnHH+szjjtVK22Wu1Qln33+UR6 +/5lnn9P1N9yojTbcsEvbcOihB+tHPz1Xc+bM0a677KzDDjlY+++/r0avuWaH79lrzz30xc9/Tk8/ +/YxO//o39fysWVWvmT7jap1x6ilav4XChqZMnV54vNWWW+r73/2WdvrYRzt8z5GHH6ZzvnmWzv3F ++bro4r/XfM2f/nyhjjvmk/HkXivRqP3/D7/9VVXbJpttVdU2Zr0xNV/bG55++mn97R+XFgKeNhw7 +Vt/99tkdhnXtt2+fbEpTmDptRuHxIQcfpB9899taa63RNV9/0IH766wzT9e5552vP//1opqvOec7 +31Nb24JC28QJR+gbXz9D666zTs337L/fvjrzjFN1wf/+Wr/53R9qvuaiv13S5cCrD5Yv1ymnnakF +CxZUPbfJJhvrv374fe26y84dbtPpp35Nt9x2u77zvR9UhXy9/vob+q//+XGPQvka2R80w/EIAAAA +AGiMJgy8ygbx8b0yANRXh+OcGScJAAAAoLNy4VXx4xBOlWurDKRKQqzSgKtC0JXS8Ktkfekacycx +RkpDXrz38XuS0JcagVfVeTC+xt1abVUPapwzdXASVdicYrBUR++Jr5FVxl2t7PUd6KiQawUX4aqC +tWqlWRV+D9VthdfXOPE0aU5VPMu6T4LPfPy79+GXZXK/3/Rnmf6OQ8BVZx9XvBeoqzS8L741xkjW +VAVdpX1lCLIqLM4TdAUAAAAAQL9BPRwANAr1cAAA9NykiROqAq8WLFyoG2+6RYcfdkiX1/fBBx9o +xtXXFtpWXXVVHXTg/j3azv7q+hturNn+//7zhzpqUudDwNZeey0de8zROvaYozX7zTc1enTtkJi+ +dP4Fv9Yrr75a1T5o0CD95le/1L6f+Hin17XF5ptpi8036/I2DB40SL849ycaO3YDbTh2bJfeu+WW +W+jvF/1Fhx45SXPmzCk8Vy6XdevtM3XiCcd3eZv6gz332F1/+v1vNGjQoJW+dtiwofrBd7+toauu +qt/+/o9Vz7/8yiu69777tduuu6x0Xa20/3fVj356buHxfvvuo/PO/YmGDxvWoC1qHl/8/Of07XO+ +udLXDRkyRN/51tlyzuuvF11c9fy8efMLj888/VR97StfWul6Bw8apLPOPF3t7WX94U9/rnr+wX89 +pFdfe61LfcxFF/9dTzz5VFX7Th/7qP74u19rxIgRK13Hvp/4uDb5+8U69lMnVvVRU6ZO12dP/LS2 +3WbrTm9TRxrVHwAAAAAABp6Vx6U3glc6iEcM1AGAujAdlVXSBQMAAADojBBQZYzi4JYQ2mKtjW+j +KF5Kpey2VFKUu03u21KUvT6KZGwkE9l4sVbGmhDeZNL/lL+O5HNBMJVLOV7kyvFSThYXlmKbL5fj +xYWlXE7XkS4dfVYHi5yTnM8tboVLHGyTLSt/fReXyr9PYYn/zun6y67Dn1X680p/TuWOfz7eSd6l +55xpvlkuAMgk+46NZPP7UBT2kVKU7TeD8vtQbj+Long9yW2y5IOG6jyjKQa4fNiVjfu1ZF9O9/Gw +nya8c3LJUi7LtZfj23JZLh96JXEtHQAAAACAZkU9HADUHfVwAAD0ju2321bjx42rar9yytRure+m +m2/R/PnFEJKDDzpAQ4cO7db6+rvXXnu9qm3kyJGaOOGIbq9zzHrraXAngkp601tvv62/XHhRzed+ +ce5PuhR21VO777Zrl8OuEmutNVr//sXP13zu/gce7MlmNa0Nx47Vb3/1y06F2+Sdcdop2nTTTWo+ +9+C/HurUOlpl/++pfT6xt37zv+cTdqU4AOqcb57Vpfd886wzVhpyduAB+3Uq7CrvzNNP0TrrrF3z +uYcfebTT62lra9Ovf/v7qvb1x4zRb391QafCrhIbf2gj/dcPv1/zuT/95a+dXk9HGtkfAAAAAAAG +niYLvPLhi2S+TQaAxjAqzGtHgSUAAACAzginEYXAIpssVjaKA4cKoVcVQUW21pK+Jw7OstbKGitj +bC6sqGJb8gPGKsOg0vClXGhVIZypXAh58oUgrLCsJGyqVZfiz2gFPzNXEZDlyjV+brmwLx+uB/p4 +R0r/S3/PIRCosP9EVftKVCopGhTvTzYqFV8fwq5sLuwqHzokQq9QL/mwK2Mqgtxy+2sS0Bb2S5+E ++IWQq3K5Xa69PQu7co6BsgAAAAAANC3q4QCgsaiHAwCgNxw16ciqtrvuvkdvv/1Ol9d1xeTqoKyj +Jk7o1na1grnz5lW1jRgxXNY22XCvlbj4b5eovb29qn2/fffRIQcf1IAt6r4D9t+3Zvuzzz5X5y2p +jzPPOLVbgXOlUkknfur4ms899PAjnVpHq+z/PbH+mDH6xc9/plKp1OhNaQpnnn5ql3//Q4YM0dGT +Ov7/kSiK9J1zzu7ytgwePLjD/3967LEnOr2eK6dMU1tbW1X7d799jlZffbUub9eBB+ynHbbfvqr9 ++htuqgqU7KpG9gcAAAAAgIGnaa4A+XSpMRN9nucQewAAIABJREFUrcGLAIC+lXTD+cHH1PsAAAAA +A1dFOFAcamXTxVbcxvcjmbDUet7YEGxkTRpgVTHsoAYv48MJivfVAVc+DlLyzoWQGC/vXfo4C1zK +hS9VhmNVrrfLi2ovjdbjv1cHS/pzy8KsfBrEk/z847b4553/uYfHHazbyMtU/OxMfjHK9kUT70/F +fazG/hkCtExlEFZuqdzfgR6pEQRoour9Lgm4ivsMnwVdhSUNuArhfWl/BQAAAAAAmhL1cADQZKiH +AwCg2yYeeWRVAIn3XlOnz+jSet56+23ddfc9hbYx662nXXbeqcfb2F8NHz68qm327Dc1d251EFCz +8t7ryinTaj539lln1nlrem7DsWM1fNiwqvZ5PQySaUZrr72WDj/0kG6/f889dq/Z/vobb3Tq/a2w +//fU975zjkbU+DkMROPHjdNOH/tot967804f6/C5PXbfTRtssH6vrveN2bM7vY7Lr7iyqm3zzcbr +wAP269Y2SdKxxxxd1bZ8+XLdfc8/u73ORvcHAAAAAICBp2kCryQVvkyu+R0yRT4A0BAd9MoAAAAA +Wl1FsJW1cVCQjSLZUim9jUql+HHFEgcLhQChEGqVhAcZKQt1CSFJhdAp56Syk8plqVyWL5fl28tx +0Eu5HD+XvCYfXuWcfC54qRCulAwoqwyIITCmd/j0j9wgEZ/+nuMAn3zoVeXvu1xxP/t9J4vyv/vK +Jf0dx9tgCiFDYV9M9t+wRKXcPjyolNuvk9d0EIQFdEboP+Ogtdx+F27TkCtj4nCrJOCqXJZrb5dr +L8uVy3LlJOwq9JcAAAAAAKD/oB4OAJoS9XAAAHTNWmuNrhlkMXlq7ZCjjkyZOl3OuULbpIlHZpMD +DUCbbza+qs17r5/87OcN2JruefqZZzRnzpyq9u223UabbrpJA7ao50atNqqqra0FA68O2G+/Hh1/ +H/rQRlp11VWr2tvmt3Xq/a2w//fE+HHjdMD+3Q89ajX7fGLvbr93sxr7UuLggw7o9nrHjx9Xs33B +ggWdev/rr7+h556fVdV+6CEHd3ubJGnnnWoHg9173wPdXmej+wMAAAAAwMDTXIFX0gpmSxq4F7AB +oE8lg3Xzi4ykMNCS2h4AAABg4EmCgoyRcmE/lWFBcVBQFhgUJWFBuSV9r4nDgpIzjjScKBeE5F1Y +CiFHLhd0FNpc7nnnKpZc0FVl2FVl6FX+MXpHEm6VJF7lwq7k499N/Lv2Yan4/RV+x64i6CrsD2kQ +Vvye6tArpftZvB9n+7CN8qFtkWxUim/T4LZ82FUkY6M4rCgEE8XhRCL0CiuXDwyMau17Yd/K7UvJ +ceDK+bCrXF/onDz9FgAAAAAA/Q/1cABQX9TDAQDQJ46eNKGq7YUXXtSjjz3e6XVMnjK1qm3ihCN7 +tF393b77fKJm++VXTtbXv3mO2tqaPyjknn/eV7P94IMOrPOW9J6hqw6tavtg+fIGbEnf2mP3XXv0 +fmOMVhtVIxysk/ttK+z/PXHUpIHd/1XadZedu/3eUSNHdvjctltv3e31jhwxomZ7ZwOv/nlf7f5x +77327PY2SdKHNqodLjXrhRe6vc5G9wcAAAAAgIGn+QKvpOJgx/QLZ0ky1PkAQJ34/D1fbAEAAADQ +2uLLMFnolTEmC/2xVrZUygUElRRFpbTNVoRemXzolbW5gQXKhSCFYKp8cFE5vk2DXtqLwUeqDDqq +WnztsCvCYuojzbyq8bOv/F3XWgq/63IuCCveH+SyfcAXwq6SD1a6r1mbLFExcCgEXEWlkuygyn24 +lIYUmcjKWJMtXKBEJyX7jLW2Kgww7h+zMLVk/3VllwZdJWFXrlyWS/Z1+i8AAAAAAPon6uEAoOGo +hwMAoGf2329fjawRKDJ5yrROvf/Bfz2kl15+pdD24R130MYf2qhXtq+/Ov64Y7TWWqNrPjd12gx9 +fL8D9evf/l7z58+v85Z13nPPPV+zfeuttqrzlqCrxo8f3+N1DBs2rKqts+FgrbD/98Ree/Ys9KjV +bLrJJt1+79Ch1SF1khRFkTYdt2mvr3fZsg869f5HH60OhTTGaHwPtilRK1zqlVde7fb6Gt0fAAAA +AAAGnlKjN6AoHpDmlcylVFHPQ3EPAPStpKAyqeXxYVa70DdT4gMAAAC0GJNdbElCrmRMVeCVQiCL +MXF4i0z2OFtN7YFZJpxIeJ/eyQJbcrcrex4tbGWDSpKnjMK+YOJBgfLxPmi8vI9vZYzks30x3SXD +66ueS/ZhqXBNUlYy3sb7pY8/Jw0bMrkwtWQTK/dR9tmBJ+0H4z40DruyhbDAuA+1hdA/n9w6l4Za ++bKLr8ckfSP7EwAAAAAA/Rj1cADQUNTDAQDQawYPHqzDDjlY/7js/wrtV11zrb77nXM0eNCgFb7/ +yslTq9qOmjihV7exPxo+bJh+9ctf6MTPfUEffFAdoDJv3nz9/Be/1G9+9wdNOPJwffr447Tllls0 +YEs79tLLL9ds32KLzeq7ITXMfvNN3f/Ag3rqqaf10suv6I3ZszV37lwtWLBQH3zwgdrb2xu9iQ1T +KpW04dgNerweY7p/caMV9v/uKpVK2nSTjRu9GU1j8KBBGjNmvV5f78iRI1b6/0996eVXXqlqK5VK +OvWMs3q87vltbVVtCxYs6Na6mqE/AAAAAAAMPM0VeOXjwWEmfKEcz2yvME7IhC+WOfEFgF5nlA7I +9EmFTzKeMr8AAAAA6OdMep1FyhUYJOFVFWFX2a1yz5tctlV8ouC9ZNLZsBXa8g/Sxpq3fkUBVwS9 +IJEfDejjcCvvfbYvpmFWPg0U8uk+Hv+R1tRUFddko12SfTwOz8pfq8wCsLwNQ2G8QmhR/r6qQ9zQ +unL9aRwIaGRMFm5lbPZYRoUAK++9vPOSDwFXzsm7iqAr9h8AAAAAAPo36uEAoDGohwMAoE8cfdSE +qsCr+fPn6+ZbbtUhBx3Y4fsWL16sa667rtA2ePBgHXrIQX2ynf3Nxz76EV381z/pq6ecrvfef7/m +a5YsWaJLL7tcl152ubbfblsdd8wnddihh2jYsKF13tpqb775VlXbkCFDNHrNNRuwNXHgy2WXX6mp +06brmWefa8g29AcjRgxXFEWN3ox+v/931+g119SgBgYxNZsRI0b0SVjSsGHDen2dXfHa669XtS1f +vlw333Jrn3ze4iVLuvW+ZukPAAAAAAADi230BuT58Edx5vr8SDZTuAEA9JZsMG92jTiZZZQKHwAA +AKA1ZMFVWRCLlY2i4lIq5Zas3dgoF96Smw07CQBySViLky+XJeekcny/akleFxblg13yIUEEvaBS +ss/JF/e9ZEb2in0r3t/KUtlJ6T7osiUNGEr2QxWOE5s/TkrZEpVKipJjJH+cROE4MWGJV9bgHxr6 +TLiOYmxFn5rfL2wU9qOwH4Tr3845uXJZrlxWub0s116WKzs557L9mT4QAAAAAIB+j3o4AGgU6uEA +AOgLO2y/vTbddJOq9ilTp63wfdddf6MWLVpcaNt/v301cuTIXt2+/mynj31U1109TROPPGKlr330 +scf1re9+X7vssZe+94P/1DPPPFuHLezYosWLq9pGDB9e9+3w3uuii/+uPfbeVz/6yc8Iu1qJoUOb +JyyqP+//3TW0H4d19YW++nmsusqqfbLezmprW1DXz3POdet9zdQfAAAAAAAGjiYKvMq+SE6Ke5Kv +kk3+T5PdBwD0gjCTXVrkE8RjiEN/nAz6BQAAANBPJf/qD2FXxqbhLCYXdBWFoKssyCcfemXj0JYQ +BBTzhdArOZ+FCOWDhlxZSkKwVrRUhl4BHcnvd2Hf63C/KgSvhZC1dH/06a3xXibM854GwxlTOxRu +UCkXelWSjUoyUe64SoPhuI7Z8tIQQSNjK/aTKEr3CxkrycTXv122T7pye7y0t8vlAgHpBwEAAAAA +aAXUwwFAQ1APBwBAnzpq4oSqtpl33KU5c+Z0+J4rJk+psZ4je3W7WsHo0aP185/9WNdfM0NHHn6Y +rF3xkK9Fixbrkksv0yFHTNQXT/6yHn3s8TptadGSGoFXw4YNq+s2fLB8uU478yz9x3//jxYsXFjX +z+6vGh0EVKm/7v/dFdmo0ZvQVFYZskqjN6FP1Oofm1Gz9QcAAAAAgIGheQKv0gmT8l8mV3ybbIyy +We0o8gGAHjO5mUJN1ublK/rjRm0gAAAAgG4JQTtxCEsctmIjmwXyhPCqNMTKVgf1mHQwQE5ybpAP +GkqCrpyT9y4LH/IhSMi77HHlAvSVWvtbsk86J+/jfTYNWnNO3iXBWRX7aG5fzQdhZUs4xnKLsSHo +KLKyNsqOryQEizCs/itOREt/5/n+00bZvhD/ruO3eCm9xpIEWrmwJI89fSMAAAAAAK2HejgAqD/q +4QAA6HMTjzyiKoimXC5r2oyra77+1dde0/0PPFhoGz16tPbcY/c+28Z68738Pe9m48fpFz//qW6/ ++QadfNIXtOYaa6z0PbfeNlMTjz5WXzv1DL37bsfhY32hvVyuarO2fue4zjn9+5e+qquvua7D12y+ +2XidfNIXdN65P9GUKy7VPXfepocf+KeeeeIRvfjcU1XL+HHj6rb9jWKa9DpEf9v/B5re7u9aXa3+ +sRk1a38AAAAAAGhtpUZvQJGX96bwpXLyvXIyPshXDgbjQgkAdE++uEdhIHtF/+pzA9VrFl4CAAAA +aB4m/Ms+hPDEt/ETxlS25wKx8ucEkuQlLy/jw4O0TeGcwGeDtMJ9X2jLPZdbBdBUvI8HuHhfCHbz +oT29IKncrUzNMYfZ+bSVbHzubEx2ndNbL3lbCD2S91WP0eSMKvpOK9lcsGAuBM1LMuHadnad28v7 +OFgtvg0ha7nuEgAAAAAAtCLq4QCgbqiHAwCgLtZZZ23tvtuuuvOuuwvtU6ZO0xc//7mq1185eWpV +28QjD1cURX21iXW3ZMmSPlnvBhusr7O/8XWdcfqpuvHGm/V/V1ype/557woDZ669/gbd/8CD+uPv +fq3tt9+uT7ar0tBVV9XCRYsKbZWP+9KFF/9dd9x5V83ndt9tV33r7LO01ZZb1m170Dv6y/4/0PRV +f9eqavWPG224oW67+foGbREAAAAAAM3Drvwl9ZMOAHLJTEpSYbRPbralwgIA6BqTu00qKPNDfJNu +2GWDMgEAAAA0sSTEyhoZa2QiKxtZ2agkW6pcItkoko1sCGmx2QxdSWG/S8JYnHzZyZfLUliSxz73 +GqXXcpKBAYS4oIn54v7qnYvPffP7dNmFfd6l+75c2P9dElqkMDIxnFrbOPgoPr6i4nE3KNyG50wU +yVhbCKBDEwthV8aEfjP8DuPfZ+73aq2S6yvJPuVcWa5cliu3y7XH95P9SFxzAQAAAACg5VEPBwB1 +Qj0cAAB1dfSkiVVtzzz7nJ586ulCm/deU6ZOr3rtpIkT+mzbGmHR4r4Ndxo8aJAOO/Rg/e3CP+v2 +m2/QSV/8vEYMH97h6+e8955O/NwX9PysWX26XYlVh65a1bZwYX0Cr+bNm69zzzu/5nMnHH+cLv7r +nwi76ueaff8faPq6v2s1w4YPq2qb3za/AVsCAAAAAEDzaarAq3hGO58W+fi0yEcK30Jng8AAAD1g +0uKedCa7QteaDFDPzWRHkQ8AAADQnJLxT+GaibFWNgndKUWKSuF20IpCr3KDqHKhVyongVch5CoJ +/3Gu9uLzg7aAJpc/363Yl9OwN1fOAt7K5fixK54nx4dfHIZkk+MvOcZKkaJSSbY0KNyW0mCkZGEA +Y5MzuTvWFPrX/G0+xCwbOOXkyi4OvErDrsKty0KvAAAAAABAK6MeDgDqg3o4AADq6YD9960ZODN5 +yrTC47vvuVez33yz0Lb1Vltq883G9+n21VO5XK5buJMkjR27gb71zbN095236YzTTtGqq1aHTUnS +wkWLdMbXz5Zzrs+3aa3Ra1W1LVmyRPPm9X2oy3XX36ClS5dWtW+37Tb6jx98t9vn28uWLevppqEP +NOP+P5DUu79rBeuus05VW1vbAvZNAAAAAADUbIFX4bvj/JfJPvmSOXky+ULaMqMdAPRM7X40nsEu +uU36YsarAwAAAE0jnZnaFEJzksXWaEtCrYw1Mqq8lpIV+OeX7JzAxYtL7udf14C/P9DXCkFYuUCs +XDiWL4RjhWOhYmBMfJjGx53NBdIZa2WjXDiWtTJRWKyVuO7ZHJI+04Q+NOqgf01+V15pn5mEWbnk +tlxO76chV/SfAAAAAAAMDNTDAUAdUQ8HAEC9DBkyRIceenBV+4yrrtby5cvTx1dOnlL1mqMmTejT +bau3V155Ve3t7XX/3OHDhumUr35ZN153lXbcYfuar3nq6ac18467+nxbPvShjWq2P/Pss33+2Tfe +fEvN9lO+9hVZ2/0hc++//36334u+10z7/0DSqP6uP9tkk42r2pxzeu75WQ3YGgAAAAAAmktzBV5J +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 +TkSuQmCC +" + id="image12" /> + <rect + style="fill:none;stroke:#ff0000;stroke-width:32;stroke-linecap:round;stroke-linejoin:bevel;stroke-dasharray:2.39999, 2.39998999999999985;paint-order:markers fill stroke;stop-color:#000000" + id="rect837" + width="2129.4854" + height="168.56068" + x="1005.8603" + y="222.59465" + ry="43.624752" /> + <rect + style="fill:none;stroke:#ff0000;stroke-width:32;stroke-linecap:round;stroke-linejoin:bevel;stroke-dasharray:2.39999, 2.39998999999999985;paint-order:markers fill stroke;stop-color:#000000" + id="rect839" + width="959.59314" + height="913.84192" + x="3198.936" + y="1651.4872" + ry="115.94952" /> + <path + style="fill:none;stroke:#ff0000;stroke-width:32;stroke-linecap:round;stroke-linejoin:bevel;stroke-dasharray:2.39999, 2.39999;marker-end:url(#Arrow2Mend);paint-order:markers fill stroke;stop-color:#000000" + d="M 3147.3879,1970.7559 C 2988.7173,1908.7697 2761.2104,1614.0937 2616.9981,1257.6198 2472.7858,901.14586 2488.1209,764.23061 2483.2672,486.6952" + id="path842" + sodipodi:nodetypes="czc" /> + <g + id="g1274"> + <path + id="path1218" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:125.347px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.13368;filter:url(#filter1592)" + d="m 1786.0273,1557.7656 c -0.2785,0.4336 -0.9111,0.7136 -1.0546,1.3008 -0.4513,1.0725 -0.081,2.2693 -0.1937,3.3992 -0,7.2127 -4e-4,14.4253 0.01,21.6379 -13.0917,2.8063 -25.2145,10.0018 -33.854,20.2445 -0.6187,0.7162 -1.2236,1.444 -1.812,2.1852 0.2467,-2.8132 0.4924,-5.6264 0.7402,-8.4394 -9.789,0 -19.5781,-1e-4 -29.3672,0 0,-8.5404 0,-17.0808 0,-25.6211 -15.5698,-4.7338 -31.1512,-9.9163 -47.3837,-11.8288 -10.9352,-1.3242 -22.1741,-1.1364 -32.8607,1.7334 -11.9393,3.1287 -23.1498,9.5991 -31.1506,19.0855 -7.934,9.2945 -12.7317,21.2631 -13.1588,33.4958 -0.071,1.6611 -0.077,3.3257 -8e-4,4.9867 -1.216,1.5401 -2.3508,3.144 -3.4141,4.793 -0,-13.4733 -0.01,-26.9466 -0.01,-40.4199 -22.1491,0 -44.2982,0 -66.4473,0 -16.5511,-3.6822 -34.6469,-0.6727 -48.7703,8.8296 -0.4763,0.1742 -0.9445,1.0116 -1.4258,0.5208 -9.8278,-6.2896 -21.3677,-9.4788 -32.9217,-10.4775 -11.6763,-1.1128 -23.4511,-0.2271 -35.0189,1.5255 -3.9045,-0.5443 -7.8352,-0.8716 -11.7485,-1.3459 -7.3435,-0.8268 -14.8215,-0.977 -22.1148,0.3693 -1.433,0.2167 -2.828,0.7273 -4.2945,0.586 -11.1369,0 -22.2737,0 -33.4106,0 -12.1583,-11.6396 -28.2132,-18.9659 -44.875,-21.0644 -15.5148,-2.2655 -31.2353,-1.6243 -46.8609,-1.7706 -10.3159,-0.015 -20.6318,-0.01 -30.9477,-0.052 -3.5929,-1.6466 -8.3814,-0.2372 -10.2317,3.3295 -1.5737,2.5084 -0.9903,5.5689 -1.0731,8.3626 -0.011,94.5717 0,189.1433 -0.01,283.7149 -3e-4,8.2347 -8e-4,16.4695 -10e-4,24.7043 49.0827,0 98.1654,0 147.248,0 16.2039,3.1562 33.0394,1.8366 48.9418,-2.3057 5.2406,-1.4058 10.4055,-3.0885 15.486,-4.9912 13.7242,7.2079 29.5503,9.8748 44.9403,8.8296 10.8445,-0.7066 21.6062,-3.0919 31.6358,-7.3023 13.7433,6.5723 29.3741,8.5514 44.4485,7.0654 3.9217,-0.3836 7.8178,-1.0417 11.6433,-1.9872 2.0909,1.1077 4.5161,0.5764 6.7715,0.6914 27.918,0 55.836,0 83.7539,0 0,-1.5827 0.01,-3.1654 0.01,-4.7481 10.8661,5.4796 23.3591,7.4712 35.4208,6.0855 2.8087,-0.28 5.5843,-0.8412 8.3554,-1.3277 28.8461,-0 57.6922,-0.01 86.5383,-0.01 0,9.3359 0,18.6719 0,28.0078 4.8261,-0.2643 9.724,-0.5395 14.4883,-0.709 13.2533,-0.4301 26.5212,-0 39.7715,-0.5273 8.9218,-0.5323 17.6966,-3.2123 25.4277,-7.6895 0,2.3281 0,4.6563 0,6.9844 31.304,0 62.6081,0 93.9121,0 0,-8.5677 0,-17.1354 0,-25.7031 8.1189,-1.7473 15.9151,-5.0828 22.6895,-9.9004 11.6661,7.2128 25.3625,10.7299 39.005,11.1919 13.957,0.5844 27.9389,-1.672 41.243,-5.8306 15.4746,4.2445 31.5929,6.8039 47.668,5.6582 11.8679,-0.7919 23.8105,-3.6643 34.0644,-9.8594 5.5198,-3.3032 10.3996,-7.6482 14.3965,-12.6836 0,7.0202 0,14.0404 0,21.0606 46.9219,0 93.8438,0 140.7656,0 1.6239,0.2547 3.4072,0.6137 5.1055,0.832 12.0205,1.6674 24.2839,0.9371 36.1738,-1.3437 2.8201,0.8528 5.7921,0.4047 8.6871,0.5031 25.806,0.015 51.6123,0 77.4184,0.01 0,-2.2064 0.01,-4.4127 0.01,-6.6191 11.4657,5.7827 24.3763,8.2506 37.1547,8.3617 16.1324,0.164 32.1266,-3.403 47.1508,-9.1277 6.5141,-2.4527 13.0006,-5.0075 19.5,-7.4804 1.0774,-0.502 1.4973,-1.7622 1.3039,-2.8739 0,-3.4912 0,-6.9823 0,-10.4735 1.5078,0 3.0156,0 4.5234,0 -0.3583,-8.18 -0.8061,-16.3562 -1.0976,-24.539 -0.4978,-11.6997 0.5912,-23.6964 -2.0164,-35.2636 -3.7118,-16.7157 -13.6722,-32.1294 -27.8912,-41.786 -12.6302,-8.6993 -28.15,-12.8112 -43.4209,-12.3572 -6.6131,0.095 -13.2258,0.8919 -19.6442,2.5025 -2.6749,-0.3184 -5.2511,-0.2631 -7.8979,-0.6416 -9.6699,-0.9953 -19.4264,-2.6518 -29.1545,-1.3836 -2.5819,0.2449 -5.1003,0.9815 -7.6855,1.1555 -21.5001,-0.034 -43.0002,-0.023 -64.5004,-0.027 -12.1879,-2.48 -24.8982,-2.064 -36.9934,0.7354 -7.38,1.7923 -14.5179,4.6531 -20.9968,8.6279 -6.6923,-4.8442 -14.4647,-8.1481 -22.5586,-9.7656 0,-5.6322 0,-11.2644 0,-16.8965 10.7415,3.4244 22.3345,3.7423 33.3654,1.6055 1.5275,-0.3187 3.0691,-0.5634 4.6342,-0.461 35.0919,0.048 70.1839,0.023 105.2758,0.025 0,-2.1999 0.01,-4.3998 0.01,-6.5996 11.9579,6.0153 25.4666,8.4513 38.7824,8.3348 7.3494,-0.044 14.6848,-0.8528 21.8972,-2.2489 2.9513,0.9185 6.0686,0.3771 9.0989,0.5215 41.2099,0 82.4198,0 123.6297,0 -0.2514,-0.8352 0.3943,-0.6449 0.97,-0.5661 8.8035,0.9372 17.6679,0.4411 26.501,0.5612 12.634,0.01 25.268,0.015 37.902,0.024 0,-17.6308 0,-35.2617 0,-52.8925 0.6315,0 1.263,0 1.8945,0 0,-29.2227 0,-58.4454 0,-87.668 -7.5293,0 -15.0586,0 -22.5879,0 0,-6.4876 0,-12.9753 0,-19.4629 -20.6757,-0.01 -41.3515,-0.02 -62.0273,-0.029 -3.4764,-1.3569 -7.2756,-0.9197 -10.9117,-1.3185 -3.3263,-0.2123 -6.6526,-0.4245 -9.9789,-0.6366 0.7955,0.9987 1.5911,1.9974 2.3867,2.9961 -7.1297,2.9872 -12.3587,9.9753 -13.2617,17.6465 -8.4058,-1.3315 -17.0621,-1.0086 -25.3594,0.873 -7.6781,-0.1784 -15.3587,-0.01 -23.0379,-0.072 -14.281,0 -28.562,0 -42.843,0 -12.4934,-2.5599 -25.5481,-2.0685 -37.9003,0.9804 -3.5055,-0.4724 -6.9914,-0.5818 -10.4973,-1.0665 -9.2201,-1.0233 -18.5833,-2.3278 -27.8299,-0.8383 -2.493,0.3007 -4.932,1.1437 -7.4689,0.9447 -16.4431,-0.053 -32.8865,-0.015 -49.3297,-0.028 -4.7706,0 -9.5412,0 -14.3118,0 -0.4261,0.031 -1.1328,-0.1856 -1.6699,-0.2461 -12.8814,-2.1353 -26.0633,-1.5639 -38.9485,0.2277 -8.1859,1.1714 -16.2799,2.9463 -24.2429,5.1688 -13.1442,-6.7726 -28.706,-8.4493 -43.0801,-5.1641 -2.6228,0.113 -5.2501,-0.026 -7.875,0.035 -19.3834,-0 -38.7669,-0.01 -58.1503,-0.011 0,9.0821 0,18.1641 0,27.2461 -7.5331,-11.4749 -18.6444,-20.7552 -31.6677,-25.2972 -11.4572,-4.045 -24.0705,-4.6753 -35.8968,-1.9215 -21.8405,-0.039 -43.681,-0.028 -65.5215,-0.029 -0.2187,0.2327 -0.9931,-0.1651 -1.427,-0.1641 -12.5581,-2.3581 -25.5979,-1.8459 -38.0046,1.1367 -3.5851,-0.4983 -7.2104,-0.6185 -10.7955,-1.1241 -8.8056,-1.0001 -17.7365,-2.1635 -26.5779,-0.8746 -2.7334,0.296 -5.4021,1.2372 -8.1766,1.0391 -4.1024,-0.042 -8.205,0 -12.3074,-0.011 0,-8.8958 0,-17.7916 0,-26.6875 -29.5918,0 -59.1836,0 -88.7754,0 -0.6131,-1.1665 -1.885,-1.7557 -2.8146,-2.6398 -0.6397,-0.8575 -0.599,0.2387 -0.7556,0.7684 -0.1472,0.6642 -0.2944,1.3284 -0.4416,1.9925 z m -194.3242,136.6348 c 7.9904,12.9439 20.7013,22.7241 35.0059,27.7479 8.043,2.8619 16.5755,4.1907 25.0898,4.4591 -0,4.7311 -0.01,9.4623 -0.01,14.1934 -1.2604,0.2324 -2.5018,0.7088 -3.7793,0.7586 -10.2997,-0.9055 -20.6133,-2.8715 -30.9845,-1.8677 -2.8147,0.2316 -5.5718,0.9022 -8.3563,1.3112 -3.6098,0.01 -7.2202,-0.021 -10.8307,-0 -12.5073,0.01 -25.0145,0.01 -37.5218,5e-4 12.8698,-7.603 23.0959,-19.715 28.0365,-33.8592 1.4927,-4.2209 2.502,-8.6031 3.1763,-13.0256 0.057,0.094 0.1146,0.1888 0.1719,0.2832 z m 517.4864,47.4492 c -12.9794,-2.4376 -26.3536,-3.3153 -39.4727,-1.5 0,-5.0364 0,-10.0729 0,-15.1094 12.6859,-2.68 24.4863,-9.4654 33.0762,-19.1933 2.3421,-2.5945 4.4823,-5.3703 6.3965,-8.2949 0,14.6992 0,29.3984 0,44.0976 z m 112.539,-27.2754 c 0.3347,0.6153 0.6693,1.2305 1.0039,1.8457 -0.2923,0.4943 -0.356,1.6132 -1.179,1.2821 -0.2652,-0.3772 0.055,-1.1838 0.011,-1.723 0.071,-0.4354 0.013,-1.0865 0.164,-1.4048 z m -299.5547,4.0977 c 13.218,6.5338 28.2797,8.7584 42.9053,7.6798 3.6005,-0.2652 7.184,-0.7518 10.7275,-1.4415 0,6.5872 0,13.1744 0,19.7617 -4.1953,1.5981 -8.2337,3.6053 -12.0468,5.9746 -10.6919,-7.5971 -23.8627,-11.598 -36.9719,-11.2854 -4.7488,0.058 -9.4639,0.7737 -14.1145,1.6754 -14.9702,-0.07 -29.9409,-0.026 -44.9113,-0.04 -8.8536,0 -17.7073,0 -26.5609,0 0,-5.3763 0,-10.7526 0,-16.1289 26.862,0 53.7239,0 80.5859,0 -10e-4,-2.1309 -0.01,-4.2617 -0,-6.3926 0.1295,0.066 0.2591,0.1315 0.3886,0.1973 z m -616.7324,2.2031 c 0,0.6217 0,1.2435 0,1.8652 -1.5572,-0.5309 -3.1331,-1.0065 -4.7246,-1.4238 1.5858,-0.3854 3.1631,-0.8083 4.7246,-1.2832 0,0.2806 0,0.5612 0,0.8418 z m 94.5234,1.9824 c 11.6064,4.2164 24.3708,4.7896 36.4324,2.3531 1.5561,-0.381 3.1516,-0.4005 4.7423,-0.352 4.7302,0 9.4604,0.01 14.1906,0.013 0,3.9557 0,7.9115 0,11.8672 2.5628,1.0523 5.1172,2.1247 7.6875,3.1582 -7.4913,-0.803 -15.0811,-0.6674 -22.5507,0.2961 -11.297,1.4974 -22.3886,5.2322 -31.9337,11.5242 -11.5709,-7.9562 -25.5904,-12.0927 -39.594,-12.2687 -11.3893,-0.3475 -22.8942,1.4731 -33.4802,5.7433 -5.9574,-8.9524 -14.5928,-16.0724 -24.4649,-20.3164 29.4532,0 58.9063,0 88.3594,0 0,-0.7493 0,-1.4987 0,-2.248 0.2038,0.077 0.4076,0.1536 0.6113,0.2304 z m 58.2032,88.0352 c 0.3585,0.1101 0.6004,0.6202 0.1015,0.7558 -0.5796,0.15 -1.5303,0.3223 -1.6836,-0.4824 0.2766,-0.5399 1.0997,-0.1643 1.5821,-0.2734 z" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:125.347px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:3.13368" + x="1226.8652" + y="1688.871" + id="text1158"><tspan + sodipodi:role="line" + x="1226.8652" + y="1688.871" + id="tspan1154" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:3.13368">Drag & drop parent</tspan><tspan + sodipodi:role="line" + x="1226.8652" + y="1845.5547" + id="tspan1156" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:3.13368">RecordTypes here</tspan></text> + </g> + </g> +</svg> diff --git a/src/doc/tutorials/img/screenshot_new_property.png b/src/doc/tutorials/img/screenshot_new_property.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4899a60045b0f6a412cb4c2f4b9045977f0592 Binary files /dev/null and b/src/doc/tutorials/img/screenshot_new_property.png differ diff --git a/src/doc/tutorials/img/trash.png b/src/doc/tutorials/img/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..46c6190621d9a364f9b9f7540abdb7531a50f9b3 Binary files /dev/null and b/src/doc/tutorials/img/trash.png differ diff --git a/test/core/js/modules/entity.xsl.js b/test/core/js/modules/entity.xsl.js index 04ec35a6fc14cbad81c731908e28f788999c3563..69f553c76c57143ea7b10560c304ba2ffa7da209 100644 --- a/test/core/js/modules/entity.xsl.js +++ b/test/core/js/modules/entity.xsl.js @@ -168,6 +168,27 @@ QUnit.test("single-value template with reference property.", function(assert) { assert.equal($(link).find('.caosdb-id').length, 1, 'has caosdb-id span'); }) +QUnit.test("single-value template with long text property.", function(assert) { + assert.equal(xml2str(callTemplate(this.entityXSL, 'single-value', { + 'value': 'the feature is disabled', + 'reference': 'false', + 'boolean': 'false', + 'long-text-threshold': 'DISABLED' + })), "<span xmlns=\"http://www.w3.org/1999/xhtml\" class=\"caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value\">the feature is disabled</span>", "disabled -> not in details tag"); + assert.equal(xml2str(callTemplate(this.entityXSL, 'single-value', { + 'value': 'this is too long', + 'reference': 'false', + 'boolean': 'false', + 'long-text-threshold': '4' + })), "<details xmlns=\"http://www.w3.org/1999/xhtml\"><span class=\"caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value\">this is too long</span><span class=\"spacer\"></span><summary><div title=\"show more\"><span class=\"caosdb-f-property-text-value\">this</span></div></summary></details>", "too long -> shorted to 'this'"); + assert.equal(xml2str(callTemplate(this.entityXSL, 'single-value', { + 'value': 'this is not too long', + 'reference': 'false', + 'boolean': 'false', + 'long-text-threshold': '140' + })), "<span xmlns=\"http://www.w3.org/1999/xhtml\" class=\"caosdb-f-property-single-raw-value caosdb-property-text-value caosdb-f-property-text-value caosdb-v-property-text-value\">this is not too long</span>", "not too long -> not details tag."); +}) + QUnit.test("old version warning", function(assert) { // with successor tag var xmlstr = '<Record id="2345"><Version id="abcd1234"><Successor id="bcde2345"/></Version></Record>';